A few years ago I sold all my stuff to explore the world, creating 12 startups in 12 months and building $1M+/y companies as an indie maker such as Nomad List and Remote OK. I'm also a big pusher of remote work and async and analyze the effects it has on society. Follow me on Twitter or see my list of posts. My first book MAKE is out now. Contact me
Subscribing you...
Subscribed! Check your inbox to confirm your email.
levels.io

How I built Remote | OK and launched it to #1 on Product Hunt

12 Startups in 12 Months, Remote working
Apr 2, 2015

Almost a year a go, I set a goal to launch 12 startups in 12 months. The story was covered well by WIRED previously. They’re all MVPs, built to see if they can get market fit in a month. This month I launched Remote | OK. I’d like to share everything that went wrong, and the few things went right in building and launching it.

Backstory

I’ve been passionate about remote work for a while now. I think it’s up there with virtual reality in how radically it will transform societies.

It has big social, political and economic connotations. What does home really mean if your location changes every few months? What’s the point of governments and nation states if nobody feels tied to one country? What is a “local” community if everyone’s moving around? And how will people make money? How will it transform work?

I’ve explored lots of these questions, the problems that people doing this have and tried to come up with solutions in the form of products. I built Nomad List to get people to realize they could move to different places, save money and get a better quality of life. I’ve organized over 25 meetups in the last 6 months to get nomads together and started a chat community called #nomads for remote workers, which is now 2,500+ members strong and obviously I’ve been blogging a lot to spread the message.

Why? Because I think the net benefit of all of this can be positive for people worldwide.

Problem

But it’s not happening fast enough for me. If we want remote lives to become the standard, we need to make it easier for people to get jobs. I still talk to people every few days that would love to work remotely but they can’t find any jobs that allow them too. And that’s weird because I know those jobs are out there. There’s A LOT. The problem is discovery.

Major job boards are not embracing remote work yet. They often don’t have real categories for remote work, and it’s mostly just mentioned in the job posting. So it’s hard to find those jobs:

Then there’s a few dedicated niche remote job boards out there but the amount of jobs posted on each board is still pretty slim:

Solution

What if you can put all those remote jobs from all those standard job boards out there and put them together? That’d solve it. It’d make the point stronger that remote work is an option, and let people actually find jobs.

So, I wanted to build an aggregator. And that sounded a lot simpler then it turned out to be…

Ethics of aggregation

We all hate scraping sites. So how was I going to make this actually add some value? I thought about how Google News indexes articles and then creates traffic for the sites. Without asking them, it just did it, and it added value. I wanted to do that. I can’t just take people’s content and profit from it. So from the base up I wanted to have an extreme amount of accreditation to the sites where I sourced from and linking back to them wherever possible. It should be valuable for them mostly. Which meant, getting them traffic back.

Building

In terms of sourcing, most job boards out there have RSS feeds, or JSON accessible APIs. That meant I had to write a little robot for each feed. I made a folder called “sources” and simply started writing a PHP script for each source.

It’d analyze the feed, see which jobs were remote, then normalize the data and then push it into a simple SQLite database (yes, I’m not using JSON text files as a database anymore, thank you :P).

Normalization

Easy right? Well it’d be easy if everyone wrote their feeds in the same way. But they don’t. Some write it like this:

company: Acme, Inc.
position: Backend Developer
remote: yes

But then many write it like this:

company: Acme, Inc. is hiring a Back End Developer – Remote – San Francisco, US

But then often their feed changes up because a human takes over and writes it:

company: We’re hiring! VC-backed startup Acme, Inc. is looking for a Back End Developer (can work remote) – SF US

And sometimes there’s no company tag at all and you have to figure it out from the description:

position: Back End Developer
description: We, at Acme, Inc. are looking for a Back End Developer remotely.

And sometimes it’s not even a remote position but it matches the word “remote”:

description: We, at Acme, Inc. are looking for a Back End Developer, this position is NOT remote.

Haha, good luck with that!

So how do you solve that? Well you write loads of if statements and regular expressions to figure out what the job ad really means. That by far took the most time. Like weeks. And it still doesn’t get it right always:

Screenshot 2015-04-02 19.23.34

Another challenge was detecting what kind of tags to add to a job. Well, the only thing I could do really is just make a humongous list that translated keywords to certain tags:

Design

I wanted to make the design really splashy when you first get there. I thought about what remote work really means for me. And it means we’re all moving around. What better way to show the power of that argument than to show our beautiful earth globe? I remembered there was a video shot from the ISS. And as NASA made it, it was in public domain so I could use it freely. I downloaded it, edited it, cropped the space station out of it and used it as the background of the first page:

On top if it I added a search bar that when not selected auto-types example jobs (yes, just like I did on Go Fucking Do It).

Screenshot 2015-04-02 19.11.50

And to give the whole thing some credibility, I added the logos of the sources:

Screenshot 2015-04-02 19.13.10

Then below it, I added the job list from the database, newest first and on the right a big image to credit the source of the job. If you hover over the job, the logo turns into a button and if you click it you go straight to the job at the source’s site, e.g. [http://authenticjobs.com](Authentic Jobs).

Screenshot 2015-04-02 19.15.26

Each jobs also shows tags. These are for example the tech stack “JavaScript” or type of job “Full Time”. When you click it, it shows a page with ONLY those jobs.

When I first showed people, a lot expected that when they clicked on a tag it became a filter, and that they could keep clicking more tags to add to the filter. So I changed it into that:

For Google, I made the URLs of each filtered page look like this:

/remote-reactjs+css+python-jobs

My NGINX simply routes that to a PHP file with sees the query reactjs, css and python and shows the page.

Not all job sites show salaries, but some do. So when I have enough data on salaries I showed it on the page too:

Screenshot 2015-04-02 19.19.34

And that made me think it’d be fun to have a chart of most popular and highest paid remote jobs:

Screenshot 2015-04-02 19.20.35

Launch

Product Hunt

In true fashion, I was late for going to a party when I submitted it to Product Hunt (on Sunday 2015-02-22 at 01:44:44.644 PST). I’m in Korea now and this was 6pm Korean time. It was early morning SF time, which is great for submitting to Product Hunt as the page refreshes at midnight SF time.

Tweet

The most important visual part of the branding was the spinning globe. But how do you tweet that? So I made an animated GIF:

Capture mails

While my friend was shouting for me to get out of the house, it hit me. The site wasn’t capturing emails yet. It’s a basic thing to do. If you have emails, you can contact everyone later to tell about updates, new launches. And an email list of people that want a remote job is obviously very useful.

So in about 5 minutes I added this on top of every page:

Screenshot 2015-04-02 19.27.56

Then I left the house and went for some drinks and my friend stopped shouting 🙂

Hacker News

I submitted it to Hacker News around the same time:

Screenshot 2015-04-02 19.48.21

It was on the front page for a while, but then the HN algorithm pushed it away. The new HN algorithm (or moderator) is quite critical lately of product launches and they prefer to see technical articles. Maybe that’s on purpose since Product Hunt is a YC-company and they’d love to have product launches there? I don’t know…CONSPIRACY! 😀

I tried to reply to everyone’s feedback on HN too. In the end it did okay on HN but not amazing.

Reddit

Someone submitted it to the /r/digitalnomad subreddit too. There was lots of feedback, which I replied to and feature requests I implemented immediately:

Screenshot 2015-04-02 19.52.14

It was mostly positive and it reached #1 on the subreddit which was nice:

Screenshot 2015-04-02 20.02.26

The result

xxxgiphy

It reached #1 on Product Hunt and became the #15 highest voted product of all time with 1,000 upvotes.

Screenshot 2015-04-02 14.31.22

The next day I saw I forgot to add Google Analytics. So I had no idea of the first day traffic. Based on my previous projects, I know the drop off from Product Hunt is about 50% in the second day. So that means I estimate being #1 on Product Hunt in March 2015 gets you about 28,000 unique visits (second day 14,179 * 2):

Screenshot 2015-04-02 19.38.04

That means the total after a month is estimated at near 100,000 unique users (67,313 + 28,000). That’s a lot of traffic.

To compare, that’s about three times as much as it was when I launched Nomad List to #1. That means Product Hunt has grown 3x as big in 6 months.

Product Hunt also asked me to do a collection called Products for Nomads:

Which helped it get more exposure:

Products for nomads and remote working: http://t.co/EiSA17sdgF curated by @levelsio pic.twitter.com/iq57kZB64u

— Product Hunt (@ProductHunt) February 17, 2015

Email signups

Screenshot 2015-04-02 19.41.01

3,723 people signed up, that means 3.5% of users. I have no idea if that’s high or low conversion. I’m sure I could increase that by adding some deceptive “GET THIS FREE EBOOK” but I HATE that stuff with a passion. It’s tasteless. People should just want to sign up, I shouldn’t have to trick them.

That .GIF tweet

I couldn’t imagine how well tweeting that .GIF worked. That’s a crazy number of retweets and favorites. And since it linked to Product Hunt that resulted in upvotes. It’s really the time of visual communication. People like moving pictures:

Yay! My new startup http://t.co/LXa46PgDiR is now live @ http://t.co/tlzXLaVBuG, it indexes all remote jobs out there pic.twitter.com/RJnhlYteHO

— levels.io (@levelsio) February 22, 2015

Press coverage

I didn’t reach out to press, as it’s been increasingly hard to get reporters to write anything about me. As in, it’s more effective nowadays for me to just wait for them to contact me (they usually do). I think tech reporters are just overloaded with email and whatever you do, you probably won’t reach them. They’re out there looking for stories though.

The Next Web featured it, then Forbes followed and then Fast Company. And Lifehacker Russia. For some reason any project related to remote work or nomads I do, gets a massive response from Russia. Many of them are very smart programmers and tech workers, and many of them want to leave the country due to its political situation. Interesting…

The popular bookmarking service Pinboard recorded Remote | OK as one of the most bookmarked sites that week.

The cake is a lie

In my true #fail fashion, the daily/weekly jobs email people signed up to, it was a lie. It was just a MailChimp email submit.

Now a month later, I’m finally getting around to launching the email robot that will send everyone their emails. Making that just cost a bit of a time, here’s the layout. Getting this right also took long because writing HTML for emails is a mega pain. You have to specify every style INSIDE each HTML tag, AS IF IT’S 1997 AGAIN:

Replies from job sites

Honestly, if anything should go wrong, it would be the job sites I sourced emailing me and telling me to shut it down. But the opposite happened.

Angel List’s jobs head emailed me with some nice questions. Since he was asking me questions, not shutting me down, that was good news:

xScreenshot-2015-04-02-20.04.28

And WFH.io (Work From Home), a big remote job board actually asked to be indexed too:

@wfhio awesome guys! i need date, company, position, description and link to your page

— levels.io (@levelsio) March 2, 2015

And then many others followed. There was many job boards who made a custom feed for Remote | OK only.

So, something funny happened here. As they saw it was now a popular site, and it used their content, they were better of keeping it alive than shutting it down. Just like what happened with Google News.

Extra features

Many people asked for a Twitter feed of all jobs, so I made it, and I made it cute with emoji:

🚧 Want to work as a remote 🐳 Ruby on Rails Developer at @pkwde? #js #elasticsearch #sql 👉 https://t.co/0k5Ljx2uVy

— Remote | OK Jobs (@remoteok_jobs) April 2, 2015

It’s fully automated and actually writes pretty unique tweets for each job it finds. It also tries to match the company’s Twitter handle in the tweet.

Business model

As it’s an aggregator, it’d be unethical to let people post jobs and charge for it. As I’d be taking the content from other sites, and then compete with them. I don’t want to compete with them obviously. So when you click Add New Job you see this:

Screenshot 2015-04-02 21.23.11

So how can I make money from this? One way is building up an audience, which means the daily traffic to the site and the growing mailing list, and then let people sponsor both. Think how a company might want to target only iOS devs. I have 100 of those on my list now.

I want to do that too ethically though. So no separate mailings, but maybe add a sponsorship box to the mailing and website, e.g.:

This message is sponsored by Meteor, the open-source platform for building top-quality web apps in a fraction of the time.

How much though? Well if I can grow the mailing list to 10,000 people. Then charge a premium CPM of $10-$25 to sponsor it. That’s $3,000 to $7,500 per month. That’s a crazy high CPM, you say? No, I don’t think so. This is a hyper targeted audience and the jobs market is different. An average job ads goes for $250 to $500. But I’m not there yet, so we’ll see.

Conclusion

Remote working is a rapidly growing market and this adds some value, so I think it has a good future ahead. I’m happy that whenever someone tells me again there’s no jobs you can do remotely, I can point them here and show them ALL THE remote jobs and tell them:

NOPE

P.S. I'm on Twitter too if you'd like to follow more of my stories. And I wrote a book called MAKE about building startups without funding. See a list of my stories or contact me. To get an alert when I write a new blog post, you can subscribe below:

Subscribing you...
Subscribed! Check your inbox to confirm your email.

2022
18 Sep
This House Does Not Exist
2022
14 Jul
Sam Parr + Shaan Puri asked me about bootstrapping, open startups and lifestyle inflation (My First Million Podcast)
2022
16 May
Thinking and doing for yourself (Life Done Differently Podcast)
2022
10 May
Relocation of remote workers (Building Remotely Podcast)
2022
26 Jan
Money, happiness and productivity as a solo founder (Indiehackers Podcast)
2022
20 Jan
Bootstrapping, moving to Portugal and setting up Rebase (Wannabe Entrepreneur Podcast)
2021
25 Mar
Why I'm unreachable and maybe you should be too
2021
25 Mar
The next frontier after remote work is async
2021
19 Mar
List of all my projects ever
2021
08 Mar
Why coliving economics still don't make sense
2021
14 Feb
Inflation Chart: the stock market adjusted for the US-dollar money supply
2021
10 Jan
I did a live 4+ hour AMA on Twitch w/ @roxkstar74
2020
20 Dec
No one should ever work
2020
10 Dec
Normalization of non-deviance
2020
05 Dec
Copywriting for entrepreneurs: explain your product how you'd explain it to a friend
2020
30 Nov
Entrepreneurs are the heroes, not the villains
2020
12 Nov
The future of remote work: how the greatest human migration in history will happen in the next ten years
2020
05 Nov
Will millions of remote workers become location independent in 2021?
2020
11 Apr
5 years in startups with Abadesi
2020
11 Jan
Twitter giveaways can be hacked to win every time
2019
16 Oct
Lorn - The Slow Blade ✕ Hong Kong
2019
28 Sep
Most decaf coffee is made from paint stripper
2019
12 Sep
The odds of getting a remote job are less than 1% (because everyone wants one)
2019
08 Sep
In the future writing actual code will be like using a pro DSLR camera, and no code will be like using a smartphone camera
2019
29 Aug
Instead of hiring people, do things yourself to stay relevant
2019
28 Aug
Nobody cares about you after you're dead and the universe destroys itself
2019
28 Aug
The only real validation is people paying for your product
2019
05 Aug
Monitoring Bali's undersea internet cable
2019
29 Jul
Nomad List turns 5
2018
29 Jan
I'm Product Hunt's Maker of the Year again!
2018
28 Jan
Why Korean Jimjilbangs and Japanese Onsens are great
2018
24 Jan
Turning side projects into profitable startups
2018
03 Jan
What I learnt from 100 days of shipping
2017
28 Dec
As decentralized as cryptocurrency is: so will be the people working on it
2017
22 Oct
How to 3d scan any object with just your phone's camera
2017
09 Aug
In a world of outrage, mute words
2017
03 Aug
How to pack for world travel with just a carry-on bag
2017
26 Jul
Building a startup in public: from first line of code to frontpage of Reddit
2017
24 Jul
Facebook and Google are building their own cities: the inevitable future of private tech worker towns
2017
21 Jul
The TL;DR MBA
2017
12 Jul
We did it! Namecheap has introduced 2FA
2017
08 Jun
It's about time for a digital work permit for remote workers
2017
23 May
Using Uptime Robot to build unit tests for the web
2017
08 May
Namecheap still doesn't support 2FA in 2017 (update: they do now!)
2017
03 May
Taipei is boring, and maybe that's not such a bad thing
2017
16 Apr
What we can learn from Stormzy about transparency
2017
17 Feb
The ICANN mafia has taken my site hostage for 2 days now
2017
10 Feb
Most coworking spaces don't make money; here's how they can adapt to survive the future
2017
11 Jan
A society of total automation in which the need to work is replaced with a nomadic life of creative play
2017
07 Jan
Nomad List Founder
2016
12 Dec
Make your own Olark feedback form without Olark
2016
29 Oct
How to fix flying
2016
19 Oct
Robots make mistakes too: How to log your server with push notifications straight to your phone
2016
17 Oct
Hong Kong Express - 上海 (Shanghai)
2016
17 Oct
Choosing entrepreneurship over a corporate career
2016
13 Oct
"I can't buy happiness anymore. I've bought everything that I ever wanted. There's not really anything I want anymore."
2016
11 Oct
From web dev to VR: How to get started with VR development
2016
05 Oct
What I would do if I was 18 now
2016
22 Sep
Bootstrapping Side Projects into Profitable Startups
2016
27 Aug
Kids
2016
13 Aug
How I cured my anxiety (mostly)
2016
26 Jul
We have an epidemic of bad posture
2016
17 Jul
Fixing "Inf and NaN cannot be JSON encoded" in PHP the easy way
2016
26 Jun
My third time in a float tank and practicing visualizing the future
2016
15 Jun
How to add shareable pictures to your website with some PhantomJS magic
2016
29 May
My chatbot gets catcalled
2016
19 May
From web dev to 3d: Learning 3d modeling in a month
2016
09 Mar
My second time in a sensory deprivation chamber
2016
04 Mar
Day 30 of Learning 3d 🎮 Cloning objects 👾👾👾
2016
02 Mar
Day 29 of Learning 3d 🎮 Glass, reflectives, HD, coloring and more details
2016
29 Feb
Day 27 of Learning 3d 🎮 Details, details, DETAILS!
2016
25 Feb
Day 23 of Learning 3d 🎮 Filling up the street and adding shadows
2016
24 Feb
Day 22 of Learning 3d 🎮 Added rain, blinking lights, sound, textured menu sign and a VR web app
2016
23 Feb
Day 21 of Learning 3d 🎮 High res textures, physical rendering and ambient occlusion
2016
22 Feb
Day 20 of Learning 3d 🎮 Objects and camera perspectives 🙆
2016
19 Feb
My first time floating in a sensory deprivation tank ☺️
2016
12 Feb
Day 10 of Learning 3d 🎮 Making complex objects by combining shapes 🙆
2016
06 Feb
Day 4 of Learning 3d: @shoinwolfe visits the actual street I'm modeling 🏮😎🏮
2016
03 Feb
Day 1 of Learning 3d 🎮 I learnt how to make shapes, move, rotate and scale them + how to texturize, and add colored lights 💆
2016
02 Feb
I'm Learning 3d 🎮
2016
27 Jan
The things I have to do to read an email sent to me by my government
2016
12 Jan
How to use your iPhone as a better Apple TV alternative (with VPN)
2015
23 Dec
Here's a crazy idea: automatically pause recurring subscription of users when you detect they aren't actually using your app
2015
17 Dec
Stop calling night owls lazy, we're not
2015
16 Dec
We are the heroes of our own stories
2015
25 Oct
There will be 1 billion digital nomads by 2035
2015
21 Oct
Tobias van Schneider interviewed me about everything
2015
18 Oct
Why doesn't Twitter just asks its users to pay?
2015
17 Oct
Punk died the moment we learnt that the world WAS in fact getting better, not worse
2015
15 Oct
Stop being everyone's friend
2015
14 Oct
Vaporwave is the only music that fits the feeling futuristic Asian mega cities give me
2015
09 Sep
We live in a world built by dead people
2015
01 Sep
Why global roaming data solutions don't make any sense
2015
26 Aug
How to export your Slack's entire archive as HTML message logs
2015
24 Aug
How to play GTA V on your MacBook (and any other PC game)
2015
14 May
I uploaded 4 terabyte over Korea's 4G, and paid $48
2015
08 May
How I sped up Nomad List by 31% with SPDY, CloudFront and PageSpeed
2015
04 May
My weird code commenting style based on HTML tags
2015
01 May
Now is probably the time to make HTTPS the default on all your sites and apps
2015
17 Apr
Do the economics of remote work retreats make any sense?