Reflection

Apps without ambition

I have been making personal apps that have minimal features. And sometimes I only use them once.
Making my own apps
Alfred LuaAlfred LuaOctober 15, 2025

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.

- Alchemy: The Surprising Power of Ideas That Don't Make Sense, Rory Sutherland

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.

Start simple, stay simple

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.

My writing app

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:

  1. Click on the menu icon
  2. Select “Export”
  3. Choose the export format and whether to include databases, content, and subpages
  4. Click “Export”
  5. Open the zip file
  6. Open the unzipped folder
  7. Move the markdown file to my desired folder

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.

User of one

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:

  1. Show only the bus I care about at my two usual stops
  2. Label the directions as "To Office" and "To Home", instead of the destination stops, "To Shenton Way Terminal" or "To Bukit Batok Interchange"
  3. Highlight the “To Office" section before 12pm and the "To Home" section after 12pm
  4. When I want to, have it send me a notification when the next bus is arriving within 5 minutes

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.

My bus arrival app

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.

Disposable apps

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.

My personal web activity tracker

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.

  1. One time, I wanted to force myself to prioritize my daily tasks. So, I made an app (with a single prompt in about two minutes) that shows me three huge tasks only.
  2. Another time, I wanted to read Bret Victor's Magic Ink essay but the website layout, font, and text size made it a real challenge. So, I made an app that displays the text in my preferred style.
  3. Yet another time, I wanted to maximize the monthly bonus interest from my savings account without keeping too much cash in it. So, I made an app to calculate how much money I need to have in the bank account at the start of each month.

My little apps

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.

Making my own personal software

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?

- An app can be a home-cooked meal, Robin Sloan

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


Footnotes

  1. I use Booplet to create many of my personal apps because Booplet apps are on my computer by default, instead of being online and public, and I do not have to deal with hosting the apps, converting them into desktop apps myself, or using localhost apps.
  2. I sometimes use a simple markdown file on my computer as the "database" for my personal desktop apps.
  3. If you are curious to read more about building personal software, here are two more essays that influenced my thinking: Home-Cooked Software and Barefoot Developers by Maggie Appleton, and Malleable software in the age of LLMs by Geoffrey Litt.