Beta Space StudioBeta Space Studio logo

I rewrote this app from scratch. Again.

Onat Vural
Onat Vural
4 min read
I rewrote this app from scratch. Again.

<video src="/blog/zheno-screen-record.mp4" autoplay muted loop playsinline style="width:100%;border-radius:12px;margin-bottom:2rem;"

The first version was a progressive web app — a multi-agent system I built with Next.js and the AI SDK. Since October, I've been running beta tests with 15 active cyclists and runners I know personally. There was a lot of learning along the way, and I improved the experience day by day.

But I eventually decided that the best way to fix certain things was to chart the right course from the very beginning. So I took full control. I spun up a brand new backend and database architecture on my own Hetzner VPS. In the second version, unlike the first, I decided to focus exclusively on the Garmin ecosystem. 90% of my target audience — endurance athletes in running, cycling, and swimming — use Garmin. Building the experience on top of sleep, training, and recovery metrics pulled directly from there was my goal for this first phase.

I didn't stop at the Garmin APIs either. I built a pipeline that downloads raw training files and decodes them myself. This lets me feed every last detail of a completed workout to the AI exactly as I want.

Claude Agent SDK: A Different World Entirely

For processing data with AI, I made another significant change: I swapped the AI SDK for the Claude Agent SDK directly. The core reason was this — while the AI SDK worked well in general, it struggled at agentic tool calling. When I asked something like "Analyze my last month of performance and tell me the most important things I need to know," there were bottlenecks around which tool the AI would call and what kind of information it would actually retrieve.

The Claude Agent SDK is a completely different world. With its built-in Read, Edit, Bash, Glob, and Grep capabilities, the AI agent you create in your app can literally work like Claude Code. It produces far more autonomous and intelligent responses. On top of that, features like prompt caching and adaptive thinking let you avoid burning unnecessary tokens. Claude isn't the cheapest provider, but when you build with its own SDK it performs remarkably well and ends up being far less expensive than you'd expect.

Swift: Taking Full Control of the Device

On the frontend, I made another radical call and went iOS Native (Swift) only. My reason for choosing Swift over React Native wasn't just curiosity about native development with Claude Code or the appeal of using components like Apple Maps. The real goal was to take complete control of the device hardware, achieve maximum efficiency, and be one hundred percent confident that the app would perform at its best under any conditions.

So Onat, what's your point?

Here's the short version: until last year, my world was human-centered design and UX. Then I met Said, and Claude Code entered my life, and I went down a completely different path. The real story here isn't "vibecoding." Once you understand the fundamentals of software engineering and architecture, and once you understand the right languages and stacks to use, there's very little you technically can't build.

Yes, security needs to be considered. Yes, long-term performance needs to be evaluated. But you can absolutely build the product that gets you to your first 1,000 users on your own. Once you reach 1,000 users, you can raise investment and tackle architecture and security improvements properly.

What I find genuinely valuable in personal projects like this is discovering how to architect correct multi-agent systems, experimenting with different AI SDK frameworks, testing model differences and performance against real data and real use cases, and figuring out how to build an effective, efficient memory layer through trial and error.

None of this is written down anywhere. There are no books, no teachers for this stuff yet. You can only discover it through trial and error — or by following the people who are out there discovering it day by day.


This article was written in March 2026. It reflects the author's personal views.

I rewrote this app from scratch. Again. | Beta Space Studio