Tuesday Morning Ramblings
I never studied computer science. My developer skills are decent for a hobbyist, and I usually manage to get things done, especially when I think about how the last three years have changed everything. Tools like Replit and ChatGPT have been mind-blowing—everything shifted when LLMs emerged. They’ve been such a massive boost to my limited knowledge. I always struggled with things that people with proper training or years of experience probably don’t even think about—like setting up a Localhost. For me, it was always this annoying burden. What’s probably second nature to others was a showstopper for me. But then Replit came along and was like, "Here you go, everything online right from the start—connect to Vercel, and wait, what? This thing is online?" And when they added AI, suddenly I had the power to bring my silly ideas to life. For the first time, I actually felt like I could make computers and the Internet work for me.
The Power of Tools
Until this morning.
This morning, I’m sitting in my local coffee shop. I go there every morning, giving myself an hour just to have fun—to make something dumb, but it needs to be done within that hour. Sometimes I end up spending hours on it, but the goal is fun, learning, and mostly play. Play is where new promisses come from, and new promises lead to great product concepts later (which is the business I’m in). So, it’s a win-win.
So there I am, sitting in my coffee shop, discovering this new API, and I get going. I start my usual routine: ask ChatGPT for a plan, get a loose script and outline after I prompt it with the idea I have in my head. Step by step, explaining how to make it work. But, long story short, I couldn’t.
A Barrier Too High
I got stuck with the documentation—maybe I missed something, or maybe it wasn’t up to date. Maybe it was a stupid mistake because I’m jumping between multiple tools that are only loosely connected, and the solution to my bug was lost in translation. But I just couldn’t make it work. I hit a barrier—a knowledge gap that’s probably so dumb and simple for those with experience, but impossible for me to overcome.
Which made me think: what is this really about? It’s about end-user programming.
End-User Programming: The Missing Piece
When I look back at my time online, it’s been a story of progressive self-empowerment. When I started in UI design, I made screens in Photoshop with no way to show flows. So, I pretended to make flows by cutting out iPhones and putting them together with screens in Keynote to simulate how it would work. I thought, “Why isn’t app design more like Keynote?” Then the first click-through tools like InVision emerged, and it was radical empowerment. Suddenly, I could explain more about how it should work. Overall I was never truly drawn to code—it felt foreign to me, this abstract, linear way to describe things and create non-linear experiences. I’m a visual thinker and tinkerer.
Tools progress—they’re like technology itself, unstoppable in how they always evolve. Prototyping tools became more sophisticated, and no-code or low-code tools emerged. I remember the first time I made a website with Squarespace, hacking my way around it, and even getting featured on one of those “look at this cool website” pages. I loved simplified tools and really got into using limitations as an advantage to make interesting stuff. If there are limitations, it’s always an invitation to think creatively. But I’ve been struggling with these gaps for a long time. In my morning sessions, I often start with a great idea, but instead of discovering something new from there, I usually hit a wall because I don’t have the knowledge. So, I end up altering my ideas and going somewhere else. It still often leads to interesting things, but never to what I originally wanted. It feels a bit like prompting a GenAI: “Here’s what I have in mind,” but then you get something cool, yet not exactly what you wanted. But I can work with it.
Why am I ranting about this? I’ve been playing around with emerging technologies for so long, building up muscle memory and life hacks over the years, yet I still struggle. You could argue that I should just take the time to learn proper coding, but it feels like an endless catch-up game. Code, as it is, isn’t accessible to me and I wonder if it holds us back collectively.
Two Worlds of Technology
The tools we have today compared to even two years ago are lightyears better and a hundred times more accessible, but they still require a deep understanding of some ancient coding knowledge. Without that, it’s a space that’s kind of gatekept, and it feels like a lot of us aren’t even doing it intentionally or aware of it – again body memory.
What gives me hope is watching people find wild ways to make things work for them. I see random tweets about people who made machines, processes, and flows in tools never intended to allow it. Like the person who made a Turing-complete computer using Figma’s prototype tool? Or the people who automated their entire lives with Notion blocks and databases? Humanity is genius, to be honest.
But at the core, the Internet was supposed to be a collaborative net, spread across the world to increase interaction and surface more ingenuity, leading to collective upskilling. I think that’s worked more than well, but the truth is, only a small percentage of us can really make it work for us.
The Real Challenge Ahead
A few days ago, my partner’s sister mentioned, “Hey, could you make an app for me where my mom and I could do the daily newspaper crossword together?” My head started spinning instantly—what’s the easiest hack? Honestly, you could just make a FigJam file, add a screenshot, and then write on it. Suddenly, you have that app—no need to code. But then reality set in. Do they know Figma? They’d need to make an account, I guess. It doesn’t really work on mobile, and it’s still super clunky. But it would work. We had a hack around it. But it’s not actually what she wanted—she asked for an app.
So I thought, okay, what else could we do? We could use something like tlDraw with PartyKit. I could probably prompt my way to a working solution with Replit and AI, host it on Vercel, and it would be her app in a day or two. So, win?
Not really. The big problem wasn’t that she wanted the app to exist—a simple tool for her and her mom’s life—but the fact that she thought the only way to get it was to ask someone else.
This is what end-user programming means to me. And we are still far from it. The weird thing is, we’ve been thinking about this for at least 30 years. HyperCard was already an experiment in that direction. The Internet we build should be made so that anyone could create small tools for their day-to-day life. The reality is most of these tools have instant product-market fit. They don’t need a business case or funding—they just need to exist. An app that lets them solve the daily crossword together would be an instant product-market fit. 100% audience reach if you want.
Most tools we would use day to day are just like that—extremely small audiences, for the niche of a niche, single-purpose, sometimes even disposable.
There will always be two worlds—the world of expert tools that need a deep understanding because they need to scale, and that’s necessary and more than okay. These tools require expert knowledge and technologies. But how do we find a balance between them? Is there a way to go from play to scale that doesn’t require complete reengineering? It makes me think about how Fortnite created an interesting pipeline. First, you play and shoot, then you discover you can build structures. Next, you get a little more creative on a dedicated island, then you discover the Unreal Editor for Fortnite, and one day, you end up working with the Unreal Engine itself. Wait you became a game designer? How do we build tools that have a clear path to progression but evolve gradually in complexity?
But here's my parting thought: What if the future isn’t just about making technology more accessible but about fundamentally changing how we think about and interact with it? What if the real revolution isn’t in building better tools, but in redefining what it means to create and use them? What if the next frontier isn’t just about breaking down barriers to entry, but questioning why those barriers exist in the first place?
We’re on the edge of it anyway. The question is, are we bold enough to imagine a world where everyone—not just the experts—can shape the technology that shapes their lives? And if we are, what’s stopping us from building that world right now?
As I was writing this, it was a back-and-forth with ChatGPT. My failed prototypes were just a few selections from my library of hacks on how to make my computer and the Internet work for me. So many of these hacks are obvious to me, even the ones (prompts) I used to format this piece, but they’re probably not obvious to most people out there. Making things work for you is often a game of workarounds—but should it be?
Making things work shouldn’t be about endless hacks and workarounds. It should be straightforward, seamless, and within reach for everyone. The real challenge isn’t just creating more tools—it’s making technology that works for us without us having to jump through hoops. Tech should empower everyone, not just the ones who know how to hack it. That’s the world we should be building right now.