Timeline App ★
I vibe-coded an app purely for myself, called it Timeline — a web application. I took the reference and overall inspiration from Alexander Zaytsev.

Why do I need this? I liked the idea of recording important events. Second, it’s a convenient replacement for the logging I already do — right now it’s just scattered across different notes. Here it’s done through the app but goes into the same notes. And I wanted to try vibe-coding as it is, without editing code. Because normally, working with LLMs, I ask it to do something, then review the code, maybe fix things, give instructions — a more hands-on approach.
But the more interesting part was different. When I saw the reference, I got curious — what events do I want to add to my timeline? There are the obvious things, of course: my birth, starting school, university, first job, relationships, relocations, trips. And just events where I know exact dates and which matter to me – and that was really interesting as a self-reflection exercise.
Here are some insights. I had the feeling I’d been keeping a calendar for a very long time — since around mid-university, 2010 or something like that. But it turned out I started later, or it was a different account and calendar. Then I saw entries start appearing in the current one and saw how few there were. I wasn’t actually keeping a calendar the way I thought — yes, some things were marked, some were recurring, but there was far less of everything. Even after I started working on my first real job.
I can’t even remember the year of some events. I don’t have many photos, and during certain periods of my life I deliberately refused to take photos. So now I can’t even remember what year I was in Prague alone, for example. I have guesses, but the timeline works on either an exact date or a month — and even if I remember year, I can’t guess the month.
So yes — artifacts of the past actually fade, there aren’t as many as you might think. Some important things remain, but others are gone. And the whole process feels like some kind of archaeology of your own past. Vivid days, amazing friends, events. Some moments you don’t want to remember. But they’re there.
And now about tech process. I used Claude Code for this, without any skills, just gave it some minimal spec, reference, told it to keep things simple — and it produced a working version. There were a few bugs, it fixed them quickly. Then it started cranking out features I asked for, changing the organization structure, etc. I didn’t touch the code by hand with one exception – I fixed the example nginx config to work on my local machine.
At some point I accidentally looked at what it had created in the router, was shocked, and asked it to redo things following standard practices. Yeah, it was terrible – api.php with one method and switch statement for different APIs.
In the end it did everything pretty well. I can see the code isn’t perfect, but it works without a framework, it’s easy to understand and maintain. The number of features grew after that point, and nothing broke. Though the app is simple, yes.
Unlike the reference, I made support for multiple timelines and created a few: a regular one, one for work, “three good things,” and one with important things, which recreates original reference. I already filled “Important” timeline up to 2022, for others – I write every day.
Everything is stored in local Markdown files with some frontmatter, and there is simple json config file. Timelines and entries are organized into folders, with images attached. It’s all built to outlive the app, with the possibility to use it from any editor or by adding entries from scripts, shortcuts, whatever.
Overall everything turned out great, and I liked it. There are still a few features I want to add, but the application is fully functional now.
And I noticed that it’s hard to stop once you start adding features. The current ones are all useful and needed, but you realize how easy it is to add a new one, and you want to work just a little more, just a little more. Eventually I had to force myself to go to bed at some point.