Efim.dev/log
413 m
Auto-translated from Russian
Here's a little background. I have a personal website, efim.dev, which has been a placeholder for many years. The idea was to create a mirror of my Telegram channels with proper search functionality for posts, plus a section with small tools for myself. I just never found the time to do it.

Then, I have to admit, I was a .NET enthusiast. The previous version was built on Blazor, using libraries that were five years old. It worked, and that was that.

But then I started working with AI, and I quickly realized that I needed to change the technology stack. I rewrote everything in Next.js. Not because .NET is bad, but for two pragmatic reasons: AI works noticeably better with the JavaScript ecosystem (more context in training, fewer hallucinations in the API), and the iteration cycles are shorter – you make a change, you see the result, you make another change. The speed of the "idea to working code" cycle is crucial when you're coding with AI.

At the same time, the AI helped me clean up the infrastructure: Terraform providers were updated to v3, Helm charts were updated, and deployment is now a single manual workflow in GitHub Actions: build the image, push it to the registry, and perform a rolling upgrade in Kubernetes.

Here are some of the interesting things it implemented:
* Content is stored in SQLite, and the search uses FTS5 with a trigram tokenizer: Russian word forms are searched without a stemming dictionary.
* Posts are fetched from Telegram, and translation to English is done via MTProto. The synchronization is a CronJob that runs every 15 minutes, and a full history scan is done every 12 hours.
* Videos: Telegram previews are parsed, and signed URLs with refresh are used. Files that are too large are honestly marked as "only available on Telegram," and YouTube videos are displayed with a click-to-play facade using youtube-nocookie.
* My own analytics, without cookies or third-party scripts.

The main engineering takeaway: AI is an excellent junior developer with endless patience. However, you still need to define the architecture, boundaries, and what "we won't do" in terms of design. But what used to take a week of routine work now takes an evening.

I've written separately about my feelings about all of this in my life channel: I wrote about it in my life channel. It's about what it's like when something you've been planning for years is done in days, and about the anxiety that remains.

#ai