Frontendrails logo Front End Rails

How I Made $70,714.20 Self-Publishing a Book About Ruby on Rails

How I Made $70,714.20 Self-Publishing a Book About Ruby on Rails

Nate makes web apps Nate makes web apps 10 March 2017

Did I mention how awesome it is to live 30 minutes from a ski lift? In March of 2016, I launched a course called The Complete Guide to Rails Performance. Since then, I have sold just over 500 copies, for gross revenue of $70,714.20 ($1350/week). Although I launched the course in March, I had worked on it for about 4 months. Releasing the course has been a lifechanging event for me. For the first time ever, I made more money over a year from product revenue rather than service revenue. Releasing the course nearly doubled my usual freelancing rate, allowed me to change my lifestyle by moving to a ski resort town in New Mexico, and turned me into something of a minor Thought Leader (tm) in the Ruby on Rails field.

What HTTP/2 Means for Ruby Developers

What HTTP/2 Means for Ruby Developers

Nate makes web apps Nate makes web apps 07 January 2016

HTTP/2 is coming! No, wait, HTTP/2 is here! After publication in Q1 of 2015, HTTP/2 is now an "official thing" in Web-land. As of writing (December 2015), caniuse.com esimates about 70% of browsers globally can now support HTTP/2. So, I can use HTTP/2 in my Ruby application today, right? After all, Google says that some pages can load up to 50% faster just by adding HTTP/2/SPDY support, it's magical web-speed pixie dust! Let's get it going!
How Changing WebFonts Made Rubygems.org 10x Faster

How Changing WebFonts Made Rubygems.org 10x Faster

Nate makes web apps Nate makes web apps 30 November 2015

I'm passionate about fast websites. That's a corny thing to say, I realize - it's something you'd probably read on a resume, next to a description of how "detail-oriented" and "dedicated" I am. But really, I love the web. The openness of the Web has contributed to a global coming-together that's created beautiful things like Wikipedia or the FOSS movement.

Page Weight Doesn't Matter

Page Weight Doesn't Matter

Nate makes web apps Nate makes web apps 05 November 2015

There's one universal law of front-end performance - less is more. Simple pages are fast pages. We all know this - it isn't controversial. Complexity is the enemy.

Hacking Your Webpage's Head Tags for Speed and Profit

Hacking Your Webpage's Head Tags for Speed and Profit

Nate makes web apps Nate makes web apps 21 October 2015

"What's that? The site takes 15 seconds to load on mobile?
Sorry, but Marketing says I gotta put Mixpanel in here first."
Most of us developers settle for page load times somewhere between 3 and 7 seconds. We open up the graph in NewRelic or webpagetest.org, sigh, and then go back to implementing that new feature that the marketing people absolutely must have deployed yesterday.

How to Measure Ruby App Performance with New Relic

How to Measure Ruby App Performance with New Relic

Nate makes web apps Nate makes web apps 15 October 2015

I've seen quite a few articles recently detailing the steps to creating a simple Ruby on Rails development environment without Vagrant. I've found a few issues with these that make the environment somewhat unfeasible for real use. Hopefully, by the end of this article you will have a Docker-based development environment that can actually be used for real development.
How to Measure Ruby App Performance with New Relic

How to Measure Ruby App Performance with New Relic

Nate makes web apps Nate makes web apps 15 October 2015

It's 12pm on a Monday. Your boss walks by: "The site feels...slow. I don't know, it just does." Hmmm. You riposte with the classic developer reply: "Well, it's fast on my local machine." Boom! Boss averted!

Ludicrously Fast Page Loads - A Guide for Full-Stack Devs

Ludicrously Fast Page Loads - A Guide for Full-Stack Devs

Nate makes web apps Nate makes web apps 07 October 2015

Server response times, while easy to track and instrument, are ultimately a meaningless performance metric from an end-user perspective.
Actual end-user response to the word 'microservices'.
End-users don't care how fast your super-turbocharged bare-metal Node.js server is - they care about the page being completely loaded as fast as possible. Your boss is breathing down your neck about the site being slow - but your Elixir-based microservices architecture has average server response times of 10 nanoseconds! What's going on?

Ludicrously Fast Page Loads - A Guide for Full-Stack Devs

Ludicrously Fast Page Loads - A Guide for Full-Stack Devs

Nate makes web apps Nate makes web apps 07 October 2015

Server response times, while easy to track and instrument, are ultimately a meaningless performance metric from an end-user perspective.
Actual end-user response to the word 'microservices'.
End-users don't care how fast your super-turbocharged bare-metal Node.js server is - they care about the page being completely loaded as fast as possible. Your boss is breathing down your neck about the site being slow - but your Elixir-based microservices architecture has average server response times of 10 nanoseconds! What's going on?

Action Cable - Friend or Foe?

Action Cable - Friend or Foe?

Nate makes web apps Nate makes web apps 30 September 2015

One of the marquee features of Rails 5 (likely releasing sometime Q1/Q2 2016) is Action Cable, Rails' new framework for dealing with WebSockets. Action Cable has generated a lot of interest, though perhaps for the wrong reasons. "WebSockets are those cool things the Node people get to use, right?" and "I heard WebSockets are The Futureā„¢" seem to be the prevailing attitudes, resulting in a lot of confusion and uncertainty about Action Cable's purpose and promise.

100ms to Glass with Rails and Turbolinks

100ms to Glass with Rails and Turbolinks

Nate makes web apps Nate makes web apps 27 May 2015

A perceived benefit of a client-side JS framework is the responsiveness of its interface - updates to the UI are instantaneous. A large amount of application logic (and, usually, state) lives on the client, instead of on the server. The client-side application can perform most tasks without running back to the server for a round-trip. As a result, in the post-V8 era, many developers think traditional server-side languages and frameworks (Ruby, Python, even Java) are simply too slow for modern web applications, which are now supposed to behave like native applications, with instantaneous responses.