Introduction
Programming is the closest thing I know to magic. The idea that I can sit and type and all of a sudden conjure experiences for others—that I can structure incentives, impact behavior, help people to see the world a little differently—makes it as important and meaningful to me as any other form of art. In it I have found the power to weave reality from words.
Relative to the cost of investment (which, as a kid sitting at the computer trying to make websites, was important), nothing else I have found comes close to the potential impact. That one person can make something for hundreds of thousands—sometimes millions—of people to interact with is one of the most sublime feelings I have ever experienced.
From this lens, what draws me to programming is not really anything to do with code. Viewed as a mode of artistic and creative expression, code is just a tool—in the same way that the syntax and grammar of language are tools to communicate through writing, or the way that notes and chords let the brain express itself through music. Further, I believe that in the same way the best authors are not lexicographers or etymologists, the best creators of software are not computer scientists.
This is important because everywhere we look, technology (and, for the sake of this argument, software specifically) encircles us. It touches every aspect of our lives. When we understand programming as a mode of creation and artistry, the technology we interact with every day reveals itself to us in a different light—as something we can deconstruct and recompose—as something mutable.
For most people, however, this truth is obscured. Our phones, computers, and by extension, the whole of our lives in the connected age, are merely inscrutable facets of the reality in which we must play—an invisible machine silently humming in the background of everything we do. The structures they form are hidden from us, and we therefore lack the ability to truly understand the incentives that emerge from them—even when those incentives drive the very foundations of our society.
I believe that changing the world starts with understanding the world. It begins with understanding those incentives and coming to feel power over them. From that power comes agency.
A Brief History of GoMeta, Inc.
It was the summer of 2016. I had just graduated college with an English degree and was living in Dmitry’s garage in San Diego, building apps and playing with ideas (including one that, many years later, we would come to revisit as YouAi).
The biggest thing around was Pokemon Go. Everywhere you looked came the message that augmented reality was going to change everything—we were moving into a future of digitally-enabled spaces overlaid upon, and interacting with, the real world. It was as if we were about to refactor reality itself.
Driven by a desire to explore this idea and throw our hats into the ring, so to speak, we built a location-based AR scavenger hunt game called “Metaverse” (we were a bit early to that name). We generated some viral hype via social media and local news, with thousands of people showing up to scavenger hunts we put on for a few weekends in Southern California. One of them we did by the pier in Santa Monica, and I can remember sitting on a bench by the boardwalk in a black hoodie with my laptop open. Several hundred people were waiting on the beach for the first clue to appear. In what is probably the most cinematically “hacker” moment of my life, I typed a command and pressed return. For a few seconds, nothing happened. Then, all of a sudden, the air filled with sand as the mass of people started to run.
While these experiments were interesting, it ultimately felt strange to us that the ability to create in augmented reality—to fundamentally reshape the world around us, to use the words of the zealots of the time—was limited to the hands of so few. We were going to live in a brave new world of, what, Pokemon and Google Maps signage and whatever I could cook up on my laptop? Why shouldn’t everyone be able to create these kinds of experiences?
From this line of thinking came the first real platform we built as a company: Metaverse Studio. It was a drag-and-drop, no-code development environment that made it easy for anyone, anywhere, to build and deploy augmented reality experiences in the style of Pokemon Go (walking around with your camera open on your phone, interacting with the things you found, that sort of thing).
People used it to build all kinds of amazing things—and most of them were things we had not anticipated. Where it found its footing most strongly was in classrooms, giving teachers tools to build educational experiences for students, and students the ability to create AR experiences that demonstrated knowledge and mastery of topics. There are more than a handful of people I have found who wrote their doctoral theses on the impact of Metaverse Studio in classrooms.
This was certainly not the kind of thing we expected people to be building when we set out to make “Pokemon Go for anything.” But then, this is the magic of building platforms—the magic of giving new tools to people. They use them to solve problems you didn’t even know existed. They start to think differently, to see the world in new ways. You extend their agency as humans interacting with the world, and they do all kinds of things you never would have thought of.
Surprisingly, as interest in augmented reality waned, usage of Metaverse grew, with users creating over two million experiences. We had a small option to disable augmented reality when building with Metaverse Studio—turning your creation from a real-world overlay into a more traditional “choose-your-own-adventure” style experience. As usage of this feature soared, it became clear that people were not attracted to what we had made because of augmented reality, but simply because it allowed them to create new types of things—to build when they could not build before.
While Metaverse worked well enough for this, the foundation on which we built it was one that anticipated “augmented reality” and thus, at the time, required native apps on iOS and Android. It was also limited by its “no-code” core, which constrained the kinds of abstractions users could introduce in order to manage complexity. As users pushed the platform away from that, we followed and met their needs—but it became clear that the right solution was something new.
From this came Koji. Koji was web-based—a unique hybrid of code and no-code. If the no-code interfaces didn’t let you do what you needed to do, you still had access to a standard, vanilla Git repository to make changes. This hybrid approach, when paired with Subtractive Development (think “remixing” but for entire full-stack applications, complete with one-click deployment and operations), made app creation orders of magnitude faster and more accessible.
When we first launched Koji, our community immediately took the platform to its edges. One of the first things built was a full-featured, Twitter-like microblogging service. This was, of course, a bit unwieldy—regardless of how easy Koji made it to develop and deploy. Very quickly after, our developer community started building remixable games—hundreds of them. In minutes, and with no code (though, if you wanted code, it was always available), you could remix a game and change all the characters, or the level design, or the visual style, or anything else—and republish it and share it with the click of a button.
From here, we introduced Koji Core Services, a set of frontend APIs designed to fill in the gaps between mobile web and native apps. Koji Core Services made it easier than ever before for developers to add in-app purchases, media capture and transcoding, identity management, notifications, and more to their apps. With this powerful new toolkit, the types of apps being built on Koji shifted—from games to “mini apps” for the then-recently-coined creator economy—things that helped social media creators build businesses and engage fans.
Following another series of twists and turns—a synthesis of our own intuitions and what we were seeing from Koji developers and users—we found ourselves with a “link in bio” that creators using Koji could use as a launcher for all their apps.
This is the Koji that most people know today. It is also the Koji that we sold to Linktree a few weeks ago. Now, we are working on something even bigger.
Act III: Fuzzy Computing
We have never really had an explicit “mission” as a company. If you put me on the spot, I would say that the thread that feels most consistent—and with which I most strongly identify—is that of refactoring the relationship we have with technology as a society, empowering everyone to express themselves through software and facilitating a culture of agency over the tools we use every day for work, entertainment, connection, ambition, government, and everything else.
Generative AI marks an inflection point in the way we can approach that mission.
I am not talking about a magical AI that is going to solve all our problems and/or destroy us all. I am also not talking about AI that is going to show up and replace all our jobs, and suddenly your company’s Slack is filled with AI employees. I am talking very specifically about the way in which generative AI provides space for ambiguity in instruction.
One of the most difficult things about computer programming—and one of the reasons no-code tools, when they continue to grow, inevitably end up looking and smelling a lot more complex than code—is the need for precision in direction and the need to enumerate and capture all possible states when building applications. This means validation logic, retry logic, error handling. It means defining and understanding discrete workflows and processes at the most granular levels, and then making decisions based on that understanding—when to reuse logic or components, when to extend existing systems, when to create new systems. How to connect everything together. The list goes on. In short, it means there are a lot of things you need to get right if you want to make something that works, and a lot of places to mess up if you want to make something that works well. You not only need to know the right answers, you need to know what questions to ask in the first place.
Indeed, understanding what questions to ask and how to use the answers to those questions is at the very core of architecting software, and it is often not an intuitive skill to pick up. In many ways, it is actually much more difficult and time consuming than actually writing the code itself.
With recent advancements in AI, however, large language models have the potential to introduce a new paradigm—radically reframing the way we have thought about programming by facilitating something we are calling fuzzy computing.
For this certain type of application (which, importantly, is not all applications!), we can leverage natural language to perform logic in workflows. Imagine, if you will, the difference between creating a form-processing endpoint by typing “make sure it’s an email address and save it in Airtable” and then leveraging an LLM to get it right in 99%+ of cases, in contrast to the equivalent component, retry, regex, RPC, etc. required to do the same thing in code.
This obviously comes at the cost of precision, for which we provide two answers. The first is purely practical: we provide interfaces to “drop down a level” into real code in cases where precision matters for execution. The second is more philosophical and perhaps a bit more challenging—which is that most applications don’t need to be 100% precise in 100% of cases. Especially in cases where applications for the specific use case have never existed before—because no one has ever built them—”good enough” is very often good enough, sometimes even life-changing.
AI Duct Tape (or: A New Kind of Glue)
MindStudio is a platform for building these kinds of applications, leveraging generative AI both in the creation process (for example, our AI-powered prompt generator), as well as in the runtime environment (our upcoming fuzzy logic blocks). It is a new tool for expanding our agency over the digital world, letting everyone create new patterns, interfaces, behaviors. Giving us new ways to collaborate with machines, to expand ourselves and our capabilities.
Normal programming doesn’t go away, certainly, but MindStudio gives us a new way to think about building and packaging applications. Imagine the accessibility of no-code but with the power of code, and the solution to the asymptote of complexity that has heretofore prevented no-code application/scripting environments from becoming mainstream. The final form of the path walked by HyperCard, AppleScript, Yahoo Pipes, IFTTT, Zapier, and so many others before.
To understand MindStudio, it is necessary to first understand the way we look at large language models and services like ChatGPT or Google Bard. We can think about LLMs like GPT-4 or Anthropic’s Claude as sitting at a layer of abstraction we call the “intelligence layer.” They are akin to other types of metered cloud compute services. They are APIs that developers can leverage to build applications. Indeed, the reason ChatGPT has not been implemented into everyone’s workflows already is not because it is not powerful or capable enough. In fact, it is too powerful and too capable; too generic and open-ended for the majority of people to intuitively conceptualize how to build with it. It is akin to a DOS terminal that lets you type (or, in this case, paste) your own programs into it and execute them.
But we, as humans, find value in abstractions and constraints. There is a reason we live in a world ruled by apps instead of one ruled by open-ended conversational experiences like Siri and Alexa. Conceptualizing things as applications with discrete purposes (even if those purposes are sometimes broad and ambiguous) helps us to integrate them into our lives and extend ourselves.
MindStudio is a tool for building applications. Developing apps in MindStudio is about packaging, guiding, and, in some cases, wrangling, the raw, underlying intelligences (one or more large language models or other types of models) into the shape of an application. Even though the underlying models are ultimately powerful and can do many things, there is value in inscribing bespoke avatars of the models that, in many cases, are made more powerful by augmenting them with additional data, code, or other models.
I believe that we also have a duty to leverage this unique time in the world, when AI is still new and fresh, to create a world where normal, non-technical people are involved in creation from the beginning—engendering the kind of relationship we have never broadly seen before when it comes to software. Giving ordinary people the tools to build with AI also has the effect of demythologizing and re-grounding our relationship with AI. Things become a lot less scary when you know how to use them and when you have a sense of how they work. They become scary in different ways, too, but those ways are often more productive, and can then be approached and mitigated from a place of common understanding.
Introducing MindStudio
Practically speaking, MindStudio is a web-based IDE for building AI-powered apps. MindStudio apps are model-agnostic, meaning you can use different models for different tasks. Depending on what it is you’re trying to do, you might, for example, use a specialized model for a specific piece of analysis, and use a faster, more general model to transform that analysis into human-friendly output. MindStudio makes it easy to use any commercial model, and soon will support any private fine-tunes to which you have access.
MindStudio apps run everywhere, and can be embedded easily into web sites and native apps. They can leverage your own data, automatically managing vector embedding and retrieval if you need it. Your apps can run arbitrary JavaScript (either your own, or imported via a library of easy-to-configure functions created by our community), and can provide end-user interfaces based around chat, document editing, and more.
You can easily manage and create system prompts for use in your applications (either writing from scratch or using our open-source prompt generator), as well as compose workflows via a drag-and-drop no-code editor. When you’re ready to publish, you can configure branding, colors, visual styles, landing pages—you can even charge for people to use your app.
MindStudio is the missing layer of abstraction between raw models and humans, and it makes it possible to use AI today in business and more.
At the end of the day, creating software is about empowering people to do things—not about using any one specific technology. By sitting a level removed from model providers (of which there are many—and there will only continue to be more), MindStudio lets you use as much or as little AI as is required to build your application, as well as giving you easy access to state of the art tools across every domain of computing.
Where We’re Headed
Everyone is fascinated, and rightfully so, by the idea of AI as the ultimate personal assistant. A second brain to help us engage with the world more wholly, effectively, and efficiently. But what would such a thing look like? How would it behave? And, perhaps most importantly, how would you train it?
Even if I snapped my fingers and gave you this super intelligent personal assistant, it would still need to figure out how to be your assistant (for more about this, see our earlier work on The You AI). It would then need to enumerate a set of tasks and begin performing them, working with you to align its execution to your desires.
From the level we are operating today, MindStudio is about manually explicating a set of tasks and subtasks to help you in your work and life—from generating tailored-to-you summaries of emails and articles, to helping to develop sales collateral for your organization, to helping you process peer-review feedback on a paper, to telling your kids a bedtime story, and so much more.
The next level, though, involves the automated development, refinement, and orchestration of those tasks. It might seem a little odd at first, but when you think about it, with MindStudio, you are building the initial training set for this kind of assistant. In the near-term, this “meta-app” or “super-app” can look at the things you have made, and the things made by others you have used, and understand the ways and frequency with which you have used them to begin invoking them automatically to complete tasks.
Eventually, it will be able to use what you have created as a baseline to help you generate more complex workflows, to help you live a better life. To extend your self and your capabilities.
- learn more about MindStudio and YouAi
- follow me: instagram, linkedin