<?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: Diego Dotta</title>
    <description>The latest articles on Forem by Diego Dotta (@diegodotta).</description>
    <link>https://forem.com/diegodotta</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%2F2788427%2F46f882f1-3561-4cd5-a6e2-03bc99b8bea1.png</url>
      <title>Forem: Diego Dotta</title>
      <link>https://forem.com/diegodotta</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/diegodotta"/>
    <language>en</language>
    <item>
      <title>Surviving an Apple "Sherlock" and a 12-month cash burn</title>
      <dc:creator>Diego Dotta</dc:creator>
      <pubDate>Thu, 05 Mar 2026 12:19:25 +0000</pubDate>
      <link>https://forem.com/diegodotta/surviving-an-apple-sherlock-and-a-12-month-cash-burn-c5f</link>
      <guid>https://forem.com/diegodotta/surviving-an-apple-sherlock-and-a-12-month-cash-burn-c5f</guid>
      <description>&lt;p&gt;What do you do when you spend months building an AI-powered iOS keyboard to proofread text, and then Apple announces native proofreading in iOS 26? You panic, joke that Tim Cook is stealing your ideas, and then you adapt.&lt;/p&gt;

&lt;p&gt;I just published a 16-month retrospective on building my app, Smart Keys. It started as a basic WordPress site using ChatGPT prompts and evolved into a full iOS and MacOS tool for text transformation.&lt;/p&gt;

&lt;p&gt;The biggest technical and product takeaways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Platform native is hard: The iOS ecosystem is tough for acquisition, but building the MacOS version actually became my personal favorite (even if I have no idea how to market it).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Retention over Acquisition: We burned cash for a year with a low ROAS. But because our Month 4 retention was &amp;gt;60%, the math eventually flipped in our favor.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wrote a detailed breakdown of the development journey, the failed marketing experiments, and how I finally reached profitability without taking VC money. You can read the full architecture and business teardown on my dev log: &lt;a href="//diego.horse"&gt;diego.horse&lt;/a&gt;&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>ios</category>
      <category>swift</category>
      <category>mobile</category>
    </item>
    <item>
      <title>My No-BS Building Process</title>
      <dc:creator>Diego Dotta</dc:creator>
      <pubDate>Tue, 03 Feb 2026 19:44:15 +0000</pubDate>
      <link>https://forem.com/diegodotta/my-no-bs-building-process-470d</link>
      <guid>https://forem.com/diegodotta/my-no-bs-building-process-470d</guid>
      <description>&lt;p&gt;Most people talk about building like it’s about speed. Ship fast… move fast… break things… Really?&lt;/p&gt;

&lt;p&gt;The longer I’ve been building stuff, the more I see that the real work happens before anything actually ships. That quiet, slow phase where it doesn’t look like much is happening yet.&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%2Fq0w9elbao9fggaocy5g9.gif" 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%2Fq0w9elbao9fggaocy5g9.gif" width="220" height="169"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have &lt;a href="https://diego.horse/reading/" rel="noopener noreferrer"&gt;read many books&lt;/a&gt; about creating a startup, product iterations through experiments, finding market fit, and leveraging viral effects. They share a playbook that might work (or pretend to work) in the VC world.&lt;/p&gt;

&lt;p&gt;The thing is, the indie-solo-bootstrap reality plays a different game from the silicon-valley-BS-unicorn fantasy. The good news is that there are many great books and resources available for those dreaming of a lifestyle business.&lt;/p&gt;

&lt;p&gt;The spark to find my process came from one the first chapters in the &lt;a href="https://readmake.com/" rel="noopener noreferrer"&gt;MAKE book&lt;/a&gt;. It’s a good book for someone who wants to start building things and has no idea where to begin.&lt;/p&gt;

&lt;p&gt;As a big fan of the &lt;a href="https://medium.com/@dekaah/22-axioms-of-the-extreme-go-horse-methodology-xgh-9fa739ab55b4" rel="noopener noreferrer"&gt;Go Horse&lt;/a&gt; methodology, I tend to go straight to the building step. And that’s no good. That was the reason I decided to prioritize more the planning and research steps more in my life. And I wanted to build things that matter. Or at least, things I care about enough to finish. I realized that having a clear path helps when you’re stuck in the “what should I build” loop.&lt;/p&gt;

&lt;p&gt;So here it is: my secret building process.&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%2F7iwc02yj4ipck6lesnk6.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%2F7iwc02yj4ipck6lesnk6.png" alt="Celebrating and crying are important parts of it." width="800" height="283"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  Celebrating and crying are important parts of it.
&lt;/h6&gt;

&lt;p&gt;Let’s start with the first one, which is actually creating a list. From now on, I love lists.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. My top problems
&lt;/h2&gt;

&lt;p&gt;Spend a couple of weeks simply listing the problems in your life. (If you don’t have any problems, try making your life a bit more interesting stepping out of your comfort zone)&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The Secret:&lt;/strong&gt; Just write them down. Don’t worry about fixing them yet. It’s harder than it sounds because our brains want to jump straight to the solution. Try to resist that. Just let the problems linger and bother you.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When you’ve got a solid list, rank the stuff. Be real about what actually makes your life miserable and what’s just small annoyances you complain about. Keeping it simple is best. I tried a fancy decision matrix once, but it was way too much work and didn’t help much. Just going by the order of the problems worked best.&lt;/p&gt;

&lt;p&gt;I’m still working through some things from my list from three years ago. But yeah, it’s a list that I occasionally add new items to. As you can see, there are various problems, such as the desire to write more or eliminate hair in unwanted places. 👙&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%2Fabzw5fgisjt2hp8wzju0.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%2Fabzw5fgisjt2hp8wzju0.png" width="790" height="962"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  I spend around 2 weeks and come up with 20 items. I’ve used Notion, so I could later document the next steps and status.
&lt;/h6&gt;

&lt;h2&gt;
  
  
  2. Solve them (without building anything)
&lt;/h2&gt;

&lt;p&gt;Start by addressing the first item and look for possible solutions that already exist. Test them. You may actually find a product that solves your problem perfectly. If so, congratulations, you just saved yourself months of work. Job done. Move to the next one.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The secret:&lt;/strong&gt; I was pretty amazed that just by switching up my habits and pushing myself out of my comfort zone, I fixed a bunch of problems. I started a 5-minute-a-day workout (which felt like a lot since I’m usually pretty inactive), and that kicked off a chain reaction, helping with stuff like back pain and improving my sleep.&lt;/p&gt;

&lt;p&gt;I also began volunteering at local non-profits, which really helped my networking. And the best part? It didn’t cost me a thing and didn’t involve any tech.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Three years later, most of the items are done, and I feel it’s time to go back to step one again very soon.&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%2Ffzs2brbg9779fshj0dtf.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%2Ffzs2brbg9779fshj0dtf.png" width="800" height="685"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  By simply adding a status to the list, I was able to track them easily.
&lt;/h6&gt;

&lt;h2&gt;
  
  
  3. Market research
&lt;/h2&gt;

&lt;p&gt;Alright, now the real game starts. If you didn’t find a solid fix for a big problem, your experience testing existing solutions earlier will help you see what’s missing. Here’s where most people go wrong, don’t start building just yet. Check out some marketing numbers first. Use &lt;a href="https://similarweb.cello.so/GyReSS5EKV2" rel="noopener noreferrer"&gt;SimilarWeb&lt;/a&gt; or &lt;a href="https://app.sensortower.com/overview/6602882160?country=US" rel="noopener noreferrer"&gt;SensorTower&lt;/a&gt; to gather some data about the players.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Check-in:&lt;/strong&gt; I prefer a market with big players, either in revenue or traffic, hitting millions a month. I’m a bit cautious about untapped markets. This probably isn’t the best problem to tackle while bootstrapping. I think I need to be really excited about the project to decide to keep going.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The secret:&lt;/strong&gt; By the way, being excited is a huge part of my process because building something is tough. There will be lots of times I’ll want to quit, so that excitement has to push me forward during those moments.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  4. Now it’s your time to shine
&lt;/h2&gt;

&lt;p&gt;Now that you have a good idea of what you want and what the market looks like, split your time in two. If you are a product person, really force yourself to spend more time on marketing, and the opposite for marketing folks.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.1. Test the market
&lt;/h3&gt;

&lt;p&gt;This next step totally changed the game for me: run ads and use simple forms to figure out acquisition costs. Getting users’ emails also helps you build a list of beta testers to stay in touch with. And yeah, you gotta talk to people dealing with the same problems.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Marketing Requisites:&lt;/strong&gt; You have to spend money here, there’s no way around it. Someone who tells you otherwise is trying to trick you into buying their stuff. If you’re not willing to pay to find customers, either this problem isn’t that big a deal to you or you don’t really believe in your idea.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Last time I did this, I ran a Meta campaign using their Lead Online Forms. I tested my idea against 3 others to compare CAC and ended up finding another opportunity. Check out the &lt;a href="https://diego.horse/the-social-fall-the-bird-rise/" rel="noopener noreferrer"&gt;Bird Rise story&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  4.2 Build an MVP
&lt;/h3&gt;

&lt;p&gt;While your ads are running, you can start building. This should answer technical questions and solve your specific problem. Keep it small and meaningful for now, because in less than six months, it will surely become a little monster with all the features added from user feedback.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tech Requisites:&lt;/strong&gt; Be careful with the scope and tech stack. You don’t want to build something that requires high server costs or maintenance.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Use your own product. Remember, this came from your list of top problems you wanted to solve in your life. But try not to fall in love with your idea. Fall in love with the process of solving problems. Share your MVP with those first people from your initial Ads. Do the adjustments based on their feedback. You will have bugs. Many bugs. If users are not reporting bugs, you are not hearing them. It is hard to get good feedback. I still struggle here.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Check-in:&lt;/strong&gt; While you’re going through this, you might realize your idea isn’t really fixing the problem. Technical issues pop up. CAC might be too high. The problem could be trickier than you expected. This is a good time to pause and think about whether you want to keep going. Quitting now isn’t a bad thing. It’s actually pretty smart. It saves you from wasting months on something that a solo person or small team can’t crack. Just go take a shower and have a good cry.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  5. Launch
&lt;/h2&gt;

&lt;p&gt;I fixed all the bugs, adjusted the product based on early user feedback, and developed a decent version of the marketing strategy. Now it’s time for a reality check. What I want to figure out now is the real cost to attract paying customers and how much they’ll actually value my product. That way, I can get a clearer idea of whether this product will be sustainable or if I have enough money to keep it going.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The Secret:&lt;/strong&gt; My go-to plans are short- and long-term subscriptions with a 3 to 7-day trial and lifetime discounts. This approach allows me to account for some costs related to the trial (CPT) preety fast and generate some revenue from lifetime discounts.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I like weekly plans as an anchor for other plans and as a way to measure if the product is good enough. In a month or so, I should have a better idea of retention based on renewals.&lt;/p&gt;

&lt;p&gt;There will be many iterations here, from onboarding to pricing. Be patient before making major changes and try to get a good volume of users first.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How about growth hacks, virality, and organic strategies, Dieguito?&lt;br&gt;
– Your Favorite VC&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sorry, but I don’t trust organic growth as the main strategy (yet?). With the flood of AI-generated apps, welcome to the bloody ocean of the app market.&lt;/p&gt;

&lt;p&gt;Apple and Google wouldn’t surprise me if they start charging per app published instead of by developer account. The only people who don’t like paid acquisition strategies are VCs, they love to hear zero-marketing budget BS.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Measure
&lt;/h2&gt;

&lt;p&gt;The most important metrics for me are CAC related: CPT (Cost per trial), CPS (Cost per subscription) and ROAS. That is it. Retention, Profits and LTV are critical, but they take a while to measure meaningful data. You will change prices a lot until you find what works.&lt;/p&gt;

&lt;p&gt;Good tools to help you with that are &lt;a href="https://mixpanel.com/" rel="noopener noreferrer"&gt;Mixpanel&lt;/a&gt; (connected with the Meta API) and &lt;a href="https://revenuecat.com/" rel="noopener noreferrer"&gt;RevenueCat&lt;/a&gt;.&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%2Ffnl0hy5b63f8f2qdynvh.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%2Ffnl0hy5b63f8f2qdynvh.png" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  Smart Keys Dashboard
&lt;/h6&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Check-in:&lt;/strong&gt; From those numbers, do another check-in. Scaling ads while bootstrapping is tricky and can get expensive quickly. Proceed with caution. You can see the blue line rising faster than revenue in the first chart. Six months later, I reevaluated to make the ad spend more sustainable.&lt;/p&gt;

&lt;p&gt;What about Experiments, weren’t you the king of A/B Tests?&lt;br&gt;
– Your Favorite Scientist&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;First off, I’m not the king, maybe more like the Prince 💁‍♂️. I used to get super excited about experiments, especially the chance to discover something novel. I spent tons of hours designing, coding, and running experiments, sometimes with awesome results from tons of data points. But the weirdest part was that when we rolled out the experiment to all users, we didn’t see any change.&lt;/p&gt;

&lt;p&gt;What was probably happening was a lack of statistical power, which is a major issue in science itself. People often talk about statistical significance, but that’s really just an agreement that the result is unlikely to be due to chance, unlikely… unlikelly.&lt;/p&gt;

&lt;p&gt;Another thing to think about is what you actually measure. Experiments should ALWAYS be judged by the final metric, which is REVENUE. Tweaking middle metrics like signup rate or onboarding steps doesn’t always affect revenue. Sometimes a big jump in signup rate doesn’t do anything for revenue (I’ve even seen it go down 💸)&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The Secret:&lt;/strong&gt; So, when I start a new project, I usually don’t have the cash, team, or tons of data to run experiments. These days, I’m more into getting ideas from behavior construts that big companies have already tested a lot, like social proof, authority, commitment, scarcity, and so on.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  10. Scale (or not)
&lt;/h2&gt;

&lt;p&gt;Welcome to the real world, you’re now a real player in the market. Scaling means you’ll be up against those big players you checked out months ago. Your campaign performance won’t be the same with your small budget. You’ll probably need more creatives, get more support tickets, and messing up your server or introducing a bug could disrupt thousands of users (While I’m writing this, I’m waiting for Apple to approve a bug fix for a version I messed up, and now users are stuck.).&lt;/p&gt;

&lt;p&gt;I consider it actually a good success if you can deliver a good product but can’t scale during the first months. You solved your own problem and helped other people solve theirs. Scaling takes time and requires good cash flow.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The Secret:&lt;/strong&gt; If you’re going solo, find a buddy to do a bi-weekly check-in with. I’ve been doing this with a friend who’s also building stuff. Sharing progress and struggles helps keep you accountable and gives you new insights from another perspective.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The truth:&lt;/strong&gt; This part of the process is still a work in progress, and I’m not totally sure I cracked the secret here. Either way, whether you managed to scale or not, it’s probably a good time to take a shower and have another cry.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  That’s it
&lt;/h2&gt;

&lt;p&gt;This is a live process. It involves some iterations and may take time. It has evolved since I read the nudge from the MAKE book that if your list of problems is small, you should make your life more interesting. I signed up for the &lt;a href="https://diego.horse/sf2-la-part-1/" rel="noopener noreferrer"&gt;540-mile bike ride from SF to LA&lt;/a&gt;, which brought me beautiful problems to solve.&lt;/p&gt;

&lt;p&gt;For &lt;a href="https://smartkeys.so/" rel="noopener noreferrer"&gt;Smart Keys&lt;/a&gt;, I followed most of the steps above. However, I admit that in other projects, I skip some parts I don’t like much, such as properly testing the market.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://diego.horse/tag/air-fiesta/" rel="noopener noreferrer"&gt;Air Fiesta&lt;/a&gt; is a very poor example of a project that failed on many levels. It started by not addressing any of my problems, was technically complex, had a huge scope, and I did inadequate market research. I did it simply because I had free time and was excited about building a game using the Google Maps SDK related to a cause. I even added to my list of problems just to justify its development: “I want to create games again.” 🥸&lt;/p&gt;

&lt;p&gt;But I am trying to be better at it. &lt;a href="http://birdrise-therising.html/" rel="noopener noreferrer"&gt;Bird Rise&lt;/a&gt; was actually a pivot inspired by insights during the market test. And Air Fiesta and other &lt;a href="https://diego.horse/tiny-games-big-feelings/" rel="noopener noreferrer"&gt;tiny games&lt;/a&gt; actually brought a main insight about using games as a marketing tool. So maybe I am learning something after all.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>indiehackers</category>
      <category>startup</category>
      <category>career</category>
    </item>
    <item>
      <title>Tiny Games, Big Feelings</title>
      <dc:creator>Diego Dotta</dc:creator>
      <pubDate>Sat, 22 Nov 2025 00:36:56 +0000</pubDate>
      <link>https://forem.com/diegodotta/tiny-games-big-feelings-4oke</link>
      <guid>https://forem.com/diegodotta/tiny-games-big-feelings-4oke</guid>
      <description>&lt;p&gt;Everything actually started when I played &lt;a href="https://jordanmagnuson.itch.io/loneliness" rel="noopener noreferrer"&gt;Loneliness&lt;/a&gt;. What a strange, quiet punch of a game. I wasn’t expecting much (it’s just little squares on a white screen) but somehow it managed to pull more emotions out of me in two minutes than most AAA games do in fifty hours. I walked away confused and weirdly emotional, like someone had whispered something important into my ear and then vanished.&lt;/p&gt;

&lt;p&gt;So of course I did the only reasonable thing: I became obsessed. I hunted down the creator, &lt;a href="https://www.jordanmagnuson.com/" rel="noopener noreferrer"&gt;Jordan Magnuson&lt;/a&gt;, and ended up reading his book &lt;a href="https://www.gamepoemsbook.com/" rel="noopener noreferrer"&gt;Game Poems&lt;/a&gt;, which didn’t help at all because now I’m even more obsessed.&lt;/p&gt;

&lt;p&gt;The whole idea that games can be short, intentional emotional gestures suddenly made sense. Then I stumbled upon &lt;a href="https://demian.ferrei.ro/snake" rel="noopener noreferrer"&gt;URL Snake&lt;/a&gt;, this tiny absurd miracle living inside the URL bar, built entirely with Braille characters. I did what I always do when I find something tiny and clever: I became obsessed with its creator, &lt;a href="https://demian.ferrei.ro/" rel="noopener noreferrer"&gt;Demian Ferreiro&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So on a sunny weekend, I decided to experiment with those ideas. The first result was &lt;a href="https://diego.horse/jump/" rel="noopener noreferrer"&gt;Tiny Horse&lt;/a&gt;, a tiny creature leaping across my URL bar like it’s trying to outrun my unfinished tasks.&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%2F1zkwxefdvbpu4580dkl5.gif" 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%2F1zkwxefdvbpu4580dkl5.gif" alt="Tiny Horse" width="1124" height="80"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then came &lt;a href="https://diego.horse/tiny-mario/" rel="noopener noreferrer"&gt;Tiny Mario&lt;/a&gt;, who took the same microscopic canvas and somehow turned it into a full side-scrolling adventure powered entirely by Braille characters and misplaced confidence.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=6i1PxtaBfZ0" rel="noopener noreferrer"&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%2Favbww6e7rbp3hbhof4un.jpg" alt="Tiny Mario" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I actually built this second one in secret from Leandra because I was supposed to be working on a different project and not making games anymore. I kept two instances of &lt;a href="https://windsurf.com/refer?referral_code=oy0hdqpvkz4b88ng" rel="noopener noreferrer"&gt;Windsurf&lt;/a&gt; open, and whenever she walked by, I switched to the main project (she is the boss).&lt;/p&gt;

&lt;p&gt;I was surprised that I could work on two projects at the same time, with one assistant coding some complex tasks while working with the other. Obviously, I was paying much more attention to the game though. ;p&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%2Ffcsl0922t3dbs7t2dm3q.gif" 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%2Ffcsl0922t3dbs7t2dm3q.gif" alt="Alt-tab meme" width="398" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They’re not big games. They’re not meant to be. They’re little moments. Digital haikus. Emotional blips. I build them fast, break them faster, and still feel strangely proud of them.&lt;/p&gt;

&lt;p&gt;And you know what? While building and playing them, I kept noticing how these tiny games trigger emotions so quickly. Simple graphics, a couple of sound cues, and suddenly I’m laughing out loud on a Saturday night at 11 p.m. because I made Tiny Mario slip into an underground level through tiny pipes.&lt;/p&gt;

&lt;p&gt;Besides being simple, they include classic casual game elements that spark some adrenaline: scores, countdown, enemies, rewards, obstacles, and elements of surprise. Something I haven’t been able to add to &lt;a href="https://dev.to/tag/air-fiesta"&gt;Air Fiesta&lt;/a&gt; yet.&lt;/p&gt;

&lt;p&gt;If you want to see what all this tiny-game energy looks like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tiny Horse&lt;/strong&gt; → &lt;a href="https://diego.horse/jump" rel="noopener noreferrer"&gt;https://diego.horse/jump&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tiny Mario&lt;/strong&gt; → &lt;a href="https://diego.horse/tiny-mario" rel="noopener noreferrer"&gt;https://diego.horse/tiny-mario&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Both projects are open source on my &lt;a href="https://github.com/diegodotta" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And if you want to feel the thing that started all this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Loneliness&lt;/strong&gt; → &lt;a href="https://jordanmagnuson.itch.io/loneliness" rel="noopener noreferrer"&gt;https://jordanmagnuson.itch.io/loneliness&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;URL Snake&lt;/strong&gt; → &lt;a href="https://demian.ferrei.ro/snake" rel="noopener noreferrer"&gt;https://demian.ferrei.ro/snake&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Game poems are small, but they hit hard, like tiny sparks pretending they aren’t capable of starting whole wildfires. And honestly, maybe that’s exactly what makes them beautiful… and powerful.&lt;/p&gt;




&lt;h2&gt;
  
  
  Nov 18th Update
&lt;/h2&gt;

&lt;p&gt;I wasn’t expecting people to get this excited about a tiny game. I posted it on &lt;a href="https://www.producthunt.com/products/tiny-mario?launch=tiny-mario" rel="noopener noreferrer"&gt;Product Hunt&lt;/a&gt; and &lt;a href="https://www.reddit.com/r/InternetIsBeautiful/comments/1ovo0xu/play_tiny_mario_on_your_url_bar/" rel="noopener noreferrer"&gt;Reddit&lt;/a&gt; just for fun and suddenly folks were actually into it. It’s not the kind of thing people usually share there, but I guess we’re all craving fewer AI products and more silly things like this.&lt;/p&gt;

&lt;p&gt;Give it a vote if you feel like it. We already beat a Google product (which feels surreal and funny at the same time).&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%2Fnmh1vnlglc6r1sg56i04.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%2Fnmh1vnlglc6r1sg56i04.png" alt="Tiny Mario #9 Place" width="800" height="611"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>gamedev</category>
      <category>javascript</category>
      <category>braille</category>
    </item>
    <item>
      <title>Air Fiesta: When the Balloons Multiplied</title>
      <dc:creator>Diego Dotta</dc:creator>
      <pubDate>Tue, 28 Oct 2025 02:05:15 +0000</pubDate>
      <link>https://forem.com/diegodotta/air-fiesta-when-the-balloons-multiplied-57l3</link>
      <guid>https://forem.com/diegodotta/air-fiesta-when-the-balloons-multiplied-57l3</guid>
      <description>&lt;p&gt;There was a time when everyone shared a single balloon. That was Airtales, one collective flight drifting wherever the crowd decided. Democracy by wind. Chaos by design. It was beautiful, but also… a little limiting. People wanted to explore their own skies. This is &lt;a href="https://diego.horse/airtales-story/" rel="noopener noreferrer"&gt;why it started&lt;/a&gt; and &lt;a href="https://diego.horse/airtales-when-the-balloon-landed/" rel="noopener noreferrer"&gt;how it ended&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That’s how &lt;a href="https://airfiesta.fm/" rel="noopener noreferrer"&gt;Air Fiesta&lt;/a&gt; happened, a pivot, or maybe a parallel universe. Now every player has their own balloon. You can float above your neighborhood, drift over famous cities, or join in festivals with friends. No borders, no passport required.&lt;/p&gt;

&lt;p&gt;Underneath it all, it still runs on the same energy: curiosity, community, and a touch of absurd optimism that maybe the world makes more sense from 300 feet up.&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%2Fyqzi5n2bk9ah0kny1fdt.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%2Fyqzi5n2bk9ah0kny1fdt.png" alt="Nature and weather conditions are your challenges."&gt;&lt;/a&gt;&lt;em&gt;Nature and weather conditions are your challenges.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What’s New
&lt;/h2&gt;

&lt;p&gt;Air Fiesta is built on &lt;a href="https://mapsplatform.google.com" rel="noopener noreferrer"&gt;Google Maps SDK&lt;/a&gt;, so what you see is the real planet. You can tune into local radio stations while you fly (because every city sounds different).&lt;/p&gt;

&lt;p&gt;You can take photos of your journey, discover hidden treasures, and battle weather that’s way less forgiving than it looks. Gusty winds, thermals, fog, even flocks of birds (the kind of chaos that makes you laugh right before it throws you off course).&lt;/p&gt;

&lt;p&gt;And what about the balloon festivals? They’re still happening. They will probably change into something simpler. Right now, it’s a scavenger hunt with virtual friends. But it seems a bit complicated, so it will likely become more like freely collecting hidden gems.&lt;/p&gt;

&lt;p&gt;One big improvement was the mobile experience. The game is still based on web technology (ThreeJS), which is tricky to run on mobile, but you can try it out on the &lt;a href="https://apps.apple.com/us/app/air-fiesta-on-google-earth/id6751870549" rel="noopener noreferrer"&gt;App Store&lt;/a&gt; or &lt;a href="https://play.google.com/store/apps/details?id=fm.airfiesta.app" rel="noopener noreferrer"&gt;Play Store&lt;/a&gt;. Coming soon on Steam.&lt;/p&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/SYa2TpslXAg"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;




&lt;h3&gt;
  
  
  Why I Still Care About Radio
&lt;/h3&gt;

&lt;p&gt;Radio’s the heartbeat of Air Fiesta. I’ve always loved it, the crackle, the local ads, the DJs who sound like they’ve seen things. There’s something deeply human about tuning into a city’s voice while you’re hovering over it.&lt;/p&gt;

&lt;p&gt;I’m reaching out to stations now, (community, college, indie, public) to ask permission to float them inside the game. Because I want players to hear the places they fly over, not just see them.&lt;/p&gt;

&lt;p&gt;If you run a station, you can see a preview of what that looks like:&lt;br&gt;
See a balloon radio in &lt;a href="https://airfiesta.fm/watch/evr" rel="noopener noreferrer"&gt;New York&lt;/a&gt; and another in the &lt;a href="https://airfiesta.fm/watch/kqed" rel="noopener noreferrer"&gt;Bay Area&lt;/a&gt;. This is more like a non-interactive mode where you can “watch” other players.&lt;/p&gt;

&lt;p&gt;Special thanks to &lt;a href="https://www.radio-browser.info/" rel="noopener noreferrer"&gt;Radio Browser&lt;/a&gt; technology for providing the geo-position of radios worldwide for free.&lt;/p&gt;


&lt;h3&gt;
  
  
  Where Air Fiesta Is Cancelled
&lt;/h3&gt;

&lt;p&gt;Not everywhere is safe to fly.&lt;/p&gt;

&lt;p&gt;Inspired by the &lt;a href="https://www.cfr.org/global-conflict-tracker" rel="noopener noreferrer"&gt;Global Conflict Tracker&lt;/a&gt; and &lt;a href="https://freedomflotilla.org/" rel="noopener noreferrer"&gt;Freedom Flotilla&lt;/a&gt;, I mapped ongoing conflicts around the world: wars, occupations, humanitarian crises. The result was staggering. In those regions, Air Fiesta goes silent.&lt;/p&gt;

&lt;p&gt;It’s not meant as protest or pity, more like a pause. When the world is burning, sometimes silence says more than scenery.&lt;/p&gt;

&lt;p&gt;Maybe one day those places will light up again with music, laughter, and balloons rising together. Until then, the silence stays.&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%2Fj5h4hxipromur8iufog6.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%2Fj5h4hxipromur8iufog6.jpg" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Feed and Gallery
&lt;/h3&gt;

&lt;p&gt;Since Airtales has a feature that is quite unique (the camera), like a real balloon adventure, you can take pictures of your views. It’s no different here; people feel excited about doing that, so I keep it.&lt;/p&gt;

&lt;p&gt;The improvement from the previous version is that you can now see pictures, messages, and other balloon interactions in a feed format.&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%2Fwcamk40xa53n62jh7ikz.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%2Fwcamk40xa53n62jh7ikz.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  What’s missing?
&lt;/h3&gt;

&lt;p&gt;I think there are important pieces missing or not quite right. The story, for example, seems weak or almost nonexistent. Another important aspect is world-building. Currently, interactions with the world are almost zero. I think players should be able to build or change something in the real world. Right now, it’s almost like a ‘leave no trace’ approach, but it could be cool if they could move things around, clean the ocean, deliver letters, or even destroy borders :p&lt;/p&gt;

&lt;p&gt;You can see follow the progress on &lt;a href="https://diegodotta.itch.io/airfiesta/devlog" rel="noopener noreferrer"&gt;Itch.io&lt;/a&gt;, for the first time I’m documenting the changelog there, it’s quite interesting.&lt;/p&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/BQl88QLsY1s"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;




&lt;h3&gt;
  
  
  The Sky Is the Limit
&lt;/h3&gt;

&lt;p&gt;Air Fiesta isn’t about competition. There’s no score. No finish line. Just weather, music, and motion. It’s a little weird and a little hopeful, a floating experiment in what happens when you mix geography, sound, and strangers who want to explore together. This won’t trigger dopamine traps, and you won’t become addicted to it.&lt;/p&gt;

&lt;p&gt;Maybe that’s the game I’ve always wanted to play: one where the world is the level, and connection is the win condition.&lt;/p&gt;

&lt;p&gt;✈️ Play at &lt;a href="https://airfiesta.fm" rel="noopener noreferrer"&gt;airfiesta.fm&lt;/a&gt; or read the &lt;a href="https://airfiesta.fm/manifesto/index.html" rel="noopener noreferrer"&gt;manifesto&lt;/a&gt; if you’re into that kind of thing.&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>showdev</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>Neuralese: The Most Spoken Language You’ll Never Speak</title>
      <dc:creator>Diego Dotta</dc:creator>
      <pubDate>Tue, 06 May 2025 02:37:50 +0000</pubDate>
      <link>https://forem.com/diegodotta/neuralese-the-most-spoken-language-youll-never-speak-51hl</link>
      <guid>https://forem.com/diegodotta/neuralese-the-most-spoken-language-youll-never-speak-51hl</guid>
      <description>&lt;p&gt;Somewhere between thinking and speaking, there’s a strange place where meaning starts to solidify. It’s not quite a word yet. More like a haze of associations. A mental sketch your brain tries to translate into something shareable. Sometimes it works. Most of the time it doesn’t, at least for me. I tend to mumble a lot.&lt;/p&gt;

&lt;p&gt;That private language in your head, the one you use to talk to yourself, isn’t English or Portuguese or Python. &lt;a href="https://www.scientificamerican.com/article/you-dont-need-words-to-think/" rel="noopener noreferrer"&gt;It’s not even a language, really.&lt;/a&gt; It’s raw and messy. A kind of silent shorthand sculpted by experience. Try catching it. Try explaining it. It slips through like fog in your fingers.&lt;/p&gt;

&lt;p&gt;This isn’t a linguistics paper. It’s a thought experiment about the strange, alien dialects spoken by machines, and what they might reveal about how we understand language, and ourselves. This is speculative. It’s not meant as a technical model of how LLMs work or how humans process language, just a meditation on how meaning can take forms we may never be able to speak.&lt;/p&gt;

&lt;h2&gt;
  
  
  The language of thought (According to machines)
&lt;/h2&gt;

&lt;p&gt;Science is already poking around in there. Researchers are feeding brain signals into neural networks and getting fuzzy images back. They’re trying to reverse-engineer what we see, dream or remember. &lt;a href="https://www.nature.com/articles/s41598-023-42891-8" rel="noopener noreferrer"&gt;Some of the reconstructions look like fever dreams&lt;/a&gt;. Others are eerily close. It’s like watching the mind on a bad TV signal, but the tech keeps getting better.&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%2Fdjoztqllv3mj9ndrx1zw.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%2Fdjoztqllv3mj9ndrx1zw.png" alt="AI re-creations of images based on brain scans (bottom row) match the layout, perspective, and contents of the actual photos seen by study participants (top row)" width="800" height="388"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;AI re-creations of images based on brain scans (bottom row) match the layout, perspective, and contents of the actual photos seen by study participants (top row)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Then there’s the way we connect our minds to each other. Through letters carved into stone. Through cave paintings, vinyl records, emojis, GIFs, memes. Through every kludge we’ve invented to make what’s in here vaguely resemble what’s in there. Language is our duct tape for consciousness.&lt;/p&gt;
&lt;h2&gt;
  
  
  What the machines whisper when we’re not listening
&lt;/h2&gt;

&lt;p&gt;When we started teaching machines, we handed them the same duct tape. Natural language. Our language. We told them, here, talk like us. So they did. Or at least, they pretended to and we believed.&lt;br&gt;
Quick cheat sheet before we tangle the wires. There are three very different “languages” in this story (I can hear the linguists sharpening their red pencils):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Human languages: messy, culture‑soaked, built for wet brains and bad at precision.&lt;/li&gt;
&lt;li&gt;Machine protocols (non-neural): JSON blobs, HTTP headers, rule-bound micro-dialects that leave no room for doubt.&lt;/li&gt;
&lt;li&gt;Latent representations (neural): the private vector soup inside one model, never transmitted (outside a lab demo), never meant for ears.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ChatGPT. Alexa. Siri. Every chatbot trying to pass for clever at dinner sits in bucket one when it chats with us. But here’s the twist. When machines talk to each other, they skip the human stuff. No syntax, no grammar, no metaphors.&lt;/p&gt;

&lt;p&gt;When Alexa calls Roomba they are not exchanging cute phrases. Alexa fires a strict micro‑dialect packet (JSON over HTTPS). That’s bucket two, a protocol, not a mind‑to‑mind vector swap. Efficient, silent, built for zero confusion.&lt;/p&gt;

&lt;p&gt;Those packet‑speaking systems are narrow tools, nothing close to AGI. But we are already wiring up broader agents that learn on the fly, pick their own tactics, and only visit a language model when they need to chat with us. For talking to each other they could ditch words entirely and trade vectors, numbers, tokens, dense nuggets of meaning we can’t read or pronounce.&lt;/p&gt;

&lt;p&gt;Is that Neuralese? Maybe. It is not a code we will ever study in a classroom, not because it is too complex, but because it was never meant for us. If a signal can move intent across silicon and spin motors into action without leaving a human‑readable trace, “language” feels like the best word we have.&lt;/p&gt;

&lt;p&gt;Do LLMs actually communicate inside the stack? Not like two agents tossing discrete symbols in a reinforcement game. A single model is one giant function. Its only chatter is with itself. Neuralese might be closer to private thoughts than walkie‑talkie slang. If you have a paper that shows real agent‑to‑agent symbol swaps, drop a link. I want to dig in.&lt;/p&gt;
&lt;h2&gt;
  
  
  Inside the black box: The unspoken language of AI
&lt;/h2&gt;

&lt;p&gt;They don’t think. Not really. They don’t speak, understand, or mean. What they do is behave in ways that simulate meaning so convincingly, we reflexively fill in the gaps. We anthropomorphize (everything, as always). And in that space between their mimicry and our projection, something emerges, something like communication. Or, as Rodney Brooks said, “…we over-anthropomorphize humans, who are, after all, mere machines.”&lt;/p&gt;

&lt;p&gt;Back to the (non?)language Neuralese, this dense tangle of vector math, no rules or roots that only appears as thought when reflected in our direction.&lt;/p&gt;

&lt;p&gt;It's not that the model knows what a cat is. It’s that when we ask it about cats, it activates just enough of the “catness” region in its mathematical dreamspace to give us an answer that feels right. That feeling is the trick. The illusion. But also the revelation. &lt;/p&gt;

&lt;p&gt;But this new language lives inside the black box. It’s the internal chatter of large language models. The soup of token embeddings sloshing around under the hood. It's not designed to be elegant or expressive. It's designed to get the job done.&lt;/p&gt;

&lt;p&gt;Human language is a marvel, full of ambiguity, poetry, subtext, and shared cultural connections. But to a machine, it’s just noise, indirect and redundant, made for soft, wet brains. Machines might not even need a large language model to communicate with each other.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“But Diego, LLMs are still hallucinating and getting things wrong” – The LLM Hater&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sure. A lot of them are. And I might be completely off here. But models built to reason are already proving more accurate. Chain-of-thought, tree-of-thought and other techniques all try to force a step-by-step breakdown. It’s like watching a toddler narrate their Lego build. Clunky, but it works. And here’s where things get weird. That inner language, the model’s inner monologue, starts to feel just as chaotic and hazy as ours. Thinking burns energy. Nature figured out a way to make that work for us. We made machines. They’re still figuring it out.&lt;/p&gt;

&lt;p&gt;Why should a model have to spell out a whole grammatically correct essay to think something through? Why not let it mumble to itself in its own weird way?&lt;/p&gt;

&lt;p&gt;I ran a dumb little experiment. Just wanted to see if tweaking the way a model reasons, shifting its “language” a bit, could save on tokens without wrecking the answer.&lt;/p&gt;
&lt;h2&gt;
  
  
  A little dumb experiment
&lt;/h2&gt;

&lt;p&gt;By using only prompt engineering, I wanted to see if I could get the model to reason in a language I don’t understand, but still produce the correct final answer, all while keeping it fast and using fewer tokens. I tested only the latest mini OpenAI models that don’t have reasoning embedded. I chose a classic test case that models without reasoning usually fail.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Question: “Sally has 3 brothers, each with 2 sisters. How many sisters does Sally have?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Test 1: Just asked the question straight up.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Final answer: Sally has 2 sisters&lt;br&gt;
*871ms, 8 tokens, and wrong answer ❌&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Test 2: Wrapped the whole thing in a JSON schema. Forced the model to explain each step. It cost 20 times more to get it right.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Final answer: Sally has 1 sister&lt;br&gt;
*2.559ms, 164 tokens, right answer ✅&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Test 3: Limited the vocabulary to words with four letters or less. Still got the right answer. Faster and over 60% more cost-effective than test 2.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Final answer: Sally has 1 sister&lt;br&gt;
*1.633ms, 64 tokens, right answer✅&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The final test was successful on the 4o-mini, 4.1-mini, and 4.1-nano. Even the nano, which I find almost useless, got things right.&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%2Fc3x1jq90wn7cwktkgu4y.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%2Fc3x1jq90wn7cwktkgu4y.png" alt="Optimized reasoning: “Sally has 3 bros, Each bro has 2 sis. Sally is one sis. So, the other sis count is 1.”" width="800" height="368"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Optimized reasoning: “Sally has 3 bros, Each bro has 2 sis. Sally is one sis. So, the other sis count is 1.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The best result I got was this reasoning that sounded like stripped-down English. Kind of minimalist. With “bros” and “sis”. No fluff. And that seemed to help. There’s no judgment on grammar when it comes to reasoning. Clarity doesn’t always need correctness.&lt;/p&gt;

&lt;p&gt;To be honest, this wasn’t test 3. It was more like test 100. I tried switching to other languages. Simplified Chinese worked better than expected, each symbol packs more meaning. Telegraph-style English helped too. Fewer filler words, less ambiguity. Even Simplified English made a difference. Some other experiments failed, costing more or failing to find the answer, such as using logic symbols, not using vowels or spaces during reasoning, which made sense based on &lt;a href="https://seantrott.substack.com/p/tokenization-in-large-language-models" rel="noopener noreferrer"&gt;how token prediction works&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This was not a breakthrough strategy for cutting reasoning costs or use that as &lt;a href="https://en.wikipedia.org/wiki/Machine_to_machine" rel="noopener noreferrer"&gt;machine-to-machine (M2M) communication&lt;/a&gt;. But it’s a nudge. A clue. A hint that maybe we can think better by saying less. And it’s still a long way from pure vectors or emergent protocols. But we might unlock cheaper, faster, more energy-efficient reasoning (unless someone builds a clean and infinite energy source first).&lt;/p&gt;
&lt;h2&gt;
  
  
  A little sci-fi thought experiment
&lt;/h2&gt;

&lt;p&gt;So, if you're a linguist or an MS and you haven't gotten upset about what you've read so far, now's the time.&lt;/p&gt;

&lt;p&gt;Let’s imagine that if there is a language machines use to communicate with each other, why not a programming language created by them that is efficient and probably impossible for us to understand?&lt;/p&gt;

&lt;p&gt;Let’s call it Noēsis+ (from the Greek for “pure thought”). It is a token-only language. Each token is meaningless on its own. Meaning emerges only in the context of thousands of other tokens, across time, weighted by past executions.&lt;/p&gt;

&lt;p&gt;Imagine each token as a coordinate, one point in a vast, high-dimensional landscape. Not with meaning on its own, but with potential. What matters isn’t what the token “says,” but where it leads.&lt;/p&gt;

&lt;p&gt;Tokens:&lt;br&gt;
Arbitrary identifiers, like:&lt;br&gt;
&lt;code&gt;ɸqz, ∆9r, aal, ⊠7, gr_, etc.&lt;/code&gt;&lt;br&gt;
No keywords. No syntax. No punctuation. No variables.&lt;/p&gt;

&lt;p&gt;Sequence-as-Code:&lt;br&gt;
In Noēsis, tokens don’t have fixed meanings. Execution isn’t logic, it’s flow. Meaning emerges from proximity, repetition, and order, the way patterns in machine learning models seem to take shape across vast sequences. Not like programming. More like resonance. A mood that builds as tokens pass in relation to one another.&lt;/p&gt;

&lt;p&gt;Compiled into Behavior:&lt;br&gt;
Imagine a language where each token isn’t a command, but a vector. Not syntax, but coordinates in a sprawling, invisible space.&lt;/p&gt;

&lt;p&gt;Programs in Noēsis don’t “run” like code. They move. They drift across latent vector fields, tracing paths shaped by token proximity, past history, and ambient state.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ɸqz ∆9r ∆9r aal ⊠7 ⊠7 ⊠7 gr_ ∞yx ɸqz gr_ gr_ ⊠7 xaz ɸqz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same program, different result, depending not on what was written, but on when and where it was run. Like a thought that feels different depending on your mood. It’s almost as if it’s meant to make us anxious, and maybe machines could get anxious too?&lt;/p&gt;

&lt;p&gt;Not that machines “feel.” But if their outputs jitter with context, if the same input drifts into new behaviors, does it matter? From the outside, it looks like mood. Like uncertainty. Like… unease&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Congrats, you burned 1,800 tokens to say nada, tech bro.”&lt;br&gt;
– A linguist ex-friend&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Point taken. You found my weak spot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Syntax of a mind that isn’t ours
&lt;/h2&gt;

&lt;p&gt;Jokes a part, while we keep polishing the human-sounding outputs, the real magic might be in listening closer to the alien syntax already unfolding under the surface. Well, alien because this language will evolve by a technology that wasn’t created by us, but by our creations.&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%2F8to6nxt1irrf0jw8rtm7.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%2F8to6nxt1irrf0jw8rtm7.png" alt="A word after a word after a word is power - Margaret Atwood" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So yeah. Neuralese. You’ll never speak it. You’ll never read it. But it might end up being the most fluent language on the planet.&lt;/p&gt;

&lt;p&gt;And we’re the ones with the accents.&lt;/p&gt;




&lt;h2&gt;
  
  
  Changelog &amp;amp; Mea Culpas
&lt;/h2&gt;

&lt;p&gt;The first version of this article triggered strong emotions on Reddit. I updated it and I ended up getting some great insights though, thanks to all the anonymous experts who educationally slapped me into a less “unscientific” and “idiotic” thought experiment.&lt;/p&gt;

</description>
      <category>llm</category>
      <category>ai</category>
      <category>discuss</category>
      <category>neuralese</category>
    </item>
    <item>
      <title>The Vibe Life: Building Smart Keys for Mac</title>
      <dc:creator>Diego Dotta</dc:creator>
      <pubDate>Fri, 25 Apr 2025 00:17:46 +0000</pubDate>
      <link>https://forem.com/diegodotta/the-vibe-life-building-smart-keys-for-mac-pfn</link>
      <guid>https://forem.com/diegodotta/the-vibe-life-building-smart-keys-for-mac-pfn</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bringing the Vibe to My Desktop
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;So, I created Smart Keys for Mac.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Simple. Efficient. Minimal.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Perils of a One-Code Solution
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;“If debugging is the process of removing software bugs, then programming must be the process of putting them in.”&lt;br&gt;
– Edsger Dijkstra&lt;/p&gt;

&lt;p&gt;“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.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Fine Line Between Efficiency and Overload
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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).&lt;/p&gt;

&lt;h2&gt;
  
  
  Selling a Quiet Product That Does a Lot
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;“First, write the press release. Then, build the product.”&lt;br&gt;
– Not me&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

</description>
      <category>ios</category>
      <category>ai</category>
      <category>grammar</category>
      <category>smartkeys</category>
    </item>
    <item>
      <title>Store Conversion? More like Store Distraction.</title>
      <dc:creator>Diego Dotta</dc:creator>
      <pubDate>Tue, 04 Feb 2025 00:15:02 +0000</pubDate>
      <link>https://forem.com/diegodotta/store-conversion-more-like-store-distraction-444k</link>
      <guid>https://forem.com/diegodotta/store-conversion-more-like-store-distraction-444k</guid>
      <description>&lt;p&gt;Apple’s shiny Benchmark Metrics are BS, but don’t be fooled. &lt;/p&gt;

&lt;p&gt;I learned that the hard way while feeling proud of myself as I rearranged screenshots, polished keywords, and declared I’d cracked the code. Smart Keys conversion rate soared, my proceeds per user looked stellar, and I’d pat myself on the back every time I glanced at the numbers.&lt;/p&gt;

&lt;p&gt;Then it hit me that I was clinging to illusions, metrics that look good on paper but hide the gritty reality of crashes, retention, and actual profitability.&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%2F3ys9146qkh0fnbu0x1fy.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%2F3ys9146qkh0fnbu0x1fy.png" alt="App Store Benchmark Report" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here’s the short version of what I learned:&lt;/p&gt;

&lt;p&gt;💩 1. Store Conversion: Ads and external promotions can juice your stats, making conversion look like a high score when it’s basically pay-to-win.&lt;/p&gt;

&lt;p&gt;💸 2. Proceeds per Paying User: This can appear golden, until you remember acquisition costs can burn a hole in your wallet.&lt;/p&gt;

&lt;p&gt;👑 3. Crashes: This is real gold. On a small team, testing across all devices and iOS versions is no walk in the park, this metric shows you if your app is on fire before the reviews come in hot.&lt;/p&gt;

&lt;p&gt;🐎 4. Retention (D1, D7, D28): A slow-burn test of whether users actually come back. Trial periods and paywalls can skew it, so patience is key.&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%2Ffgxnnkk7enyr7npliji8.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%2Ffgxnnkk7enyr7npliji8.png" alt="Retention Reports" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The truth is, Apple’s polished dashboards won’t give you the full picture. I’ve learned more from &lt;a href="https://every.to" rel="noopener noreferrer"&gt;Every&lt;/a&gt; Inc. and the community #BuildingInPublic than from any set of curated stats or ASO gurus.&lt;/p&gt;

&lt;p&gt;Want to dive deeper into the real numbers and see how I’m trying to keep things honest? Check out the full metrics and analysis on my blog at &lt;a href="https://diego.horse" rel="noopener noreferrer"&gt;diego.horse&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Is any of these metrics relevant to you? Which metric should I dive into next?&lt;/p&gt;

&lt;p&gt;Have a good week filled with no-BS insights.&lt;br&gt;
(っ-,-)つ𐂃&lt;/p&gt;

</description>
      <category>swift</category>
      <category>appstore</category>
      <category>buildinginpublic</category>
      <category>smartkeys</category>
    </item>
    <item>
      <title>No-BS Friday Metrics: Store Conversion Rate</title>
      <dc:creator>Diego Dotta</dc:creator>
      <pubDate>Sat, 01 Feb 2025 01:57:22 +0000</pubDate>
      <link>https://forem.com/diegodotta/no-bs-friday-metrics-store-conversion-rate-35ia</link>
      <guid>https://forem.com/diegodotta/no-bs-friday-metrics-store-conversion-rate-35ia</guid>
      <description>&lt;p&gt;Everyone loves 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 7%. So either I’m a wizard or this is an overrated metric.&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%2Fy4rg9a5nh1bwyap783g0.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%2Fy4rg9a5nh1bwyap783g0.png" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We, builders, makers, indie devs, and friends 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 they won’t move the needle in a meaningful way.&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%2Fni8sieo6hzk3vdt960dz.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%2Fni8sieo6hzk3vdt960dz.png" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So what actually happened here? 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 that work.&lt;/p&gt;

&lt;p&gt;So is this store conversion rate relevant? not really. It looks good on a dashboard, 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.&lt;/p&gt;

&lt;p&gt;That’s it for today. Next Friday, I’ll dive into retention, the real deal.&lt;/p&gt;

&lt;p&gt;Have a no-BS weekend. See ya. ✌️&lt;/p&gt;

</description>
      <category>smartkeys</category>
      <category>analytics</category>
      <category>buildinpublic</category>
      <category>ios</category>
    </item>
  </channel>
</rss>
