Build software that changes the world.
Scale to millions or billions.
Make it last forever.
The Silicon Valley dream.
I grew up chasing that dream. I joined tech startups and tried learning to code as a marketer so that I may eventually build something that people around the world use and love.
For the past decade, I felt I was wasting time if I was working on software that wasn't going to change the world or reach millions. Unlike physical products, software can be extended infinitely and be used by anyone around the world, forever. Why aim for anything less impactful?
Ironically, the answer came to me from the opposite end of the spectrum. As Rory Sutherland, vice chairman of Ogilvy & Mather, likes to say:
The opposite of a good idea can be another good idea.
Since the start of the year, I have been making apps with as few features as possible, just for myself, and sometimes even for a single use. Through the process, I began to see that the opposite of large-scale revolutionary apps is also a good idea.
Even though I have been learning to code, I can only build simple little tools myself. Like most builders, I'm always tempted to add more features, to make them more ambitious.
But I realized that an app with fewer features can actually be better.
One of the apps I made this year is a personal writing app. It lets me type in a clutter-free interface, tracks how much I write every day, and suggests alternative phrasings via AI. It has no collaboration features, no folder and file organization, and no spell check.
If I were to compare it with Notion, it's like a paring knife beside a Swiss Army knife.
But I don't need 90% of the features in Notion. And doing simple tasks in Notion requires many steps because it has so many features. For example, I write essays in markdown to publish them on our website. To download a Notion page as a markdown file, I would need to:
The designers at Notion had to find a way to slot the markdown export option alongside all other export options and features. On the other hand, my personal writing app simply has a save button to update the chosen markdown file on my computer. Besides saving me six clicks, my simple app fits my workflow of working with markdown files. A comprehensive but generic software forces me to change and complicate my workflow.
Because my writing app already satisfies what I need, I have no intention of adding more features to it. It starts simple and stays simple.
I can keep my writing app simple because I do not have to think about how others might want to use the app. When I started making apps only for myself, I noticed interesting possibilities that mass-market software can't offer.
Here's an example from another part of my life: I want to check the bus times on my computer because I'm usually working on my computer before I go to the bus stop. But mass-market bus apps are built for commuters who prefer to check the times on their phones. I could use one of these generic apps but I would have to pick up my phone, unlock it, open the app, and switch to my favorites tab.
Instead, I made my personal bus app. Because I'm the only user forever, I could customize it my way:
Now, I don't have to pick up my phone to know when I should head for the bus stop. I can quickly glance at the little window in the corner of my three-screen setup or wait for a notification.
While most bus apps are designed to let commuters check the times of different buses at different stops, my bus app is made only for me and for one specific purpose:
When should I leave my desk?
Because the app is built specifically for me and is already configured the way I want it, I don’t have to favorite my bus or even have a settings page. To paraphrase Clay Shirky, I don’t need to personalize my software; it is personal from its inception.
And because it's a private app on my computer1, I don't have to let others sign up for an account, secure my data from others2, or make the interface intuitive for everyone. Making software for one is much simpler than creating professional, scalable software.
Making apps only for myself has simplified what it means to build an app. On top of that, AI coding has made creating an app easier. The knowledge, effort, and time required to make a personal app is so low that we can now create single-use apps.
A while back, I was spending too much time on X. So, I made a browser extension that lets me see at a glance where I spent most of my time.
After about a week, I stopped using it because it got me to use X less. It might seem wasteful to create an app only to use it for a week. But I created it with the help of AI in only half an hour. I was spending more time doomscrolling on a single day.
When we can create apps as easily as typing a few sentences, we don’t need the apps to last forever—and there are a lot more things we would make apps for.
Five years ago, these little apps would have taken me days or even months to create. I might not have even tried. Now, they took me only minutes.
In his popular essay, An app can be a home-cooked meal, author Robin Sloan compared making an app to making a home-cooked meal3:
When you liberate programming from the requirement to be professional and SCALABLE, it becomes a different activity altogether, just as cooking at home is really nothing like cooking in a commercial kitchen. I can report to you: not only is this different activity rewarding in almost exactly the same way that cooking for someone you love is rewarding, there’s another feeling, too, specific to this realm. I have struggled to find words for this, but/and I think it might be the crux of the whole thing:
This messaging app I built for, and with, my family, it won’t change unless we want it to change. There will be no sudden redesign, no flood of ads, no pivot to chase a userbase inscrutable to us. It might go away at some point, but that will be our decision. What is this feeling? Independence? Security? Sovereignty?
Is it simply … the feeling of being home?
This resonated with me. While I have been learning to code for many years, I never felt like a professional developer. When I say I make apps, I'm really hacking them together. I don't always follow "best practices". I can't always rewrite AI-generated code myself, even if I understand what it does. I give myself much more leeway than a serious coder would because I'm cooking for myself, not running a restaurant.
Does it work the way I want it to?
Does it look the way I want it to?
Does it feel the way I want it to?
Yes, yes, yes? Great!
This approach might be blasphemy to developers working on professional apps for millions of users. But when I'm crafting personal apps for myself, without wanting to change the world, it is liberating. I can now make things I couldn't before.
There are plenty of companies busy making impersonal software for the masses. But only I can make the weird little apps I want. It doesn't matter what others might think of them. My personal apps are just the way I want them. And that's all they need to be.
And you know what? When I write in my app, or glance at my bus app, or see my three giant tasks staring back at me, I can't help but let out a small smile.
I knew what I needed.
And I made it for myself.
Share to LinkedIn, Twitter, Threads, Hacker News