1. Wrapping Third-Party Libraries in AngularJS

    One of my favorite things about AngularJS is that it provides several useful mechanisms for wrapping third-party code. That said, there are so many ways to do it that it’s not always obvious which one to use. Should I call this third-party library directly from a controller? Abstract it into a directive? Wrap it in a service? Or some combination of all three? The answer, as you’ve probably already guessed, is “it depends.” Let’s take a look at some examples.

    Mark Kendall Mark Kendall
    Visit Article
  2. Meet Envy: Ayana Campbell

    In a new ongoing series, the Envy blog is showing what makes our team the best in the industry. From designers to developers to support staff, we want you to get to know our amazing team, what makes them tick and hear why they’re so passionate about their work and role at Envy. First up: meet Ayana Campbell.

    Jason VanLue Jason VanLue
    Visit Article
  3. Active Record and the SRP

    If you look at a lot of Rails apps, you’ll start to see some patterns emerging. One that pops up frequently is models that have grown way beyond their pants size. They told us to keep our controllers skinny and move all that fat into the models, but this doesn’t solve the problem. The fat hasn’t gone away, it’s just moved it to a different directory in the codebase.

    Tyler Hunt Tyler Hunt
    Visit Article
  4. RailsDiff's Rewrite

    TL;DR RailsDiff is now an Ember app, built using Ember CLI, and it gets its data from a new API built using Sinatra.

    Jacob Swanner Jacob Swanner
    Visit Article
  5. Prototyping with InVision

    With prototyping applications popping up on every corner of the internet, I thought it’d be neat to share the process we use at Envy. Gone are the days of carpet bombing a Basecamp thread with a series of comps or a multi-page PDF. Now we can easily create interactive prototypes that communicate functionality, interactions, and design details to clients better than static solutions ever could. Never again should you have to answer “Why can’t I click on this?”

    Tim Dikun Tim Dikun
    Visit Article
  6. Tuning Slow Images with DevOps

    In an earlier article, Drew Powers described one significant way to optimize your website’s perceived performance by focusing on optimizing the images which are being delivered. This is incredibly important, because even if the client receives the HTML from your application in only milliseconds, if it takes several additional seconds for the client to download image assets then that can cause your application to simply feel slow.

    Nathaniel Bibler Nathaniel Bibler
    Visit Article
  7. From Bootstrap to Acquisition

    Today we’re celebrating with Code School, a product and company bootstrapped out of Envy, on their acquisition by Pluralsight. You can read Code School’s official statement or read some of the write ups at TechCrunch, Wired, The New York Times, or The Orlando Sentinel, to name a few. We are extremely proud of the Code School team and what we have all accomplished.

    Jason VanLue Jason VanLue
    Visit Article
  8. The Order Property: Flexbox Carousels

    The verdict’s still out on whether flexbox will be the silver bullet for CSS layouts we’ve been pining for, but the specification offers a number of unique solutions to old problems.

    Nick Walsh Nick Walsh
    Visit Article
  9. Using Illustrator’s Align Tool for Type

    Drew Powers Drew Powers
    Visit Article
  10. Now Hiring: Interaction Designer

    Envy is a leading web consultancy based in Orlando, FL, building digital products for the likes of Cisco, Google, GitHub, and Booz Allen Hamilton. We’re also responsible for starting Code School, one of the most popular online educational platforms. At Envy, our goal is to transform ideas into successful products for our clients.

    Nick Walsh Nick Walsh
    Visit Article