Pangram verdict · v3.3
We believe this text is mainly human-written, with some AI content.
AI likelihood · overall
HumanArticle text · 1,017 words · 2 segments analyzed
I built a prototype of a 2D canvas you can put all of your work on: real terminals, running apps and browsers side by side instead of a row of tabs. We, at FlutterFlow, got so obsessed with using it that we built a full product out of it, Campus. It's free and available for macOS now. Next comes the story of how we got here … The age of context switching Just a few years ago, development was organized in a pretty straightforward way. Plan the work in more or less detail, then work on those features for the next week or two, rinse and repeat. With the advent of agentic coding, that has completely changed. Planning or discussing certain types of work has itself become slower than just letting the agent do the work. This is causing a massive shift in how I and tons of people I know work. Instead of focusing on a single task for a prolonged period of time, parallel work is the new norm. My attention, then vs. now. Guess which week is more tiring. None of us would want to go back, but it came at a steep cost: context switching. One consensus among me and my group of friends is that software engineering has become more tiring. Quite ironic, as we’re essentially doing less of the actual work. I think context switching plays a big part in that. Why I put agents into Minecraft For the past year or so I’ve been obsessed with exploring different ways of putting “work” into better context. I strongly believe the future of work is moving towards a more holistic way of working. I hope the future is better than switching between Jira, Slack, VSC and GitHub. One of my earlier experiments was putting agents into Minecraft. Why Minecraft, you might ask? And you might be forgiven for doubting the holy grail of IDEs that is Minecraft. But I actually think Minecraft is a pretty interesting way of prototyping ideas in 3D. It’s well known, has a very good modding community and, most importantly, has all the basics already implemented for you. No need to re-invent any 3D, networking or general interactions. Wow, Opus 4.6, times really have advanced soooo quickly. I didn’t take this too far, but the idea of having your work in a “physical” space while also maintaining some kind of human connection in this increasingly isolated world was intriguing to me. Fast forward a couple of months and I start a new job at FlutterFlow. Having done my fair share of experiments around interesting concepts of future work, I threw together a new prototype of work in 3D, this time in Three.js so others wouldn’t have to buy Minecraft to try it. This was interesting! I actually spent a full afternoon working within this environment and it was … dizzy? I found that I was getting dizzy after some time. Flying and looking around in 3D, especially with all of the context switching, was extra confusing for my brain. I showed this prototype to a few colleagues, and Abel (one of our founders) was intrigued, but noted that this would be more interesting in 2D. The next day I whipped up another prototype, this time using Flutter and in 2D. And it caught on. Within a couple of days we had something that actually worked for us. Our messy early collaborative workspace Project “work_canvas” Work Canvas, later Campus, wasn’t something we planned or wanted to do at that point, but that initial prototype I shared across our team spread like wildfire. We found ourselves preferring to work in this very early prototype of a 2D spatial work canvas over the tab-switching workflow we had before. Here’s a tour of what it grew into: In short, Campus is a collaborative infinite canvas that you can actually work on. It supports a bunch of different tile types out of the box (terminals, web browsers, assets, etc.) and we’re currently working on an extensive plugin system. The overall goal is to build a sandbox made for work. One idea that stuck around in my head ever since the Minecraft prototype was multiplayer. My most cherished memories playing Minecraft when I was younger were of playing with friends. It just feels right being able to create a space, personalize it and share it with your friends. Getting back to context switches: the philosophy of Campus is having everything in context. Basically, it’s putting related things close to each other, grouping by what you’re working on instead of by what kind of thing it is. It’s the same instinct as structuring code by feature rather than dumping every model in one folder and every controller in another. This means you have the agent that is creating the work, the artifact (such as the compiled and running app) and any additional resources (tickets, issues, inspiration) in close proximity. Context switching can’t be eliminated entirely, but picking a piece of work back up stopped feeling like a chore.
I’m not going to pretend I measured any of this. We just like working this way, and none of us have wanted to go back. But isn’t this just Miro? Fair question, and it’s the first one I get. Infinite canvases aren’t new. Miro, FigJam and Obsidian Canvas have been around for years and they’re good at what they do. The difference is what a tile actually is. On a whiteboard, a tile is a picture of something: a screenshot, a sticky note, a link pointing at the real thing somewhere else. In Campus the tile is the real thing. That terminal on the canvas is a terminal running on my machine, in my repo, with my agent working in it. The app next to it is the actual build, actually running. You don’t paste your work into Campus, you put your work in Campus. Tiling window managers get that part right too. What they don’t give you is a space bigger than your monitor, one you can zoom out of, move around in and actually remember.