Building in Public

  • Airtales: When the Balloon Landed

    Airtales was never meant to last forever. I even had a line on the roadmap asking when and where the balloon would land. Still, it drifted across Google Earth like a stubborn daydream, a collective ride where strangers became crew.

    Fifty days in the sky

    I spent about fifty days building it, then another fifty days watching it float. In that time, 8,606 people climbed aboard. At one point 167 players were trying to steer it at the same time. Along the way, 145 photos were snapped, 234 local radios played, and the balloon wandered across thousands of virtual miles.

    I had a blast, and also a fair amount of frustration, making it. Game development is nothing like building an app. Apps usually have a problem to solve. Games? Unless boredom is a problem (which I don’t agree), they exist for entertainment. That makes the process slippery. You build something, test if it feels fun, throw it away when it doesn’t, or let it spark a new idea when it does.

    What I Learned

    • Collective chaos. Everyone steering the same balloon at once was as wild as it sounds. Fun for a while, then pure chaos. The most requested feature was obvious: give people their own balloons.
    • Two kinds of players. Some wanted to navigate carefully, to reach specific places. Others were content to just watch. Like social media, there were pilots and lurkers.
    • Screenshots became souvenirs. The photos people shared blew me away. Taking a picture of a virtual trip sounds silly, yet some were stunning. In Airtales they felt like postcards from a shared dream. Roblox and Steam also encourage capturing gameplay, but in Airtales it felt more like postcards from a shared dream.
    • Google Maps hurdles. Getting Maps to play nice with the game was tough. I liked the final solution until I learned caching map tiles is against Google policy. That one stung.
    • Twitch experiments. I hooked Twitch chat into the game so players could teleport the balloon or send messages that got read aloud. I streamed some flights too. But requiring a Twitch account kept most people away. I never wanted to build my own chat system, since moderation is a nightmare, but this wasn’t the answer. Copyright takedowns on radio streams didn’t help either.
    • Local radios. These were huge for the vibe, and even part of my distribution strategy. I even reached out to a few stations and some shared it on their socials. That felt like a win.
    • Stories in the sky. I tried mixing in book excerpts and AI-generated geo-stories about migration, philosophy, global unity. I hoped they would add poetry to the ride. They never really fit.
    • Web tech has grown up. Browser-based 3D is powerful now. Still clunky on mobile, but impressive nonetheless.

    Travel Log

    A collection of snapshots from my journey and players who turned their virtual flights into postcards. The gallery is less about graphics and more about the human impulse to document a journey, even when it happens on a digital map.

    Why It Mattered

    Airtales was an experiment. I wanted to see if I still enjoyed game development, explore new stacks, find out which platforms are thriving, and hear from real players. By that measure, it worked. It reminded me why I like building things that don’t fit neatly into categories. It gave me a reason to keep going.

    So here’s to what comes next. I’ll see you floating around the world, each of us in our own balloon, part of one oversized fiesta in the sky.

  • Build Log

    A living trail of things I’m building, breaking, or pretending to finish.
    Some are active, some are dust. All of them taught me something.
    This is where I track the chaos, one sprint, stumble, and saddle-up at a time.

    Total projects: 15 (Only projects where I was the founder)
    🟢 3 succeeded, 🟡 6 somehow, 🔴 5 failed, ⏳ 2 in progress.

    Last update: Jun 2025

    Air Fiesta ⏳

    Aug 2025 – Present

    Based on user feedback from Airtales, it’s a hot air balloon multiplayer game for people who love traveling. People can join virtual festivals around the world and discover local hidden gems, like scavenger hunts.

    What’s happening?

    The game is published for desktop. It’s fun to play, and I have received some feedback, but I feel it still needs a lot of work to be considered a real game. Game development has this aspect where you need to build something to get a sense of whether it’s fun or not, which is quite different from app development, where you quickly create an MVP that solves a problem and then start polishing.

    Airtales 🟡

    Jun 2025 – Aug 2025

    Inspired by Neal game experiments, this was a google earth crowd-play experiment to go back to my roots (game development) and one of my passions (maps).

    What happened?

    This project was meant to either pivot or shut down. There was no clear business model or a way to at least sustain itself (Google Maps API is not cheap). It was a game where people joined a hot air balloon (everyone on the same balloon) and voted on what to do next, whether to move the balloon, listen to local stories, or change the radio station. Playing it was a completely chaotic experience, and building it was fun. You can read more about the beginning and the ending.

    After more than 8k people played and provided feedback, it evolved into Air Fiesta. It remains a hot air balloon simulation on Google Earth but now features a more traditional gameplay style and business model.

    Social Alarm 🔴

    May 2025 – Jun 2025

    Inspired by a message from our niece at 5am, we wanted to wake up to random messages from friends and loved ones.

    Why did it fail?

    We did some initial market research, studied players, ran some ads to test interest, and completed a technical proof of concept. We ended up stopping this initiative. Our research and ad tests showed that people are more interested in bird sounds or moaning sounds 🫦 than messages from friends. Two companies tried this in the past and completely shut down their solutions. There are also some technical challenges. I’m happy, though, that we gained some insights from the research and proof of concept before building the entire thing. I might write more about my process since I’m enjoying it.

    Smart Keys for Mac ⏳

    Jan 2025 – Present

    It was also my own need. It serves the same purpose as the iOS version but is now designed for desktop, with the concept of AI Shortcuts. https://smartkeys.so/for-mac

    What’s happening?

    I haven’t found a good channel for this product yet, but since I’m an active user, maybe the most active one, I’ll keep trying it.

    Smart Keys for iOS 🟢

    Aug 2024 – Present

    I wanted to solve my own problem: my broken English and my laziness to learn more. I wanted a simple tool that could review my texts and make them sound more natural without trying to teach me (100% lazy mode). The whole thing ended up as an App Store for your keyboard, where you can add an infinite list of possible keys. So whether you’re polishing grammar, adding a bit of flair to your texts, or translating on the fly, Smart Keys makes it all effortless. https://smartkeys.so/

    Why did it succeed?

    Low maintenance tech stack and found product-market fit with a positive LTV/CAC ratio.

    Hyper-Local Activity and Coloring Books 🔴

    Nov 2024 – Dec 2024

    Hyper-local coloring and activity book for kids based on their school, neighborhood, or city, especially in small or underserved cities, all powered by AI agents.

    Why did it fail?

    I ran a pilot in Walnut Creek but didn’t see much traction, so I shut it down. The goal was to sell in bulk to cities, libraries, and events. Technically, this was an interesting project to test agents capabilities. I found this agent use case quite interesting: A positive outcome for small communities that might never happen if done by humans because the ROI would be too small. But scaling the personalization may work.

    Secret Project 🔴

    Feb 2024 – Mar 2024

    Too embarrassed to share what this project was about.

    Why did it fail?

    I found some interesting channels and managed to test two ideas, but I felt too ashamed to continue working on this. 😰

    PromptTea.Party 🔴

    Sept 2023 – Nov 2023

    Kaggle for Prompt Engineers. I was facing many challenges instructing LLMs, so I thought a crowdsourced problem-solving platform would make sense.

    Why did it fail?

    Started as a hackathon project, it evolved with some friends in the East Bay, and we shut it down when we realized that LLMs would evolve so quickly that the project wouldn’t make sense.

    Youper 🟢

    Feb 2015 – Present

    Youper combines psychology and artificial intelligence to understand users’ emotional needs and engage in natural conversations. https://youper.ai/

    Why did it succeed?

    Pioneer in the field, amazing team, VC-backed, and covered by a lot of media.

    DonorDrive + Strava Extension 🟡

    Oct 2023 – Feb 2025

    I wanted to automate my own fundraising for ALC 2024, a bike ride from SF to LA where you need to raise $3.5k, by connecting my training rides with my fundraising efforts.

    What happened?

    This was my first Build in Public project. It was a successful pilot for ALC 2024, helping me and other participants to fundraise and train more. However, ALC and other non-profits didn’t show much interest. Also, Strava and DonorDrive made their APIs more restricted. Some details here.

    Empathy Bottles 🔴

    Nov 2017 – Feb 2018

    App was inspired by the Nonviolent Communication (NVC) methodology, where people can share personal stories anonymously and also provide emotional support.

    https://producthunt.com/../empathy-bottles

    Why did it fail?

    I chose the wrong tech stack (Ionic) and didn’t have a clear business model for an anonymous social network. Server costs began to increase.

    The Last Trip 🟡

    2010 – 2015

    Youtube channel about landscapes and places that are being destroyed and will soon no longer exist.

    What happened?

    Besides some videos going viral, the cost and time to make them were high and caused some conflicts with my day job. It also took a toll on my mental health; the YouTuber life is not for me.

    Kombina.me 🟡

    2014 – 2015

    I wanted to sell my car (a VW Bus) to someone who had a good and meaningful idea of what to do with it. So, I created this marketplace for selling goods at a discount based on the buyer’s plans for them. It felt like I was donating to a worthy project. I sold my VW Bus to an environmental and educational initiative.

    What happened?

    Well, it helped me with my goal, I met amazing people, and had so much fun. But I didn’t do a good job sticking with it to find more customers besides myself. ;p

    BackPackBook 🟡

    2008 – 2015

    This was my first attempt at writing more about travel and literature. It was a blog specializing in travel book reviews.

    What happened?

    I spent years on this blog, created a lot of content, and built a community around it. Later on, I lost interest and didn’t take it seriously as a potential business model. I also faced many issues with hacker attacks and custom WordPress code.

    DiaTech 🟡

    2001 – 2003

    Web agency and tech infrastructure for small companies, founded with friends.

    What happened?

    We had many clients and made a good amount of money. However, a lack of maturity was a major issue. Friends became ex-friends, and then I joined another company.

    Design Agency 🟢

    1998 – 2001

    Design agency with my brother.

    Why did it succeed?

    Merged with another company with friends.

  • The Vibe Life: Building Smart Keys for Mac

    I didn’t realize I was about to enter the “vibe” industry when I started building Smart Keys. All I really wanted was a way to sound fluent in languages without doing the hard work. Let’s be real: learning languages is tough. So, I built an app that lets me fake my english fluency until I make it. Besides hating this reference, the thing here is that I’ll probably never make it. I may not be as fluent as I sound using tools like this.

    Still, Smart Keys did the job for me on my phone. It solved my laziness problem and gave me a sense of accomplishment. Translate a message, change to a more casual tone, proofread an email, all with one tap. Suddenly, I was hooked. This tiny app had me feeling like a fluent native speaker.

    Bringing the Vibe to My Desktop

    Once Smart Keys worked its magic on my phone, I thought: why not bring this vibe to my desktop? I wanted to cut down on the constant back-and-forth between tabs, the endless browser windows, and that infuriating cycle of copy-pasting. Small tasks, like checking email, sending a reply, or fixing a bug, don’t require much brainpower, but they drain your energy nonetheless.

    So, I created Smart Keys for Mac.

    The goal was simple: stay in my flow, move through tasks without jumping between apps, and avoid losing focus on anything. I wanted to type, hit a shortcut, and keep moving. Proofread, translate, fix code, all without leaving the current task.

    Simple. Efficient. Minimal.

    The Perils of a One-Code Solution

    Now, if you’ve ever tried to port an app from iOS to macOS, you’ll know it’s not as simple as change deployment target and calling it a day. That’s what I thought, but nope. The idea of maintaining one codebase sounded genius: keep it efficient, keep it synced, keep the maintenance low. But here’s the thing: macOS and iOS are like distant cousins. They share some traits but are entirely different creatures.

    “If debugging is the process of removing software bugs, then programming must be the process of putting them in.”

    – Edsger Dijkstra

    “Two platforms, one codebase” sounds like a dream, but I quickly realized that you can’t just slap a mobile UI onto a desktop app and call it a day. The screen sizes, input methods, window management, all these small details had to be adjusted. It’s like trying to fit a square peg into a round hole, but making it work without losing the essence of what you built.

    The Fine Line Between Efficiency and Overload

    Incorporating macOS-specific optimizations wasn’t as simple as resizing windows. The app had to manage multiple displays, adjust for different screen sizes, and still feel fluid while taking advantage of the desktop’s power. Every change, every tweak, led to a cascade of other adjustments. Maintaining a single codebase was efficient in theory, but it created a lot of headaches along the way.

    I spent more time testing than I care to admit, making sure one small change didn’t break something somewhere else. But that’s the process. There’s no such thing as an easy app transition (yet).

    Selling a Quiet Product That Does a Lot

    Now that Smart Keys mostly works, the challenge has shifted. I’m not wrestling with bugs as much as I’m wrestling with words. Building a product that blends into your day is one thing. Explaining it without making it sound like a blender full of features is another.

    It rewrites. It translates. It fixes weird grammar and polishes sloppy code. All in the background, with shortcuts you barely notice. That’s the magic. And also the problem.

    It’s hard to pitch a tool that isn’t trying to impress you. It just wants to help and then get out of the way. Try to summarize it in one sentence and you either oversimplify or overcomplicate. Try to be specific and it starts to sound like five tools in a trench coat.

    “First, write the press release. Then, build the product.”

    – Not me

    So now I’m figuring out how to talk about it without killing the simplicity. Selling a quiet product in a world that rewards loud ones. Making clarity feel exciting without dressing it up too much.

    Still, every time I’m stuck rewriting copy for the tenth time, it’s right there. I hit a shortcut, smooth things out, and move on.

    Sure, half the time I’m fixing the thing I just built, but hey, at least I’ve got good shortcuts for the apology emails.

  • Store Conversion? More like Store Distraction.

    Apple’s polished and carefully curated Benchmark Metrics are an illusion, designed to impress on paper but often disconnected from real-world performance. In other words, BS.

    Apple lays out a glossy percentile system, letting you compare your app’s metrics to others in the same category. It shows if you’re brushing shoulders with top performers (the 75th percentile) or stuck somewhere near the bottom (the 25th percentile). On the surface, it sounds super handy, like a leaderboard in a video game. In reality, some reports can be misleading. Sure, it feels good when you see your app “performing as well as top apps,” until you realize some numbers can be skewed by ads, special promotions, and other wildcards that don’t reflect genuine traction.

    I discovered that the hard way while tinkering on Smart Keys, an AI-powered keyboard I’ve been building to help people (especially myself) type faster and smarter. I was feeling way too proud of myself as I rearranged screenshots, polished keywords, and declared I’d cracked the code. The numbers insisted I was beating the top apps by a mile. Then I realized I was clinging to a metric that was all style, zero substance.

    I obsessed over four data points, hoping my “genius” would unlock the secrets of the App Store. Here’s the quick breakdown, served with a side of humble pie.

    1. Store Conversion: The most BS of all

    I treated this like my personal high score, proudly pointing at it like it was proof I had the Midas touch. Turns out it’s mostly driven by ads, the brute force of a solid marketing push, and unpredictable factors like being featured on popular blogs.

    You can test every ASO tweak in the book, but nothing outdoes a well-funded campaign. That dose of reality bruised my ego, especially when I realized I’d been celebrating a metric that anyone with a decent ad budget could inflate.

    2. Proceeds per Paying User: Almost BS

    This one fooled me for a while. It’s like checking your salary and forgetting about rent. Sure, “Proceeds per Paying User” looks impressive at a glance, but it hides the reality of how much you spent to acquire those users. If each paying user costs you three times what they bring in, you’re basically throwing money into a bonfire.

    Nothing bursts your revenue bubble faster than realizing your lunch budget is leftover ramen packets because you blew all your cash on ads.

    3. Crashes: Gold

    This is where I got a much-needed wake-up call. Smart Keys had an onboarding crash bug that nearly drowned my starry-eyed dreams. On a small team, testing across all devices and iOS versions is no walk in the park, so the crash rate ended up being my loudest alarm. It let me catch the bug before a wave of 1-star reviews hit.

    I’d rather stub my toe in the dark than face that. Crashes might not look sexy on a dashboard, but they show you if your app is on fire before everyone runs for the exits.

    4. Retention (D1, D7, D28): Be patient

    This one’s a slow burn that checks if people actually come back for more. Early on, I’d glance at the retention numbers and assume folks would stick around forever.

    Then I got a reality check: trial periods, paywalls, or freemium strategies can skew these stats, and retention is a marathon, not a sprint. I’m still catching my breath, but at least I know if people keep showing up, I’m doing something right.

    The truth is, these metrics can make you feel important, but they don’t tell the whole story. I’ve been learning more from watching the folks at Every and other brave souls building in public. They share real stories about triumphs and ugly mistakes, ASO magic tricks, and it’s oddly comforting to see the raw, unfiltered process.

    I’m trying to do the same here with Smart Keys, focusing on real-world user feedback that directly shapes my updates and features. If you’re curious how all this no-BS talk translates into an actual product, give Smart Keys a try, or keep an eye on my #BuildingInPublic journey to see how it evolves.

    Is any of these metrics relevant to you? Which metric should I dive into next?

    Have a good week filled with no-BS insights.
    (っ-,-)つ𐂃

  • No-BS Friday Metrics: Store Conversion Rate

    App Store gurus love to talk about ASO tricks and how to squeeze every bit of conversion juice from the app store. But what if I told you it doesn’t really matter?

    Smart Keys store conversion rate is over 50% while the best apps barely scrape 8%. So either I’m a wizard or this is a BS metric.

    We, app builders, love the idea that some ASO tweak will be the magic bullet. A better subtitle, the right screenshots, a catchy promo text. Sure, those things help a little, but I’m sorry to say that you may be spending your time on the wrong task, they won’t move the needle in a meaningful way.

    Then what? What actually happened in October that store conversion sky rocketed? What’s the big ASO secret?

    It’s a three-letter word: Ads. No ASO magic tricks, no growth hacks, no overcomplicated strategy. just Ads iterations that started working well.

    So is this store conversion rate relevant? not really. It looks good on a dashboard, to brag, but that’s about it. Focus on what actually drives growth, not vanity metrics that make you feel good but don’t pay the bills.

    That’s it for today. Next Friday, I’ll dive into retention, the real deal.

    Have a no-BS weekend. See ya. ✌️