<?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>Forem: Hcan</title>
    <description>The latest articles on Forem by Hcan (@hcan_359).</description>
    <link>https://forem.com/hcan_359</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3792256%2F3d47407a-240b-4ce0-a7b7-e4e556f19a33.jpg</url>
      <title>Forem: Hcan</title>
      <link>https://forem.com/hcan_359</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/hcan_359"/>
    <language>en</language>
    <item>
      <title>I Built an App to Track all. Games, Movies, and Anime in One Place</title>
      <dc:creator>Hcan</dc:creator>
      <pubDate>Mon, 23 Mar 2026 07:02:53 +0000</pubDate>
      <link>https://forem.com/hcan_359/i-built-an-app-to-track-all-games-movies-and-anime-in-one-place-209h</link>
      <guid>https://forem.com/hcan_359/i-built-an-app-to-track-all-games-movies-and-anime-in-one-place-209h</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;I was drowning in spreadsheets.&lt;/p&gt;

&lt;p&gt;One for games I wanted to play. Another for movies to watch. A separate list for anime. A Google Doc for manga. And I still kept forgetting what episode I was on in three different shows.&lt;br&gt;
I tried different apps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;*&lt;em&gt;Playnite *&lt;/em&gt;— great for games, but what about movies?&lt;/li&gt;
&lt;li&gt;*&lt;em&gt;Letterboxd *&lt;/em&gt;— movies only, requires an account&lt;/li&gt;
&lt;li&gt;*&lt;em&gt;MyAnimeList *&lt;/em&gt;— anime only, everything stored in the cloud&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trakt.tv&lt;/strong&gt; — no games, some features behind a paywall&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of them did what I wanted: &lt;strong&gt;one app for all my media, stored locally, works offline, no accounts&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So I built it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tonkatsu Box
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fir0rnsqd3nxg36x3d3z6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fir0rnsqd3nxg36x3d3z6.png" alt="Tonkatsu Box" width="200" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tonkatsu Box is a free, open-source collection manager for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎮 Games — search 250,000+ titles across 220 platforms (from Atari 2600 to PS5)&lt;/li&gt;
&lt;li&gt;🎬 Movies &amp;amp; TV Shows — from classic films to latest releases&lt;/li&gt;
&lt;li&gt;📺 Anime — automatically detected and categorized&lt;/li&gt;
&lt;li&gt;📖 Visual Novels — for VN enthusiasts&lt;/li&gt;
&lt;li&gt;📚 Manga — track chapters you've read&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;No accounts. No cloud. No subscriptions. No setup.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Install, pick your language, and start using. That's it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Works Out of the Box
&lt;/h3&gt;

&lt;p&gt;Here's what I mean by "no setup":&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download the app&lt;/li&gt;
&lt;li&gt;Install it&lt;/li&gt;
&lt;li&gt;Choose your language (English or Russian)&lt;/li&gt;
&lt;li&gt;Start adding stuff&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;All API keys are built in. You don't need to register anywhere, create accounts, or configure anything. Just open the app and search for your favorite game or movie.&lt;br&gt;
If you want to use your own API keys for higher rate limits — you can add them in Settings. But you don't have to.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Everything Lives on Your Device
&lt;/h3&gt;

&lt;p&gt;This was important to me. I didn't want my collection in someone else's cloud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;All your data is stored locally&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SQLite database on your device&lt;/li&gt;
&lt;li&gt;Cached images for offline access&lt;/li&gt;
&lt;li&gt;No sync, no servers, no "we updated our privacy policy" emails&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Works offline&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After you search and add something, the data is cached&lt;/li&gt;
&lt;li&gt;Browse your collection without internet&lt;/li&gt;
&lt;li&gt;Perfect for travel or spotty connections&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Easy to backup&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your entire library is a single database file&lt;/li&gt;
&lt;li&gt;Copy it, put it on a USB drive, store it wherever you want&lt;/li&gt;
&lt;li&gt;Moving to a new PC? Just copy the folder&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Easy to transfer&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Export any collection as .xcoll (lightweight) or .xcollx (with all images)&lt;/li&gt;
&lt;li&gt;Send the file to a friend&lt;/li&gt;
&lt;li&gt;They import it and have everything — covers, ratings, your notes&lt;/li&gt;
&lt;li&gt;No internet required for imported collections&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Search Anything&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open the app, pick what you're looking for — games, movies, TV, anime, visual novels, or manga. Search by name or browse by genre, year, platform.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4gtvey2qch91j0opjn83.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4gtvey2qch91j0opjn83.png" alt="Tonkatsu Box" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Results come from real databases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IGDB for games (same database IGN uses)&lt;/li&gt;
&lt;li&gt;TMDB for movies and TV shows&lt;/li&gt;
&lt;li&gt;VNDB for visual novels&lt;/li&gt;
&lt;li&gt;AniList for manga&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Found something? Tap to add it to your collection. Done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Organize Your Way&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create collections that make sense to you:&lt;/p&gt;

&lt;p&gt;"2025 Backlog"&lt;br&gt;
"Best SNES RPGs"&lt;br&gt;
"Watch with Partner"&lt;br&gt;
"Studio Ghibli Marathon"&lt;br&gt;
"Completed This Year"&lt;/p&gt;

&lt;p&gt;Mix different media types in one collection. Your Batman collection can have games, movies, animated series, and comics together.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75hfsqd6fk3melbijibm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75hfsqd6fk3melbijibm.png" alt="Tonkatsu Box media" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Switch between list view, poster grid, or table view. Sort by name, rating, release date, or when you added it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Track Your Progress&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mark items as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⭕ Not Started&lt;/li&gt;
&lt;li&gt;▶️ In Progress&lt;/li&gt;
&lt;li&gt;✅ Completed&lt;/li&gt;
&lt;li&gt;⏸️ Dropped&lt;/li&gt;
&lt;li&gt;📌 Planned&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;For TV shows and anime — track individual episodes. Check off what you've watched. See progress bars per season. Never lose your place again.&lt;/p&gt;

&lt;p&gt;For manga — track chapters. Mark how many you've read out of the total. Progress updates automatically.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Rate and Review&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Give everything a personal 1-10 rating. See how your rating compares to IGDB or TMDB scores.&lt;/p&gt;

&lt;p&gt;Add private notes that only you can see — "gift from Alex", "play with controller", "watch the director's cut".&lt;/p&gt;

&lt;p&gt;Write reviews to share with friends when you export your collection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Visual Boards&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is my favorite feature. Drag posters onto a free-form canvas. Add text notes. Draw connections between items.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpm72zo5btas7suxkluo3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpm72zo5btas7suxkluo3.png" alt="Tonkatsu Box moodboard" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Perfect for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mapping franchise timelines (MCU, Star Wars, Yakuza series)&lt;/li&gt;
&lt;li&gt;"Play this before that" guides&lt;/li&gt;
&lt;li&gt;Recommendation boards for friends&lt;/li&gt;
&lt;li&gt;Visualizing your yearly completions&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tier Lists
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frqlyeqvsz8my1yrx55gy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frqlyeqvsz8my1yrx55gy.jpg" alt="Tonkatsu Box tier-list maker" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
Rank your collection. Drag items into S/A/B/C/D/F tiers. Customize tier names and colors.&lt;/p&gt;

&lt;p&gt;When you're happy with it — export as PNG image to share on social media or Discord.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bring Your Existing Data
&lt;/h2&gt;

&lt;p&gt;Already tracking somewhere else? Don't start from scratch. Import what you have.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steam Library&lt;/strong&gt;&lt;br&gt;
Connect your Steam account and import:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All your owned games&lt;/li&gt;
&lt;li&gt;Playtime (hours played)&lt;/li&gt;
&lt;li&gt;Last played dates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hundreds of games — added in seconds. No more typing names manually.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trakt.tv History&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Export your Trakt data (they give you a ZIP file) and import:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Complete watch history&lt;/li&gt;
&lt;li&gt;All your ratings&lt;/li&gt;
&lt;li&gt;Episode progress for every show&lt;/li&gt;
&lt;li&gt;Your watchlist&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Years of tracking — transferred instantly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RetroAchievements&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For retro gaming fans who use RetroAchievements.org:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Import your entire game library&lt;/li&gt;
&lt;li&gt;Achievement progress (like "24/50 achievements")&lt;/li&gt;
&lt;li&gt;Awards — mastered and beaten games automatically marked as completed&lt;/li&gt;
&lt;li&gt;Activity dates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Supports 50+ retro consoles from NES to PSP.&lt;/p&gt;

&lt;h2&gt;
  
  
  Share With Friends
&lt;/h2&gt;

&lt;p&gt;Export any collection as a file:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;.xcoll — lightweight, just metadata (recipient needs internet to load images)&lt;/li&gt;
&lt;li&gt;.xcollx — full package with all images (works completely offline)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Send the file however you want — Discord, email, USB drive.&lt;br&gt;
Your friend imports it and sees everything exactly as you set it up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All the items&lt;/li&gt;
&lt;li&gt;Cover images&lt;/li&gt;
&lt;li&gt;Your ratings and reviews&lt;/li&gt;
&lt;li&gt;Board layouts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;"Here's my top 50 PS1 games with ratings and notes" — now that's easy to share.&lt;/p&gt;

&lt;h2&gt;
  
  
  Runs Everywhere
&lt;/h2&gt;

&lt;p&gt;Windows✅&lt;br&gt;
Linux✅&lt;br&gt;
Android✅&lt;/p&gt;

&lt;p&gt;Same app, same features, same data format on all platforms.&lt;br&gt;
Start on PC, export your collection, import on phone. Or just copy the database folder between devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy First
&lt;/h2&gt;

&lt;p&gt;Let me be clear about what this app does and doesn't do:&lt;br&gt;
Does:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store everything locally on your device&lt;/li&gt;
&lt;li&gt;Work without internet (after initial search)&lt;/li&gt;
&lt;li&gt;Let you export/backup your data anytime&lt;/li&gt;
&lt;li&gt;Respect your privacy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Doesn't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create accounts&lt;/li&gt;
&lt;li&gt;Sync to cloud&lt;/li&gt;
&lt;li&gt;Track what you watch&lt;/li&gt;
&lt;li&gt;Show ads&lt;/li&gt;
&lt;li&gt;Cost money (now or ever)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I built this for myself first. I don't want your data. I don't even have a server to store it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;Free. Open source. MIT license.&lt;/p&gt;

&lt;p&gt;No catch. No "free tier with limitations". Just free.&lt;/p&gt;

&lt;p&gt;📦 Download &lt;a href="https://github.com/hacan359/tonkatsu_box/releases" rel="noopener noreferrer"&gt;Windows, Linux, Android&lt;/a&gt;&lt;br&gt;
📂 Source &lt;a href="https://github.com/hacan359/tonkatsu_box" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;br&gt;
📚 Documentation &lt;a href="https://github.com/hacan359/tonkatsu_box/wiki" rel="noopener noreferrer"&gt;Wiki&lt;/a&gt;&lt;br&gt;
💬 Community &lt;a href="https://discord.gg/JZVNPF7cS2" rel="noopener noreferrer"&gt;Discord&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Built with Flutter. Available in English and Russian.&lt;/p&gt;




&lt;h2&gt;
  
  
  What About You?
&lt;/h2&gt;

&lt;p&gt;How do you track your games, movies, and shows? Spreadsheets? Multiple apps? Let me know in the comments — and if you try Tonkatsu Box, I'd love to hear what you think!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>flutter</category>
      <category>showdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Vibe Coding Will Make You Feel Like a God. Then It Won’t.</title>
      <dc:creator>Hcan</dc:creator>
      <pubDate>Sat, 07 Mar 2026 21:01:01 +0000</pubDate>
      <link>https://forem.com/hcan_359/vibe-coding-will-make-you-feel-like-a-god-then-it-wont-37bm</link>
      <guid>https://forem.com/hcan_359/vibe-coding-will-make-you-feel-like-a-god-then-it-wont-37bm</guid>
      <description>&lt;p&gt;I’m a PHP backend developer. For years I had this quiet frustration: I could build anything on the web, but I’d never built software. A real app. Something you install, something that runs on your phone, something that isn’t just a response to an HTTP request.&lt;/p&gt;

&lt;p&gt;I didn’t have time to learn Swift. I wasn’t going to spend six months on Android fundamentals. I had a job, a life, and a backlog of ideas that were slowly dying in text files.&lt;br&gt;
Then vibe coding happened.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Dream That Got Unlocked&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My idea was simple: a collection manager for games, movies, anime, and TV shows. All in one place. Offline. Shareable. No subscriptions.&lt;/p&gt;

&lt;p&gt;I knew I couldn’t write a single Flutter widget from memory. I didn’t care. I opened Claude Code, described what I wanted, and started.&lt;/p&gt;

&lt;p&gt;And here’s the thing nobody warned me about: it worked immediately.&lt;/p&gt;

&lt;p&gt;Not perfectly. Not without friction. But on day one, I had something running on my screen that I had described out loud an hour earlier. That feeling — I don’t have a better word for it than euphoria.&lt;/p&gt;

&lt;p&gt;For the first time in years, I was building something that wasn’t a website. The thing I’d told myself I’d never have time for. The excuse I’d used so long it had become a fact — “I’m a web developer, that’s just what I do” — evaporated in an afternoon.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One Month, Every Day&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I worked on it every day for a month.&lt;br&gt;
Not because I forced myself. Because I couldn’t stop. Every session ended with something new: a feature that appeared, a bug that died, a screen that suddenly looked like a real app. The feedback loop was unlike anything I’d experienced building websites.&lt;br&gt;
By the end I had:&lt;br&gt;
    ∙227 Dart files, ~60,000 lines of code&lt;br&gt;
    ∙SQLite database with 19 tables and 25 migrations&lt;br&gt;
    ∙Integrations with IGDB, TMDB, VNDB, AniList, SteamGridDB&lt;br&gt;
    ∙Windows, Linux, and Android builds&lt;br&gt;
    ∙Full English and Russian localization&lt;br&gt;
    ∙Import from Trakt.tv&lt;br&gt;
    ∙Visual boards with drag-and-drop&lt;/p&gt;

&lt;p&gt;I released it. I wrote articles. I posted everywhere I could think of.&lt;br&gt;
And then I waited for the response I’d been imagining for a month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Quiet After&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It didn’t come.&lt;/p&gt;

&lt;p&gt;Not a disaster. Not a flood of “this sucks.” Just… moderate interest. Some upvotes. A few kind comments. GitHub stars trickling in slowly. No wave, no moment, no validation proportional to what I’d put in.&lt;br&gt;
I burned out almost immediately after release.&lt;/p&gt;

&lt;p&gt;Not because I was surprised the product didn’t go viral — I knew the niche was crowded. Letterboxd, MyAnimeList, Backloggd — these exist and have audiences. I understood that going in.&lt;/p&gt;

&lt;p&gt;What I hadn’t prepared for was the emotional math: a month of daily excitement, followed by a week of average reception. The ratio felt wrong even when my brain knew it wasn’t.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Vibe Coding Actually Sells You&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s what I think now, a few weeks out:&lt;br&gt;
Vibe coding sells you the ability to finally build the thing you’d given up on. And for a PHP developer who’d quietly accepted that desktop apps and mobile apps weren’t for him — that’s a genuinely powerful thing. I’m not being sarcastic. That month was real.&lt;/p&gt;

&lt;p&gt;But the dream it sells you has two parts, and only the first one is guaranteed.&lt;/p&gt;

&lt;p&gt;The first part: you can build it. True. Completely true.&lt;br&gt;
The second part: if you build it, people will come. Not true. Never was true. Has nothing to do with how you built it.&lt;/p&gt;

&lt;p&gt;The euphoria of vibe coding comes from collapsing the distance between “I have an idea” and “the idea exists.” What it can’t do is collapse the distance between “the thing exists” and “people care about the thing.” That gap is the same as it’s always been. Distribution, timing, luck, market fit — none of that changes because you used an AI to write the code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Part I Don’t Regret&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s the honest ending: I’d do it again.&lt;br&gt;
Not because the launch went well. But because for one month I was a developer who built something he’d wanted to build for years and had always found a reason not to. That’s worth something separate from the product’s reception.&lt;/p&gt;

&lt;p&gt;Vibe coding gave me the app. It couldn’t give me the audience. I mixed those two things up — not because I’m naive, but because the process is so intoxicating that it’s easy to forget they’re different problems.&lt;/p&gt;

&lt;p&gt;If you’re thinking about starting a vibe coding project: do it. Just be honest with yourself about which part of the dream you’re actually chasing. If it’s the building — you’ll get that, guaranteed. If it’s the audience — that’s a different project entirely, and it starts after the code is done.&lt;/p&gt;

&lt;p&gt;Tonkatsu Box is the app I built — free, open source, MIT license. github.com/hacan359/tonkatsu_box&lt;/p&gt;

</description>
      <category>ai</category>
      <category>flutter</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Had an AI Agent Build Me a Full App. 46K Lines of Code, 3 Platforms, Zero Dart Knowledge</title>
      <dc:creator>Hcan</dc:creator>
      <pubDate>Thu, 26 Feb 2026 20:08:37 +0000</pubDate>
      <link>https://forem.com/hcan_359/i-had-an-ai-agent-build-me-a-full-app-46k-lines-of-code-3-platforms-zero-dart-knowledge-23p0</link>
      <guid>https://forem.com/hcan_359/i-had-an-ai-agent-build-me-a-full-app-46k-lines-of-code-3-platforms-zero-dart-knowledge-23p0</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclaimer: this article was also written by an AI agent. I’m a developer, not a writer — my raw drafts are something no human should be subjected to.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  I’m Not a Flutter Developer
&lt;/h2&gt;

&lt;p&gt;Let me be clear upfront: this app was built entirely by an AI agent based on my ideas and requirements. I didn’t write a single line.&lt;/p&gt;

&lt;p&gt;I’m a PHP backend developer. Yii2, APIs, databases — that’s my world. I have never opened Android Studio. I don’t know what a widget tree is. I don’t understand Dart syntax. I’ve never built an APK, never configured a Windows installer, never set up GitHub Actions for release automation.&lt;/p&gt;

&lt;p&gt;Everything I know about development stops at websites and short-lived request-response programs. A stateful application — first time in my life, though in my head I had a picture of how it should work.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Needed
&lt;/h2&gt;

&lt;p&gt;I have text files. On my PC, on my phone. Lists of TV shows, lists of games I want to play, lists of movies someone recommended.&lt;/p&gt;

&lt;p&gt;You know the drill: a friend says “watch this show,” you add it to your list, and six months later you find the name, look it up — and it has a 3.2 rating. I’m not ready for that kind of art.&lt;/p&gt;

&lt;p&gt;As a developer, I wanted to automate this. Instead of plain text lists — something that pulls actual data: ratings, posters, descriptions. Specific goals:&lt;br&gt;
Recommendations for friends. “What should I watch?” — open the app, sort by my rating, read off the top. Or just export the collection as a file and send it.&lt;/p&gt;

&lt;p&gt;Retro games. I collect titles for emulators — SNES, PlayStation, NES. I find “Top 100 SNES Games” lists online and want to track: what I’ve played, what I dropped, what I want to try.&lt;/p&gt;

&lt;p&gt;Everything in one place. Instead of scattered text files across devices — one app with search, structure, and the ability to share. And it should work offline after adding data.&lt;/p&gt;

&lt;h2&gt;
  
  
  I Didn’t Know the Alternatives Existed
&lt;/h2&gt;

&lt;p&gt;Here’s the funny part: I only discovered Letterboxd, Backloggd, MyAnimeList, and all those services after I’d already started building my own app. I was googling for similar projects to see what else was out there — and that’s when I found them.&lt;/p&gt;

&lt;p&gt;Subscriptions for what is essentially a list with posters. Ads everywhere. Your data locked in someone else’s cloud. And all of it only works with internet — while I needed an app that works offline after adding data. Some of these charge money for features that should be basic. I was genuinely shocked.&lt;/p&gt;

&lt;p&gt;Same story with Trakt.tv — I discovered it later when I learned that people want to migrate their watch history between services. So I added Trakt ZIP import.&lt;/p&gt;

&lt;p&gt;As a developer, my instinct has always been the same: if I need something, I’d rather build it myself. Even if I have to hire an AI to write the code.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Work
&lt;/h2&gt;

&lt;p&gt;I picture the end goal and write step-by-step tasks for the agent, moving toward it. I don’t get into architecture, I don’t pick libraries — I just describe what I want as a user, test the result, and report what’s wrong.&lt;br&gt;
Along the way, my concept changed significantly. Originally I envisioned it as a retro combo — launching and collecting retro games. But that niche is already filled with good frontends and solutions. So I rethought the concept for a wider audience — shared lists of games, movies, TV shows, anime. Everything I love.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Got Built
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0e3dl9eeijv1uzsd3axh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0e3dl9eeijv1uzsd3axh.png" alt=" " width="800" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mixed collections. A collection is like a folder where you can put any media: games, movies, TV shows, anime. You can group by concept — for example, “Everything Batman” with Nolan’s films, animated series, and Arkham games in one place. Or “Fallout” — playing through the entire series in order, from the first game to the last, with marks for what’s done and what’s ahead.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4fqud6hyf3na4st7u3s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4fqud6hyf3na4st7u3s.png" alt=" " width="800" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Database search. IGDB for games (hundreds of thousands of titles, all platforms including retro, with platform filtering), TMDB for movies and TV. Type a name → poster, description, year, genres, rating.&lt;/p&gt;

&lt;p&gt;Progress tracking. Statuses, per-episode tracking for TV shows, personal ratings from 1 to 10.&lt;/p&gt;

&lt;p&gt;Visual boards. Free-form canvas — drag posters around, add text notes, images, links. Like a mood board for your media taste.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftlfm3u9b3uvxryq0w229.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftlfm3u9b3uvxryq0w229.png" alt=" " width="800" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wishlist. Quick notes — “that show my coworker mentioned.” Search for it later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdu5sj4nmm067aecoytsi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdu5sj4nmm067aecoytsi.png" alt=" " width="800" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Collection sharing. Export as a file, send to a friend — they import it with all posters and ratings.&lt;/p&gt;

&lt;p&gt;Trakt.tv import. Export your Trakt watch history as ZIP, import everything in one click.&lt;br&gt;
Two languages, three platforms. English and Russian, switchable on the fly. Windows, Linux, Android.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not Knowing the Syntax Doesn’t Make You a Bad Developer
&lt;/h2&gt;

&lt;p&gt;I don’t know Dart. I can’t write a single Flutter widget from memory. But that doesn’t mean I have nothing to bring to the table.&lt;/p&gt;

&lt;p&gt;I know how software should be built. Not the syntax — the process. Code standards, testing strategies, release management, documentation practices. These things are language-agnostic. They’re the same whether you write PHP, Dart, or anything else.&lt;/p&gt;

&lt;p&gt;And this is where I found my role. Claude Code has a feature called skills — instruction files that teach the agent how to handle specific tasks. You write them once, the agent follows them every time. I started creating skills based on the same practices I use at my day job:&lt;br&gt;
Coding standards skill. &lt;/p&gt;

&lt;p&gt;Naming conventions, file structure, patterns to follow. The same discipline I apply to PHP code at work — just translated into instructions for an AI. Consistency across 135 files without me reviewing a single line of Dart.&lt;/p&gt;

&lt;p&gt;Semver release skill. I had no idea how semantic versioning worked for mobile apps. But I know what a disciplined release process looks like. I wrote a skill that helps the agent compose proper release notes, tag versions, and maintain a changelog.&lt;/p&gt;

&lt;p&gt;Documentation and review skill. How to document code, write meaningful comments, review changes before committing. The same standards I’d hold a junior developer to on my team.&lt;/p&gt;

&lt;p&gt;Testing skill. What to cover, what patterns to use, how to structure tests. I can’t write Dart tests myself, but I’ve been writing PHPUnit tests for years. The principles are the same.&lt;/p&gt;

&lt;p&gt;I don’t write code, but I create the system that produces consistent code. It’s like being a tech lead who doesn’t code but sets the standards.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;Building an APK. Debug keys, release keys, keystores — none of this existed in my PHP world. The agent explained everything and set it up, but the very fact that mobile apps require signing was a revelation to me.&lt;/p&gt;

&lt;p&gt;GitHub Actions. Automated builds for Windows, Linux, and Android on every tag. In web dev, you push to main and the server pulls. Here there are artifacts, runners, build matrices. The agent wrote the workflows, I just launched them — and they work.&lt;/p&gt;

&lt;p&gt;Cross-platform. One codebase — three platforms. But each has its quirks: SQLite connects differently, file paths differ. The agent handled all of this, and I learned along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;This was an awesome experience. Five years ago I couldn’t have imagined that you could just build an app like this without diving into the language. The line between knowing and not knowing a language has simply been erased.&lt;/p&gt;

&lt;p&gt;Did I enjoy it? Absolutely. I kept catching myself thinking about routine tasks at my day job — migrations, grids, ActiveRecord — and wondering how much faster all of that could be now. Plus there’s a new superpower — the ability to run multiple projects simultaneously. Because now your job isn’t to write code, it’s to see and understand the concept you’re working toward.&lt;/p&gt;

&lt;p&gt;I’d love any feedback — reviews, suggestions, recommendations, bug reports. It all helps make the product better.&lt;/p&gt;

&lt;p&gt;Try It&lt;br&gt;
Free, open-source, no accounts, works offline.&lt;/p&gt;

&lt;p&gt;&lt;a href="//github.com/hacan359/tonkatsu_box"&gt;github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="//hacan359.github.io/tonkatsu_box"&gt;site&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tonkatsu (とんかつ) is a Japanese pork cutlet. The name has absolutely nothing to do with the app. I just like tonkatsu.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>flutter</category>
    </item>
  </channel>
</rss>
