<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: baanbok</title>
    <description>The latest articles on DEV Community by baanbok (@baanbok).</description>
    <link>https://dev.to/baanbok</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4025349%2F3c627c82-665e-4ff5-b256-7d9152405f49.png</url>
      <title>DEV Community: baanbok</title>
      <link>https://dev.to/baanbok</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/baanbok"/>
    <language>en</language>
    <item>
      <title>I deleted every fitness app I tried. So I built my own — in 17 days, after work.</title>
      <dc:creator>baanbok</dc:creator>
      <pubDate>Sat, 11 Jul 2026 16:55:33 +0000</pubDate>
      <link>https://dev.to/baanbok/i-deleted-every-fitness-app-i-tried-so-i-built-my-own-in-17-days-after-work-2f48</link>
      <guid>https://dev.to/baanbok/i-deleted-every-fitness-app-i-tried-so-i-built-my-own-in-17-days-after-work-2f48</guid>
      <description>&lt;h2&gt;
  
  
  I'm a back-end developer in Korea.
&lt;/h2&gt;

&lt;p&gt;Nine years of Java, Kotlin, and Spring — all of it building other people's servers. Until last month, there wasn't a single app with my name on it in any store.&lt;/p&gt;

&lt;p&gt;That changed in 17 days: 172 commits, 30 database migrations, 5 languages. A fitness and diet app called &lt;b&gt;Baanbok&lt;/b&gt; — it's Korean for repetition. It's live on the App Store now, and currently fighting its way through Google Play's closed-testing gauntlet (a mandatory 14-day gate — 5 days to go).&lt;/p&gt;

&lt;p&gt;The numbers make it sound like a hackathon story. It wasn't. I have a full-time job. I just opened my laptop every evening after work and stacked a little more on top of yesterday's pile.&lt;/p&gt;

&lt;p&gt;This series is the log of those 17 days. But honestly, the story starts three years earlier.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why the app is called "Repetition"
&lt;/h2&gt;

&lt;p&gt;In the spring of 2023, I was in a bad place. I'll keep the details to myself, but I'll tell you the part that matters for this story: the heaviest thing I carried wasn't sadness. It was guilt. The kind that renews itself every morning — you did nothing again today. I learned firsthand how deep that spiral goes.&lt;/p&gt;

&lt;p&gt;That May, I signed up for a gym. First time in my life. 98 kg, zero muscle, no idea what I was doing.&lt;/p&gt;

&lt;p&gt;There was no grand resolution. I just went. Then I went again the next day. The weights were embarrassing and my form was terrible, but on the walk home after each session, the guilt went quiet for a while.&lt;/p&gt;

&lt;p&gt;That was three years ago. I'm still going.&lt;/p&gt;

&lt;p&gt;What pulled me out wasn't willpower. It was repetition. So when I built an app three years later, there was only ever one name for it. Calling it anything else would have felt like skipping out on a debt.&lt;/p&gt;

&lt;p&gt;(Fun fact: the romanization should technically be "Banbok," but I couldn't let an app built on never punishing you start with the word "ban." So it got an extra a. The only thing banned in this app is the word itself.)&lt;/p&gt;




&lt;h2&gt;
  
  
  Okay, but what does the app do?
&lt;/h2&gt;

&lt;p&gt;This year I started a proper 16-week cut, and figured I'd finally track things seriously. I installed every fitness and diet app I could find. Then I deleted every single one.&lt;/p&gt;

&lt;p&gt;They all demanded the same thing: daily input. Search the food, type the grams, save. Chicken breast, 200g. Same as yesterday. Same as tomorrow.&lt;/p&gt;

&lt;p&gt;Here's the thing about being on a cut — your days are almost comically repetitive. The meal plan is fixed. The workout split is fixed. The information content of my day is basically zero. And these apps wanted me to re-enter that zero, by hand, every single day.&lt;/p&gt;

&lt;p&gt;As a backend dev, this offended me on a professional level. It's recomputing an identical response on every request. These apps don't cache. And humans have far less patience than servers — we drop the connection after about three days, then leave a review blaming ourselves for it.&lt;/p&gt;

&lt;p&gt;So the idea was one sentence: &lt;b&gt;check, don't log.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Design your plan once, with as much care as you want. Then every day, the app lays out today's list and you just tap what you did. Macros and volume aggregate themselves from your checks. And one more rule, the one I refused to negotiate on: the app never, ever scolds you for a missed day. I know exactly what guilt does to a person. I wasn't going to ship a guilt machine.&lt;/p&gt;

&lt;p&gt;On June 24th, at night, I ran&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  What's coming in this series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How a backend dev with zero React Native experience got to an MVP in 6 days by pairing with AI — and what "vibe coding" actually looks like in practice&lt;/li&gt;
&lt;li&gt;The night before launch, when I discovered my server's auth had a door wide open (AI builds fast; locking up is still your job)&lt;/li&gt;
&lt;li&gt;Dogfooding my own app through my own cut, and learning that a frozen number on screen is worse than no number&lt;/li&gt;
&lt;li&gt;Why I killed the streak feature — the industry's default retention answer — and what I stole from an old racing game instead&lt;/li&gt;
&lt;li&gt;The day I shipped 8 database migrations before midnight&lt;/li&gt;
&lt;li&gt;And the thing I did more diligently than building features: &lt;b&gt;deleting them&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fair warning: there's no "I grinded harder than everyone" arc here. The method for the body and the code was identical. Don't sprint. Show up daily.&lt;/p&gt;

&lt;p&gt;One more thing: English isn't my first language, and I write these posts the same way I built the app — my story, my facts, an AI pair polishing the sentences. Speed from the AI, accountability on me.&lt;/p&gt;

&lt;p&gt;See you in part 1.&lt;/p&gt;




&lt;p&gt;Baanbok is free on the App Store — no sign-up required, guest mode gets you everything.&lt;/p&gt;

&lt;p&gt;The Android build is in closed testing.&lt;/p&gt;

&lt;p&gt;Thank You.&lt;/p&gt;

</description>
      <category>sideprojects</category>
      <category>career</category>
      <category>mobile</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
