There comes a point in the life of many freelancers where you start getting tired of jumping from client to client, always chasing after the next project. Instead, what if you could launch a project that generates recurring passive income for you?

Today, I’m talking to someone who’s trying just that. For the past year, Ryan Glover has been working on Proper, a Meteor app that helps freelancers create and manage contracts. In this interview, we’ll talk about:

  • How Ryan got the idea for Proper.
  • Why Ryan picked Meteor over Rails or Django.
  • What Discover Meteor and RPGs have in common.
  • What Ryan learned about deploying Meteor apps.
  • Proper’s current numbers, and Ryan’s goals for 2014.
  • Ryan’s advice to other freelancers looking to bootstrap their project.

Note: this post is part of our series highlighting apps people built after reading Discover Meteor (previously: Illustreets, Scoutzie, Mindmeld). If you’ve created something cool and you’d like to be featured as well, feel free to get in touch!

Helping Freelancers

Sacha: First of all, can you briefly describe Proper?

Ryan Glover

Ryan: Proper is a SaaS that helps freelancers write, send, and sign contracts for their projects. It gives freelancers the ability to specify terms and conditions, scope, a timeline, and costs and payments.

And are you working on the service alone, or as part of a team? How would you define your role at Proper?

I work on the design and development of Proper solo. I invited my friend to help out with the branding and illustrations and I work with a writer, David Nield, to help with articles on the blog. I suppose you could call me the lone ranger in residence at Proper.

The Proper homepage.

I couldn’t help but notice that Proper’s design is really clean and polished, especially for a (mostly) solo effort. Do you have a design background? Or are you more of a coder?

I used to do a lot of WordPress development and a little bit of UI design. Most of my clients were/are small businesses or agencies that needed help getting a website off the ground. I’ve also worked with a few startups getting their UI together. Recently I’ve been doing a lot more product design and development.

Working on the Proper UI in Sketch

So I guess I’ve always been both. When I started my affair with the internet back around 2007, I picked up a book on XHTML/CSS because my favorite designer at the time, Elliot Jay Stocks, explained how he coded his own designs.

The past couple of years have seen me moving toward working primarily in code

I thought that was really cool so I sort of followed suit. I used to start everything in Photoshop, but the past couple of years have seen me moving toward working primarily in code. I love the modularity you get with Meteor’s use of templates, so I’ve found myself doing component styling in Sketch and transferring those ideas to code.

Did you build other apps before Proper?

Just one. To get an idea for what it would be like to build and manage an app online, I created WhatWhen, a timeline creator for freelancers, and released it as an open source project on Github. I haven’t put a lot of time into it, but you can go poke around the source and see where my head was at with Meteor a few months back :)

WhatWhen: timelines for freelancers.

So how did you get the idea for the service in the first place?

Proper was born out of necessity. I’d been using a contract template I cooked up in Adobe InDesign that was difficult to edit/customize for each project or client. For signatures, I was using a combination of eSignature services and a scanner which wasn’t very efficient.

Solving these two problems together seemed like a worthwhile project and a good way to save some time getting projects up and running for clients. I’d also been thinking about developing a SaaS product for the longest time, so I suppose it was good timing.

Just to give us a bit of context, when did you start working on it, and when did you launch?

I started development around May of this year, wrapping up and launching around the beginning of October. Instead of a full-blown launch, I decided to do a soft launch to learn what it was like to develop/promote an app without a big rush of customers early on. Proper is my first product and I’m a bit of a noob, so a less aggressive strategy seemed to fit well.

Getting Started With Meteor

Meteor was barely a year old back then. How did you first hear about it? And more importantly, what made you decide to pick it?

I’d heard about Meteor from the original Hacker News post back in April of 2012. I remember watching the demo videos with the scoreboard and being blown away at the speed and simplicity of the code. At the time my JavaScript skills were fairly limited (a bit of jQuery knowledge), so I only dabbled with Meteor for a day or two and then put it aside.

I remember watching the demo videos with the scoreboard and being blown away at the speed and simplicity of the code

It was actually when Discover Meteor (still “The Meteor Book” back then) was announced that I started to pay more attention to the framework. I revisited the Meteor docs and realized quite a bit of progress had been made (my JavaScript skills had improved, too), so I decided to start playing with tutorials and coming up with ideas of what I could make.

Did you find getting started with Meteor easy? Did the book help?

Extremely. I’d actually spent the year prior trying to wrap my head around other frameworks like Rails (for Ruby) and Django (for Python) and consistently got overwhelmed.

With Meteor, I found that having to only be concerned with one language for the client and server made me incredibly productive. Meteor just “clicked” and I was able to pick up the basics pretty quickly.

What I liked most about Meteor was its lack of rigidity. I could do things wrong (so to speak) and it would still work. I’d tried stuff like Angular which, while cool, forced a lot of rules that ended up killing the “it just works” magic. There’s a lot of value in being able to go from having an idea to implementing it in minutes. Meteor forgoes the configuration stage that a lot of frameworks require.

Reading Discover Meteor was sort of like opening up a new section of the map in an RPG

Reading Discover Meteor was sort of like opening up a new section of the map in an RPG. I went from understanding the basics of getting data in and out of Mongo (with the autopublish package included) to fully grasping ideas like publish and subscribe and keeping data secure.

The book also taught me about the structure of an app and suggested some best practices that influenced (and still do) how I build apps.

The style of the book was a big plus, too. Because the code for each chapter was given its own Git commit, it was easier to let things digest and come back later when I was ready to learn more. The focused topics meant I only had to think about one thing at a time, which expedited my learning quite a bit.

Creating a contract with Proper.

Deployment & Scaling

Let’s talk about some of the most hotly debated topics when it comes to Meteor: deployment and scalability. Where are you hosting Proper? Can you talk about your setup? And have you had to deal with any scalability issues?

Proper is hosted with Modulus, a Node-only hosting company based out of Cincinnati. I went with them for a few reasons. The first was that one of the founders, Brandon Cannaday, wrote a great tool called Demeteorizer that made it easy to convert a Meteor app into a Node.js app that could be hosted anywhere (not just on a subdomain) Node was available.

Second, Modulus gives you everything you need to run and configure your app in a nice little GUI. As a complete noob to sysadmin, having this makes it easy to run the app without fear.

Hosting apps on Modulus.

In terms of the actual setup, I have two servers: a primary application server and a job server (to handle communication with third-party services and administration). Load balancing is built-in to Modulus and you can deploy to and scale servers from their CLI tool.

The database for the app is also hosted with Modulus. All of their DB’s come with replica sets turned on and they do their own backups as well. Just to be safe, I also do my own daily backup to S3 using Mongolab’s remote backup service.

I’m a big fan of this setup because it means I only have to pay attention to a few things at once and can run everything from a phone or laptop.

Beyond hosting, I run payments through Stripe, analytics through GoSquared, and metrics with Mixpanel.

What about Meteor-specific issues? Any lessons or advice you can share?

The biggest issue I’ve had with Meteor is that it can be a little too fast. The reactivity is awesome, but you have to make certain considerations for situations where data may be delayed coming off the wire, causing a template to flash or blink before the data is loaded.

The biggest issue I’ve had with Meteor is that it can be a little too fast

The solution, though, came in the form of tethering the application’s router (the current release of Proper is still running Meteor Router) to its subscriptions. For each route, I run a test on its subscription and if its ready, let the template load. This was actually solved pretty well with the release of Iron Router and its before filters; something I hope to integrate soon.

Clarifying costs.

Working On What You Want To

Finally, how is the service doing? Can you share any numbers on users or revenue?

I have about 10 customers at the moment (and a handful of trials). Revenue is just starting to cover costs of servers/administrative tools. I’ve had a few users come and go that gave me great feedback on features and pricing. I haven’t figured it out yet, but I’m looking forward to playing with how pricing and plans work to see how that impacts growth.

My goal is to get to 100 customers by the end of 2014. Because I work on Proper alongside freelance work, I have to split my time up evenly and leave a little breathing room in-between. Things move slower, but it’s nice because I can get a full understanding for what’s happening and when and what I need to do to move the needle.

Creating recurring income seems like the holy grail for a lot bootstrappers. Is your goal to eventually transition into doing Proper full-time?

I think so. I was listening to a podcast hosted by Alec Baldwin, Here’s the Thing, and the episode was an interview with Jerry Seinfeld. Seinfeld remarks about what the show, “Seinfeld,” afforded him. He explains that its success allowed him to do things “on [his] own terms.”

I’m more concerned about getting to a place where, financially, I can work on what I want to

I’m more concerned about getting to a place where, financially, I can work on what I want to. Maybe that’s Proper, maybe that’s something else. Whatever has my attention at the moment, you know? Freelancing is great, but there’s a lot of power and motivation in being able to wake up and do whatever you want without being beholden to anyone.

Do you have any tips on how to make the transition from freelancer to entrepreneur?

Find the thing that annoys you most and build a solution for it. Chances are pretty good that others will have the same problem and pay you to fix it. Once you’ve found the problem you’d like to solve, make sure that it’s something you’re comfortable working on for a long time and get to work.

I think the hardest part of all this stuff is not getting discouraged by the success stories that make it look like this stuff happens overnight. It takes a lot of time and effort to build a serious business.

Just believe in yourself and your work

Just believe in yourself and your work. Don’t get caught up in the startup nonsense and think you need millions and billions of dollars to do this stuff (or to consider your work successful). Make something because it will help yourself and others to do better work, not because it’s fashionable.

A ton of thanks to Ryan for sharing his inspiring story! And if you’ve been working on cool Meteor projects as well, get in touch to let us know.