• 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.

  • The Story Behind Airtales

    We Ride the Plural of Horizon

    I created a game that offers a meditative multiplayer experience, where strangers on the internet work together to steer a hot air balloon across the world map. There are no points, no ads, and no reason to play, other than the shared pleasure of drifting somewhere together. It’s called Airtales.fm, and this is the story of how it came to be.


    Maps, Simulations, and Elevation Lines

    A decade ago, I used to build simulation games. Not the Farmville kind, but slow-burn social experiments where groups could experience simulated situations and environments. One of them was a Google Earth-based experience where you could place future civic projects on real-world terrain. It was naive and idealistic and fun in the way that only city planning with strangers on the internet can be.

    Apparently, I never outgrew the habit of turning maps into toys. To this day, I lose hours staring at elevation lines. They’re just little whispers of geography, hinting at how the land moves.

    This is a short clip from my 2014 demo reel, giving a glimpse of what those projects were about.

    Borders, and the Absence of Calm

    I can’t remember ever feeling calm crossing a border.

    Maybe it’s the paperwork. Or the implicit judgment. Or the feeling of being reduced to numbers and stamps and visa types.

    Leandra, my co-conspirator in life and Airtales, feels weirdly at peace when crossing borders. It’s possibly the only time she’s not anxious. I envy that.

    Airtales isn’t a therapy project, but I think it comes from that tension. From the desire to imagine a world you can cross without being interrogated. A world where your direction is shaped not by privilege or paperwork, but by shared intention.

    Internet Roadtrips and Open Source Sparks

    The first real spark came from Neal Agarwal’s Internet Roadtrip. It was clever and charming and reminded me how much delight there still is in just looking at a map.

    That led to a lot of late-night poking around: open APIs, weird WebGL tricks, satellite tiles, and browser hacks. We spent two weeks not building anything, just playing. Like raccoons in a code garage.

    Thank god for open source. Without it, this project would’ve taken six months. With it, we built a working prototype in under four weeks.

    Built While Floating

    We made Airtales while traveling, a new kind of travel for us, pet sitting around the Bay Area. Writing balloon code while playing with dogs and trying to find where the f*ck the cheese shredder went.

    At first, I worried about staying productive while constantly moving and swapping kitchens every week. I still have a lot to learn about having a real routine, but weirdly, it worked. I felt just as productive, maybe even more so, than working from home.

    We built a game about drifting while actually drifting.


    Democracy by Wind

    The core mechanic is simple: the crowd votes where the balloon goes.

    It’s multiplayer navigation without a driver’s seat. Democracy as drift.

    Giving up control can be frustrating. But also kind of beautiful. Especially when strangers align. When east wins by a landslide. Or when everyone agrees to climb.

    We added no incentives. No rewards. No FOMO. Just shared direction. That felt like enough.


    Stories, Dust, and Radio Signals

    Players can tune into real local radio stations as they float, or request a story about the land below.

    I spent a whole hour floating around Brazil listening to ‘The Voice of Brazil.’ This is a unique government radio program produced by the country’s public broadcaster. The program must be aired during at 7:00 PM by all Brazilian radio stations every weeknight. It is the oldest radio program in the country and the longest-running in the Southern Hemisphere. I used to hate that, but I was so nostalgic that I couldn’t stop listening to it.

    Sometimes, the game responds with a poetic fragment. Like:

    “Pollen from fields rises to meet ash from distant suns. We breathe both.”

    We wrote dozens of those lines. They appear at random. Like thoughts that float in when you stop scrolling.

    The game doesn’t track your location, but it does cross borders. When that happens, it whispers things like:

    “Line crossed. No paperwork needed.”

    Writing the Story (Then Unwriting It)

    I spent a ridiculous amount of time trying to write the perfect narrative arc for Airtales. It went through many phases: at one point it was called Caballoon and had an elaborate mythos about sentient currents guiding the balloon through post-border landscapes. Then it was Airmob, a kind of poetic resistance simulator where players were digital nomads staging soft rebellions with every vote. Then, the Airborn, people who were born in a balloon and don’t understand the concept of borders. Then a cryptic AI whispering through radio static. Then a sci-fi climate story unfolding over time.

    None of it felt quite right. Not because they were bad stories (or maybe they were), but because they competed with the space I was trying to build.

    So I scrapped it. All of it. In the end, I made something simpler.

    Now the story comes from the players. The balloon holds their votes, their messages, their traces. It floats with fragments of everyone who passed through. And that felt more honest than anything I could script. A collective and slow balloon ride wandering through this beautiful world.

    Messages in the Basket

    I wanted to simulate a kind of real travel that lets you leave traces, not likes, not high scores, just moments. So I added a camera.

    Yes, you can take pictures in Airtales. Of a virtual landscape. It sounded silly when I first built it, but I ended up loving it.

    Inside the balloon basket, players can leave tiny messages, a photo and a note. These become floating souvenirs. You can even pin them to specific locations on the map. It’s a guestbook that moves with the wind.


    The Tech

    I could talk about it for days, but let’s keep it brief.

    The front end runs on Three.js, which I love. The backend handles vote logic and location updates. We looked into Youtube chat integration, radios database, Discord bots, even livestream overlays. I’m excited about the Twitch API. There are so many interesting things to integrate with your game. This entire game feels like a collaborative livestream.

    Some things broke. Some things refused to scale. The balloon doesn’t always float where it should. But it floats.

    Because everyone is in the same place geographically, the number of live users doesn’t impact map API usage too much. And we cache tiles in case the balloon loops around, which it often does.

    There were some scenarios I hadn’t expected that called for technical changes. For example, when I showed it to some friends, they said they’d love to play this while watching the balloon on a TV in the dentist’s waiting room. Indeed, the whole thing looks like that tvOS screensaver. Another friend said that with some tweaks, it could be one of those TV party games.

    Indeed, the game on a TV looks so beautiful.


    Why This? Why Now?

    Because the world feels a little too divided. And fast. And extractive.

    We weren’t trying to fix that. Just offer a different rhythm. One where exploration isn’t gamified, and strangers can co-steer something just for the joy of doing it.

    We didn’t build a product. We built a feeling.

    The air up here is light.
    That’s the whole point.

    What’s Next?

    Well, I managed to merge all my favorite things into one project: maps, music, stories, and views. Maybe I’ll be the only one playing it, but that’s fine.

    This project revived my excitement for game development. It’s a very different energy from building apps. Apps solve things. Games chase joy, reduce boredom, invite play.

    We’re already thinking about other games, all real-world map based with touches of activism baked in.

    We’re not done drifting yet.


    Credits

    These are just a few of the people and companies that made this project possible.

  • Journal: Jun 2025

    • I still feel that tingling in my fingers, itching to write more.
      • The inspiration from other makers led me to create this website and be part of the “Building in Public” movement for the first time. Butterflies!!! ཐི༏ཋྀ󠀮ʚїɞ
        • I’m still migrating all my content scattered across the web to this platform. I realized it’s really sad to see my work on platforms that will soon disappear or are owned by people I don’t resonate with.
        • This is my fourth “/now” update, and I’m absolutely in love with this concept. I can see this reducing a lot my need for publishing stuff on social media.
        • Big thanks to Rich Tabor for this WordPress template and inspiration.
    • Work
      • Starting new projects and going back to my roots, game development. Check my build log.
      • Still working a bit on Smart Keys, but the project is profitable and basically runs on auto-pilot.
      • Helping Prospera Mental Health with tech challenges.
    • Volunteering
      • Sustainable Walnut Creek: We recently held our Earth Month and Exploration Station events and are now starting new initiatives.
      • AIDS LifeCycle: I was a Roadie (Volunteer) in the final ALC event. After 30 years, they decided to end it. That inspired me to write a little more about it.
    • Learning
      • I paused my Learning Korean initiatives for now. Hangul is so, so beautiful. And also quite hard. I’ll return soon. Thank you, Ryan Estrada for these mnemonic drawings.
    • Relaxing
      • Saturdays you can find me having a delicious Omega at Rooted Poets Corner, at the beautiful PH Library.
      • Trying to read less and less news. But reading more and more books.
      • I’m missing so bad my dog in Brazil, so we decided to pet sit around bay area using TrustedHouseSitters, this is so cool, we can meet amazing people, pets and also new cities. I’ll be around SF on June and July.
    • Exercise
      • I’m doing more quick runnings than riding, quite sad to be honest, I’m missing riding with Peaceful Pedalers and as Training Ride Leader with Wildcats for ALC 2025. I signed up for the Pride Run in SF, it’s a good way to motivate myself to exercise more.
  • One Last Ride, Seventeen Million Reasons

    The good news: we did it again. AIDS/LifeCycle raised over 17 million dollars this year. That’s not a typo. Seventeen million. For HIV/AIDS services, prevention, advocacy, care. For actual lives.

    This time, I wasn’t riding. I was behind the scenes, lugging arrow signs and cleaning up the road as part of the Advance Route Marking team. Me and a few other legends out there a day early, making sure the route was safe and the signs pointed the right way.

    It was one of those rare weeks where your body’s tired but your spirit isn’t. Long days, sunburns, inside jokes, and just enough chaos to keep it interesting. Seven days, hundreds of miles, thousands of tiny moments that added up to something huge.

    Why It’s So Successful?

    AIDS/LifeCycle wasn’t just successful because people cared. It was designed around real community. Not just one, but a Venn diagram of them: queer folks, cyclists, activists, people living with HIV, people who lost someone. It connected San Francisco and Los Angeles, two cities with deep roots in both bike culture and the LGBTQ+ movement. That’s a potent mix.

    It was also personal. Riders carried names, faces, ashes, and stories. The mission wasn’t an abstract “awareness campaign.” It was a pilgrimage. And you don’t half-ass a pilgrimage.

    And then there was the tone. Serious cause, zero solemnity. Humor made it human. There’s nothing like pedaling past a drag nun in a banana suit yelling “hydrate or die-drate” while you’re contemplating the weight of the epidemic. The camp didn’t dilute the meaning. It carried it. That’s queer magic.

    Volunteers held it all together. Thousands of them putting up arrows at dawn, wrangling gear, manning rest stops. They weren’t there for clout. They were part of one or more of those overlapping circles too. That kept the event affordable and grounded.

    Another important aspect that makes the role of fundraiser easier and also promotes transparency is that the money raised for the event is directly linked to the needs of the organizations. You know exactly where every dollar is going, as they provide fundraising cards showing the cost of some services.

    And maybe most importantly, ALC was inclusive without compromising its identity. It was proudly queer, but open to anyone who showed up with respect and sunscreen. It didn’t pander. It invited.

    That’s hard to replicate. Maybe impossible. But that’s also what made it work.

    What I Found There

    I’ve done this twice. First as a rider, then as a roadie. I made that choice out of gratitude. The roadies on my first ride were the reason it felt so magical. They patched me up, cracked jokes when I was falling apart, and somehow made a porta-potty feel like a spiritual checkpoint. I wanted to give a little of that back.

    When I first joined, I figured I’d just ride my bike, raise some money, maybe get a decent tan. But what I found was something else entirely.

    People showed up for me. Total strangers. Volunteers cheered like I was a rockstar. Riders I’d never met fixed my flat, shared their snacks, gave hugs without asking why I needed one. I met artists, nurses, queer elders, kinksters, first-time riders in their 60s, and people who had done this ride 20 times and still cried at every opening ceremony.

    I cried too. A lot. Sometimes from the pain, but mostly from other people’s stories. Stories about partners they lost. About surviving when others didn’t. About showing up for someone who once showed up for them. That kind of grief and joy doesn’t just sit in your chest. It moves through you.

    This wasn’t some curated, polished community. It was messy and loud and wildly diverse, and it worked. Everyone belonged, even if no one matched. And somewhere between the rest stops and the road grime and the weird inside jokes about Butt Butter, I realized I felt more myself here than almost anywhere else.

    The Bad News

    This was the last AIDS/LifeCycle. Wait what?

    After 30 years, it’s coming to an end. Not because it failed, but because the model stopped working. Organizers from the San Francisco AIDS Foundation and the Los Angeles LGBT Center laid it out clearly. Costs went up. Participation and fundraising went down. Post-COVID logistics got harder and more expensive. In 2019, the cost of fundraising was about 33 percent. By 2023 and 2024, it had more than doubled. Every dollar raised was being eaten by production costs. They cut vendor contracts and scaled back staffing, but the numbers still didn’t make sense. They said it no longer met industry standards for financial responsibility.

    So the 2025 ride was the last one. The Final 545. One more chance to ride, to roadie, to scream into the wind while sweating through your chamois for a damn good cause.

    It’s hard to explain what this ride means unless you’ve done it. It wasn’t just a fundraiser. Not just a bike ride. It was a weird, beautiful, inconvenient miracle. A moving village powered by muscle, glitter, grief, sunscreen, and community.

    A Tech Bro Postmortem

    If AIDS / LifeCycle were a startup, it would be a masterclass in product-market fit. In thirty years the ride raised more than $300 million, powered by riders and roadies who treated fundraising like a love language. A few individuals pulled in over half a million apiece, enough to make any investor grin. 

    The problem was on the cost side. Pretty common with health startups. Every seven-day ride needed fleets of trucks, medical tents, mobile kitchens, shower rigs, and a volunteer army. Love padded the budget, but it never balanced it. When expenses kept outpacing donations, the organizers decided to retire the week-long version while the memories were still warm. Shut it down while it still meant everything.

    I came back for that final rollout, not with pitch decks or growth hacks, just a broom and a stack of arrow signs, grateful to guide people home one more time.

    The story is not over. A leaner chapter is already in the works: three-day weekend rides that preserve the heart of the experience while making it more accessible and affordable for riders and reducing the costs to run it. Smaller footprint. Same purpose. That sounds like an interesting pivot, the kind of thing Bay Area folks know how to do.

    I don’t have a profound ending. Just sitting with the whiplash of raising millions for a cause and saying goodbye to one of the most meaningful things I’ve ever been part of.

  • That time I emailed the Subway CEO because the sandwich artists looked sad

    Yesterday I was rummaging through an ancient backup drive when I found a text file from 15 years ago. Inside sat an email I had bravely, or foolishly, addressed to the chief executive of Subway. I had eaten there a handful of times, spotted a pattern, and decided the top guy needed my young adult wisdom. Reading it now makes my cheeks warm, but cringe is a good teacher, so here we go.

    Dear Director,

    In all my visits to Subway stores I have noticed that your employees seem quite sad. At first I thought it was because I took too long to choose my condiments or something like that and that this bothered the attendants, but after watching other customers more closely I realized the ordering process itself can be stressful for the staff.

    I do not know your employee‑motivation policies, but I believe they could be reviewed so everyone comes out ahead.

    I must admit I do not feel entirely comfortable with the ordering procedure. Perhaps an optional form could let customers tick the items they want and hand it to the attendant. The customer could still watch the sandwich being assembled, asking for more or less of a condiment, and the whole process might move faster and put less stress on the attendants.

    Best regards,
    Diego Dotta

    Yes, I really suggested a paper checklist so I would not stress the staff by naming veggies under pressure. ✋😊

    Why I am sharing this fossil

    I keep these artifacts around to remind myself that the impulse to fix everything is both a gift and a hazard. Fifteen years later I still spot pain points in random systems, but I try to ask first, build later, and send fewer midnight missives to unsuspecting CEOs. I remember doing this more than once, sometimes searching for emails of C-level people at those companies and sending random ideas or complaints.

    Also, if you have a forgotten folder full of old emails, open it. You will meet a past version of yourself who thought laminated order sheets were the answer to world peace. It is humbling, hilarious, and strangely motivating.

    Now I am going to grab a sandwich and see if anyone looks even slightly happier. If they do, I will choose to believe my letter changed the course of history. If they do not, I will quietly enjoy my onions and move on.