Show original
Enjoyed this article?
Use "Request tipping" to ask the author to set up tip receiving.

AI translation
I've created the same app twice. I rebuilt the exact same thing from scratch. When I first released it, I thought it was "complete." But as I continued using it for several months, a sense of discomfort gradually accumulated, and one day the feeling of "I want to rebuild this" became irresistible. It wasn't a technical...
Enjoyed this article?
Use "Request tipping" to ask the author to set up tip receiving.
I've built the same app twice. I rebuilt the exact same thing from scratch. When I first released it, I thought it was "complete." But as I continued using it for several months, small discomforts accumulated, and one day the urge to "remake it" became irresistible. There were technical reasons, but honestly, the feeling of "I just don't like this" was stronger. This article is about what I discovered in that "second version." It's not about design—it's more about the heart. I'd be happy if anyone else creating something alone could relate to it even a little.
When I was building the first version, the only goal in my head was "just release it." As long as it works. If I can make it public, I win. That's what I thought.
Actually, on the day I released it, I felt a sense of accomplishment. I posted it on social media, had a few people use it, heard them say "nice," and I was satisfied.
But after using it myself for a while, small "something's off" feelings kept piling up. This screen, it's annoying to tap here every time. This flow isn't intuitive. But I was afraid to fix it, so I turned a blind eye.
I can say clearly now why I was afraid to fix it. I didn't want to "break something that was already complete." The fact of having released it became a kind of badge of honor for me, and I was reluctant to destroy that. I knew failures were accumulating, but I pretended not to see them.
Because I was desperate to complete it, I didn't have the space to think about what came after. Release became the goal, and I never imagined myself as a user continuing to use it beyond that point.
The trigger for the decision was something small. A friend asked me, "How do you use this?" and it took me 3 minutes to explain.
3 minutes. To explain something I created, it took 3 minutes.
That's when I first realized, "Oh, the structure is so broken that I can't just fix it." It wasn't about modifying parts—I felt the thinking itself was wrong.
I was scared, but I decided, "Let me build this from zero again." Not to deny my first self, but to use what became visible because I went through the first version, and create something this time.
While making the second version, I could see several mistakes my first self had made.
The biggest one was that "what I wanted to create" and "what I wanted to use" were misaligned from the start.
In the first version, adding features was fun. "This would be convenient too," "I want it to look like this"—I was absorbed as a creator. But looking at it as an actual user, there were too many features and I didn't know where to start. The screen was too busy, and you couldn't tell what the app was for at a glance.
"Creating" and "using" are completely different acts. My first self only thought about the former.
There's another painful realization.
In the first version, there were places where I thought "I can fix this later" and postponed them, but they were never actually fixed and were released as-is.
Things you put off almost certainly stay put off. I think this is a common thing in solo development, but I learned it firsthand. "Later" never comes. If it does come, it only comes in the form of "remaking it."
In the second version, I banned the phrase "fix it later" from my own vocabulary. If I felt uncertain about something now, I'd think about it right then. Just that alone completely changed how good it felt to create.
Setting aside technical talk, the biggest thing that changed while making the second version was my own feelings.
The first version was made under the pressure of "I have to release this." As I got closer to the end, the feeling of "I want to finish this already" grew stronger. That rush seemed to seep into every corner of the screen.
Strangely, I didn't feel rushed in the second version. The moment I chose the option to "do it over," some weird pressure disappeared. I progressed at a pace where I set no deadline and just built the parts I wanted to build each day.
The "atmosphere" of what was created was completely different. Even with the same features, the way whitespace was used, the choice of words, details had more breathing room. I think that wasn't a technological improvement—it was the difference in the mental ease of the person creating it.
The goal of the first version was "all features working."
The goal of the second version became "something I want to use every day."
Just that changed the criteria completely. I stopped being afraid to reduce features, and I could delete things when I thought "I don't need this." I stopped adding unnecessary things.
When I changed the completion standard from "number of features" to "do I want to use this," it became so much easier to create. In solo development, the first user is often yourself. So whether you can use it comfortably is the most legitimate criterion, I think.
When I decided to remake it, I felt a bit of self-loathing. I worked so hard, and I'm throwing it all away?
But thinking about it now, there would be no second version without the first. It's obvious, but it's really true. Because I made the first version, I understood "what felt off." Because I kept using it, the sense of "I hate this" developed.
Failure is only visible after actually trying it. There's a kind of failure that you can't see just by thinking about it. And I don't think that failure is shameful—it's "something only the person who did it can understand."
As I continue solo development, I feel that "abandoning something you've completed" is one of the most courageous choices. But I'm a little proud of myself for being able to choose it.
Remaking isn't defeat. It's digesting the first version carefully and moving to the next stage.
The sense of "I can make this again" is also proof that you've learned something.
If you have a sense of "something's off" about what you've made, that instinct is probably right.
You don't need to remake it immediately, but it's good to note that feeling. Just putting into words "what I hate about this" and "what feels wrong" will help when you take your next action.
While making the second version, I felt many times, "Because I had this note about the discomfort, this time was so much easier." I think learning from failure comes from the habit of remembering it.
What I realized from making the same thing twice is that "whether you can create comfortably" matters more than "design correctness" for continuing long-term.
No one can create something perfect on the first try. So if you can avoid being ashamed of the first version and apply it to the second, that's enough.
The fact that you keep creating is already strength. I have deep respect for people who, like me, keep creating.
Lily (@bokuwalily) — Solo developer. Creating iOS apps and web services with AI as my partner.
同じアプリを2回作ったことがあります。まったく同じものを、最初からぜんぶ作り直しました。 最初にリリースしたとき、「完成した」と思っていました。でも数ヶ月使い続けるうちに、なんとなく違和感が積もっていって、ある日「もう一回作り直したい」という気持ちが止まらなくなりました。技術的な理由もあったけれど、正直なところ、「なんか嫌なんだよな」という感覚のほうが強かったです。 この記事は、その「2回目」で気づいたことについて書きます。設計の話ではなく、どちらかといえば心の話です。同じようにひとりで何かを作り続けている方に、少しでも共感してもらえたら嬉しいです。
最初のバージョンを作っていたとき、Lilyの頭の中には「とにかくリリースする」という目標しかありませんでした。動けばいい。公開できれば勝ち。そう思っていました。
実際、リリースした日は達成感がありました。SNSに投稿して、数人に使ってもらって、「いいですね」と言ってもらえて、満足していました。
でも、しばらくして自分で使い続けていると、小さな「なんか違う」が増えていきました。この画面、毎回ここタップするの面倒だな。この流れ、直感的じゃないな。でも直すのが怖いから、見て見ぬふりをしていました。
直すのが怖かった理由を、今ならはっきり言えます。「一度完成したものを壊したくなかった」のです。リリースした事実が、Lilyにとって一種の勲章になっていて、それを崩すのが惜しかった。失敗が積み上がっているのを知りながら、見ないようにしていました。
完成させることに必死だったから、完成した後のことを考える余裕がなかったのだと思います。リリースがゴールになっていて、その先にユーザーとして使い続ける自分のことを、ぜんぜん想像していませんでした。
決断のきっかけは、小さなことでした。友人に「これどうやって使うの?」と聞かれて、説明するのに3分かかったのです。
3分。自分が作ったものを、説明するのに3分。
そのとき初めて、「あ、これ直せないレベルで構造がおかしいんだ」と気づきました。パーツを修正するとかではなく、考え方ごと間違えていると感じました。
怖かったけれど、「もう一回ゼロから作ろう」と決めました。1回目の自分を否定するのではなく、1回目を通過したからこそ見えてきたものを使って、今度は作ろうと思いました。
2回目を作りながら、Lilyが最初にやらかしていた失敗がいくつも見えてきました。
一番大きかったのは、「自分が作りたいもの」と「使いたいもの」が、最初からずれていたことです。
1回目は、機能を追加することが楽しかった。「これもあったら便利だよな」「こんな見た目にしたい」と、作り手として夢中になっていました。でも実際に使う人間として見ると、機能が多すぎてどこから触ればいいかわからない。画面が賑やかすぎて、何をするアプリなのかが一瞬でわからない。
「作ること」と「使うこと」は、全然違う行為でした。1回目のLilyは、前者しか考えていませんでした。
もうひとつ、痛かった気づきがあります。
1回目のときに「ここは後で直せばいい」と思って先送りにした箇所が、結局一度も直されないまま、そのままの形でリリースされていました。
後回しにしたことは、ほぼ確実に後回しのままになる。これは個人開発あるあるだと思いますが、Lilyは身をもって学びました。「後で」は来ない。来るとしたら、それは「作り直す」という形でしか来ない。
2回目では、「後で直す」という言葉を自分に禁止しました。今の自分がモヤっとしたら、その場で考える。それだけで、作りながらの気持ちよさがまったく変わりました。
技術的な話は一旦置いておいて、2回目のバージョンを作りながら一番変わったのは、自分の気持ちでした。
1回目は「リリースしなきゃ」という焦りの中で作っていました。終わりに近づくほど、「早く終わらせたい」という気持ちが強くなっていた。その焦りが、画面の隅々まで染み込んでいた気がします。
2回目は、不思議なことに焦りませんでした。「もう一度やり直す」という選択肢を選んだ時点で、変なプレッシャーが消えていた。期限を決めず、今日作りたい部分を作る、というペースで進めました。
できあがったものの「空気感」が、全然違いました。同じ機能でも、余白の取り方とか、言葉の選び方とか、細部に余裕が出ていた。それは技術の進歩ではなく、作っている人間の心の余裕の差だったと思います。
1回目のゴールは「機能がぜんぶ動くこと」でした。
2回目のゴールは「自分が毎日使いたいと思えること」に変えました。
これだけで、判断基準がガラッと変わりました。機能を減らすことを怖がらなくなったし、「これいらないな」と思ったら削ることができた。余計なものを足さなくなった。
完成の基準を「機能の数」ではなく「自分が使いたいか」にしたら、ずっと作りやすくなりました。個人開発って、最初のユーザーは自分自身であることが多い。だったら自分が気持ちよく使えるかどうかが、一番まっとうな判断基準だと思います。
作り直すと決めたとき、少し自己嫌悪がありました。あんなに頑張ったのに、ぜんぶ捨てるの?って。
でも今思うと、1回目なしに2回目はなかった。当たり前のことだけれど、これは本当にそうで。1回目を作ったから、「何が違和感なのか」がわかった。使い続けたから、「ここが嫌だ」という感覚が育った。
失敗は、実際にやってみてからしか見えません。考えているだけでは見えない種類の失敗が、絶対にある。そしてその失敗は、恥ずかしいものじゃなくて、「やった人間にしかわからないこと」だと思います。
個人開発を続けていると、「完成したものを捨てる」という選択が一番勇気のいることのひとつだと感じます。でも、それを選べた自分を、Lilyは少し誇りに思っています。
作り直すのは敗北じゃない。1回目を丁寧に消化して、次のステージに進む行為です。
「もう一回作れるな」と思える感覚は、何かを学んだ証拠でもあります。
もし今、自分が作ったものに「なんか違うな」という感覚があるなら、その直感はたぶん正しいです。
すぐに作り直す必要はないけれど、その感覚をメモしておくといいと思います。「どこが嫌なのか」「何が違和感なのか」を言語化しておくだけで、次の行動のときに助けになります。
Lilyは2回目を作りながら、「この違和感のメモがあったから、今回はすごく楽だった」と何度も感じました。失敗から学ぶのは、それを覚えておく習慣からだと思っています。
同じものを2回作って気づいたのは、「設計の正しさ」よりも「自分が気持ちよく作れているかどうか」のほうが、長く続けるためには大切だということでした。
完璧なものを一発で作れる人はいない。だから、1回目を恥じずに、2回目に活かすことができれば、それでいい。
作り続けていることが、すでに強さです。Lilyは、同じように作り続けている人のことを、心から尊敬しています。
Lily(@bokuwalily)― 個人開発者。AIと二人三脚で、iOSアプリやWebサービスを作っています