How do you decide what to build?


“Can you tell me what should I build? I don’t have any ideas!”

This is one of the biggest problems that stop developers from becoming better at their craft. Upon investigation, I discovered that people have ideas; they’re just afraid their ideas are bad, would fail, or nobody would use the thing they made.

These feelings are normal. We’re afraid to make things that kinda suck because we’re afraid others will shame us for it. We’re afraid the very thing we make will convince us that we’re the useless fraud that should never have existed in this world.

Then, we freeze in fear.

It’s a big problem. I can’t solve the problem for you, but I hope the lessons I share in today’s article can help you push yourself out of paralysis.

Don’t worry about the results

We all want to be guaranteed results. If I build this, I’ll get that—money, opportunities, work; you name it.

But nobody can guarantee results. Nobody knows how much money you’ll earn from the product you make. Nobody knows if you’ll get freelance clients from the post you wrote. Nobody knows whether you’ll get a job if you build a todo list app with the latest JavaScript framework.

Since nobody can guarantee results, nobody knows what you should build. That’s why so many entrepreneurs pivot their companies—because they don’t know what to build; they figure it out along the way.

You cannot focus on the results. There’s nothing to focus on.

Focus on the process. Focus on the things you want to make. Make them.

All ideas are great

“My ideas suck.”

Many people say this, then, proceed to claim that they can’t build anything worthwhile.

These people have it backwards. They judged their ideas before they worked on them. They don’t give their ideas the chance to materialize. If the idea doesn’t materialize, it’s worth nothing. You won’t know if an idea would work before you work on it.

Was it a good idea to write a book on Susy? (In case you didn’t know, that was the first book I wrote).

Expert entrepreneurs would say it’s a bad idea—nobody wrote about Susy; there’s no demand; nobody would buy it.

But I wrote it anyway.

I didn’t expect the book to sell. I wrote it because I wanted to share my knowledge. I was okay if nobody bought it. If ONE person bought and loved the book, it’s a smashing success.

To my surprise, Learn Susy made $56,000 in it’s lifetime (three years I think). Here’s some solid proof:

Image of the revenues generated from Learn Susy

Was Learning Susy a good idea?

On hindsight. It was the BEST IDEA I ever had, even though it sounded like a stupid idea to most people.

The kickstarting idea

We don’t want to make things because we’re afraid they’ll fail. But what if we can never fail?

Learning Susy wasn’t the first thing I made.

The first thing I made was my first article. It sucked; nobody paid attention to it; but it didn’t fail. There was no way it could fail because of how I defined failure.

What happens if you’ve made something and it didn’t fail?

Chances are, you’ll gain confidence to make a second thing, then another, then another, then another.

How did you define failure?

We don’t consciously think about what it means to fail. When we don’t consciously set a failure mark, we automatically set it sky high.

“It would fail if nobody buys it”, we say, but “nobody” means 200 people. No wonder we’re afraid.

How do you define failure?

Here’s another alternative, “it would fail if I don’t make it, and if I don’t tweet about it at least once”.

Build what if it doesn’t get results?

If you lower the bar for failure, you can create anything you want. Of course, they don’t guarantee results.

If you want results, you need to level up your game—get customers, connect with them, provide them with delight, give them solutions, etc.

That’s game to play at a later stage. First, you gotta make something for yourself. If you can’t make something for yourself, you’re never going to learn to make anything for someone else.

Besides, no work is ever wasted.

If you “fail” at making something, you’ll gain from the experience. You’ll learn how to make it better the next time. Thomas Edison didn’t fail to make the a lightbulb 9,999 times; he found 9,999 ways not to create a lightbulb. Eventually, he made something that worked.

No work is wasted. You learn from everything you do.

But what if you don’t have a single idea?

If you don’t have a single idea, you may have conditioned yourself not to think.

I want to share two heroes to help you out.

First, I want to share about Chee Aun. Chee Aun is a developer I respect. He’s quiet and reserved, but he’s built lots of crazy things, including hackerweb, BusRouter SG, TaxiRouter SG, RailRouter SG, and repokemon.

How does Chee Aun come up with his ideas?

One day, I heard Chee Aun talk about his idea generation process. It boiled down to one word—curiosity. He wondered: “where does buses go after he alighted from them?” From this curiosity, he eventually conjured BusRouter SG.

If you don’t have an idea, you can start by being curious. Ask questions. You’ll come to a point where you can build something to answer your questions.

The second story is about Hui Jing. Hui Jing is a strange individual who has lots of interests. (I say that because I don’t seem to have any interests). Her interests include basketball, hardware, CSS, typography, and the Chinese language.

Her interests about CSS, typography, and Chinese drove her to explore new CSS features like CSS Writing Mode. After researching, she writes articles about the things she learned (that’s what she made). Here’s one of her articles about CSS Writing Mode.

Besides writing articles, she also give hosts (and give talks) at Singapore CSS (a CSS Meetup in Singapore). One of her talks was about a Chinese typgoraphy experiment. This talk’s perspective was so unique that she eventually got to speak at conferences—including Smashing Conf, You gotta love frontend, JSConf.Asia, and WebConf.Asia. She also went on and spoke about many other CSS topics.

If you don’t have an idea, start by looking at a specific interest. Are you interested in animation? CSS? Node? JavaScript? Writing? Building random stuff?

Start with these interests. Make anything that comes to mind. Create open-sourced libraries, write articles, or build demos.

Make something. Share it.

What if you have too many ideas?

That’s a good problem to have!

If you have many ideas, you need to choose one.

To choose one, consider which idea excites you the most. Start with that one. Focus on it, complete it, tell the world about it, then start building another.

Email or tweet @ me when you’ve created something. I’ve love to see them.

Make something you’re proud to show the world

Give it your best shot. Build something you’re proud of. It doesn’t matter if it looks ugly when you’ve completed what you need to do.

One of my early projects, a HSL color tool, looked pretty ugly too. (You can read about this tool in this ancient article if you like).

Probably the ugliest web app you'll ever see
This app lacks UX and design sense. Don't you agree?

But it didn’t matter. It was the first project I built with Angular. I challenged myself, I succeeded, I have something to share, and I’m proud to share it.

When you build something you’re proud to share, you’ll tell everyone about it automatically. Another example I’m super proud to share is Learn JavaScript—it’s a course on JavaScript; I believe it’s the best course on JavaScript, ever.

Image of Learn JavaScript's logo
Learn JavaScript is the best course on JavaScript! 😺

Don’t let opinions stop you

Some people say your projects shouldn’t make money; others say side projects should be silly. These are just opinions. Don’t buy into them; don’t let them inform how your project should be.

I can’t seem to build a project that’s silly—it was never my style, but I still build things nevertheless.

You own your life, you create your rules. What matters is you make something you’re proud to show the world and say, “I made this”.

A section from Seth Godin's book, Icarus Deception

It’s important; it’s urgent

You have great ideas; you can do great work; Will you give yourself the chance? I hope you do.

If you make something, you’ll end up making more and more things. You benefit, I benefit, the world benefits (assuming you make things you’re proud of, not junk).

If you don’t make anything, you’ll get stuck. You’ll wonder how other people make things, get the success you can never seem to get, and generally be miserable for a long time. (I know, because I felt this way for at least 6 years. That was before I made anything).

So, I hope you start making things. Whatever it is, I hope you start making it now.

Want to become a better Frontend Developer?

Don’t worry about where to start. I’ll send you a library of articles frontend developers have found useful!

  • 60+ CSS articles
  • 90+ JavaScript articles

I’ll also send you one article every week to help you improve your FED skills crazy fast!