03. No One Knows How Many Failed Projects I’ve Built
Last updated:

If someone asked me which project I’ve built over the past decade or so was the most successful, I would probably need a moment.
But if they asked which ones had failed, that would be easy. I could name several without even thinking.
I’ve written blogs, built open-source projects, run websites, studied SEO, and tried to turn personal interests into side businesses. Every few years, I become obsessed with something new. Then I spend months—sometimes a year or two—turning a vague idea into something that works.
Measured purely by commercial results, about 90 percent of those projects failed.
Some websites disappeared soon after launch. Some open-source projects attracted almost no users. Some blogs survived for years before stopping on an ordinary day, never to be updated again.
By now, I should have forgotten all of them.
Strangely, they still return to me from time to time. I’ve forgotten many details from my professional work, but I still remember the blinking cursor the first time I logged into a Linux server. I remember the excitement of buying my first domain. I also remember spending three days trying to write an article, only to produce barely a hundred words.
Eventually, I realized that those failed projects had left me something more important than websites or code.
Little by little, they changed how I understood products, technology, and myself.
Without them, I probably wouldn’t be a software engineer today.
And I wouldn’t be writing this.
The Year I Got My First Server
In 2009, I left a university in China after only one year and moved to Japan to study at a language school.
Looking back, I would probably finish university first if I had another chance. But in my early twenties, I didn’t have much of a plan. The internet beyond the firewall felt like another world, and I wanted to see it for myself.
In 2011, I graduated from language school and entered a university in Yokohama, starting college all over again.
My life as an international student looked nothing like the movies. I wasn’t a model student who approached every class with boundless energy. I wasn’t skipping lectures and going to parties every night either.
My routine was much less exciting:
Classes. Part-time work. Home.
I earned less than 60,000 yen a month—about $700 at the exchange rate back then. After rent and living expenses, almost nothing remained.
The one thing that truly felt like mine was an ASUS laptop that cost around $150. I owe that computer to an older mentor I had always admired. He was visiting Japan on a business trip and helped me buy it.
That laptop stayed with me while I played games, installed random software, and stayed awake far too late experimenting with anything related to computers. Most days, I would rather sit in my room exploring software than go outside.
Then one day, I came across a website about travel in Japan.
Its design would look ordinary now, but at the time, it felt fresh and modern. I stared at the page for a long time before a thought occurred to me:
An ordinary person could own a website.
That idea kept me excited for days. I decided to build one myself. I even had a clear concept: a website offering Japan travel guides to international visitors.
Looking back, there was nothing wrong with the idea.
The problem was that I had barely traveled anywhere myself.
People in their early twenties rarely let details like that stop them. I was convinced that once I built the website, everything else would somehow fall into place.
So that night, I used my credit card to rent a server.
Only afterward did I discover that plenty of hosting companies already offered one-click WordPress installation. A few clicks, and an entire blog would be ready.
Apparently, the world had already invented a convenient, all-in-one solution.
I had simply paid before noticing it.
But I had rented the server, so I had to do something with it. I followed online tutorials, learned Linux from scratch, and typed commands line by line to install Apache, MySQL, and PHP.
After several days of struggle, I finally had my first server.
It came with CentOS preinstalled. In theory, I only needed to install the necessary software packages.
The problem was that I knew almost nothing about Linux. My main technical skill was trying things without knowing what they would do.
What did I do when an installation failed?
Open the VM console and reinstall CentOS.
What if it failed again?
Reinstall it again.
For a while, reinstalling the operating system became part of my morning routine. The screen looked calm. Inside, I was in complete chaos.
Later, I went to GoDaddy and bought a domain:
jaforeign.com
The name combined “Japan” and “Foreign.” Looking at it now, it feels long and a little awkward. But my vocabulary and imagination had reached their limits.
It would have to do.
Eventually, the server started working. MySQL connected successfully. The domain resolved correctly.
I opened the WordPress dashboard and created my first post.
The cursor blinked.
I sat in front of the screen and suddenly realized that I had no idea what to write.
I was still celebrating the fact that WordPress worked.
My mind, however, was completely empty.
Writing Software and Building a Product Are Two Different Things
I had assumed that the hardest part was over.
I had configured a server. What could possibly be harder than that?
As it turned out, the difficult part had barely begun.
After three days, I had written only a little over a hundred words.
It wasn’t because I couldn’t write. I had nothing to write about.
My days consisted of classes and part-time work. I spent nearly all my remaining time at home. I hadn’t visited many tourist attractions, and I had no travel experience worth sharing regularly.
The website existed. The server was running. The domain worked.
There was almost nothing inside it.
Less than two months later, I shut down the server and abandoned the domain.
Judged only by its outcome, the project was a complete failure. Even so, I have never considered those two months wasted.
That was when I first began to understand Linux, LAMP, HTML, and server deployment. It was also when I discovered that I was far more interested in building software than writing about travel.
I’ve always enjoyed traveling. At the time, however, my income meant I could barely afford to visit tourist attractions on my own. Fortunately, both my language school and university subsidized trips for international students. Thanks to them, I even visited Tokyo Disneyland several times.
I remain grateful to both schools.
Looking back, the most important thing that travel website produced wasn’t a website.
It gave me the direction of my career for the next decade and beyond.
Many experiences work like that.
You think you’re searching for A.
You return with B.
The Second Time, I Thought I Was Ready
Years later, I had become a software engineer.
I told myself that my first project had failed because I was young. Now I had experience. I had technical skills.
Surely, this time would be different.
In 2020, when the COVID pandemic began, I used my evenings after work to build an open-source CSS framework called RotalaCSS.
Later, I built my own blog, Pitayan, around it.
This time, I finally had the skills to make things properly. The code became cleaner. The architecture became more mature. The blog’s design gradually moved closer to what I had imagined.
Two of my articles even reached the Hacker News front page.
Add links to the articles and a screenshot of Hacker News before publishing.
For several days, I kept Google Analytics open almost constantly, watching the visitor count refresh.
I thought my opportunity had finally arrived.
Then the traffic disappeared.
The blog failed to attract regular readers. The project failed to gain active users.
The problem wasn’t only whether the product was good. I still hadn’t answered the most important question:
Who actually needs this?
It Took Me More Than a Decade to Notice I Was Repeating the Same Mistake
Sometimes, I look back at those projects together.
jaforeign, RotalaCSS, and Pitayan appear completely different.
One was a travel website. One was a CSS framework. One was a technical blog.
But viewed across a longer timeline, they failed in almost exactly the same way.
I would begin with an idea that seemed exciting, then immediately start writing code. Only after finishing the product would I go looking for users.
The travel blog had no content.
The open-source framework had no users.
The technical blog had no consistent publishing schedule.
On the surface, each project failed for a different reason. In reality, they were all trying to teach me the same lesson:
The greatest product risk usually isn’t technology. It’s demand.
Today, that sounds like an obvious statement dressed up as insight.
It still took me more than a decade to understand it.
Your own problem might be worth solving. But without validation, you may end up building a solution for an audience of one: yourself.
Beautiful code won’t change that.
Neither will elegant architecture or polished design.
Without real demand, a product becomes an impressively executed form of self-indulgence.
Those Failures Became My Teachers
Today, I’m no longer in a hurry to label those projects as failures.
They didn’t make money. They didn’t make me famous.
But without them, I wouldn’t have learned Linux. I wouldn’t have started writing code. I wouldn’t have discovered open source or studied SEO. I wouldn’t have developed my current interest in AI and software engineering.
Friends sometimes ask why I now spend so much time talking to people before starting a new project instead of immediately opening my IDE.
Sometimes, the friend asking is the person I’ve dragged into one of those conversations.
I didn’t suddenly become smarter.
I’ve fallen into the same hole too many times, from too many different angles.
The first time, I had no content.
The second time, I had no users.
The third time, I didn’t have enough time to continue.
Those problems look different, but they point to the same answer: I kept rushing to build before confirming whether I was solving a real problem.
These days, I ask myself less often:
Will this project succeed?
I would rather begin with another question:
Does this project solve a problem that truly exists?
Because I finally understand that code is never where a product begins.
Demand is.
One Last Thought
If you met me today, you might see someone who writes code, follows emerging technology, works as a software engineer, and occasionally publishes a blog post.
But rewind more than a decade, and none of those identities existed yet.
They all grew from a website that disappeared years ago. From a blog containing only two unfinished posts. From a young man sitting in front of an ASUS laptop, reinstalling CentOS again and again.
I went on to build many more projects.
Most of them failed.
They attracted few users, generated no income, and left almost no trace on the internet. Almost nobody knows how many late nights I spent working on them—or how much hope I placed in each one.
But without that first failure, the rest of the story might never have happened.
Those projects never became successful products.
But together, they made me who I am today.



