Josh Matz
← Back to writing

What kind of software is Notion?

This week, Notion announced a beta called Notion as Code. You define your whole workspace in TypeScript, teamspaces and databases and custom agents included, then deploy it through the API. The template repo is almost comically literal: change the code, run the CLI, and it updates the workspace rather than duplicating it. The replies were predictable. "You were a notes app bro." "Ai psychosis." "Notion is going through a substantial identity crisis rn."

The crisis is real. It just isn't Notion's. Most people's idea of Notion froze a few years ago, when it was a nicer place to keep notes, and they've been grading the company against that memory ever since.

They told you what they were building

That memory didn't come from nowhere. Many people found Notion as a personal tool: a place to keep notes, organize ideas, and build a second brain. But Notion described itself differently from the start. Its 1.0 launch pitched a unified workspace for teams, meant to replace the documents, wikis, and task managers people stitched together at work. Personal use was the way many people found Notion. It was never the whole ambition.

Once you see that, the scattered-looking moves line up. They bought Cron in 2022 and turned it into Notion Calendar so your time lives in Notion. They bought Skiff and built Notion Mail so your inbox lives there too. Meeting notes went into the app so the record of what got said lives there as well. They miss sometimes; Mail is being wound down in September. But look at the reason Notion gave for killing it: "As Notion agents have gotten more capable, we've seen more users hand off email workflows to them. Today, more than half of Notion Mail users manage emails without ever opening their inbox." Once something could do the work behind the interface, the interface was unnecessary.

The last year shows no flailing either. Notion 3.0 shipped autonomous agents in September 2025. Not a writing helper. Agents that could run for twenty minutes on their own and create or update hundreds of pages in a single pass. By May 2026 they had announced a developer platform around that: an External Agents API, an Agent SDK, a Markdown API built "for the way agents already think," database sync, and Workers as a hosted runtime. The framing was explicit: Notion is "the collaborative AI workspace where teams and agents work side by side." Notion as Code sits on top of all of it.

They even said out loud where the idea came from.

“an aspect of Notion's engineering culture that i appreciate is that we like to pay homage to great software by translating those ideas into the product in a way that everyone, not just software engineers, can use and appreciate, like databases, transclusions, etc. this one is inspired by tools used by devops and infrastructure engineers: terraform/pulumi. though it may sound unlikely, it turns out a lot of the concepts invented to manage servers apply to managing a notion workspace!”

Varun Rau, Notion engineer

Asked why TypeScript instead of Terraform, Notion's Max Schoening was blunter: "HCL is meh. This is modeled after Pulumi." Terraform makes you write infrastructure in HCL, its own configuration language, which gets awkward the moment you want a loop; Pulumi's whole pitch is that you write it in a real programming language instead. That's not the move of a team confused about its product. That's a team paying homage to a category it wants to join, and specific enough about which part of it to have an opinion on the config language.

And none of it departs from the original mission. Go back far enough and the notes app is the detour. The first thing Ivan Zhao and Simon Last built, years before Notion 1.0 shipped in 2016, was a no-code app builder meant to let "anybody create their own applications without writing a single line of code." That first version failed, and by 2015 the company was weeks from shutting down. What shipped afterward was the block-based workspace everybody knows, but the goal never moved. Zhao was still saying it plainly in early 2021: "Humans are toolmakers by nature, yet very few of us have the skills or knowledge to modify the software tools that we use every day. If Notion can help anyone build their own tools to solve their problems, then we will have done our jobs." A year and a half later he gave Sequoia the five-word version: "Notion's mission is about software tool-making." So notes were the on-ramp, not the destination. Some people shape through the UI. Developers shape through code. Now agents shape too. Code is a third hand on the same surface. You can disagree with the bet, but it's a coherent one, and they've been placing it in public for over a year.

Granted, wanting this is not special. Half the industry has wanted to be the one platform where all the work happens. I was at InVision, which wanted to be the collaboration platform, more or less the tagline, and that didn't work out. The ambition is a graveyard. So the question was never whether Notion wants it. The question is whether the product can hold it, and that's not something you settle by reading release notes. I got my answer by building on it.

Two wrong ways to measure it

Grade Notion as a note-taking app and the direction looks insane. Nobody asked their notes app for a CI pipeline.

Grade it as a database and it looks like a bad one. No enforced schema, no foreign keys, structure and content equally editable by anyone who wanders in. A database person sees drift and risk, and they're right. A hundred and fifty thousand rows of something important probably shouldn't live this way.

Both readings are fair. Neither lens is sufficient, and the thing they miss is the thing I ran into headfirst.

What I found building on it

I recently built a small public site whose entire backend is a single Notion database: fifty-some pages, kept current by agents that run research daily. The admin interface came free, filtering and views and inline comments, none of it built by me. I asked an agent to add a page explaining how the database works and what an edit does to the site so that humans and their agents could understand the system from inside Notion, without access to the code.

The project got built at all because Notion let us start before anyone had to ask permission. Anyone in a workspace can spin up a database or a page. A repo depends on a role you may not have. A company domain is a purchase you can't make. A database on real infrastructure is a request to engineering. None of that is wrong. Those controls protect security and reliability, but they also mean exploration can't start there. It starts where permission already is. So this started as a database someone already had built by hand. I duplicated it, pointed agents at the copy, and let them fan out. The repo, the domain, the deploy all came later, after the thing had proved itself, when their questions took seconds to answer. And if it never had proved itself, the research would still be sitting in Notion, browsable by the whole team. The worst case was a better database. That's a bet you take every time.

Why Notion and not a spreadsheet? Partly because it's where everything already lives (a bias, sure, but also the whole pitch). Partly because a research agent produces prose with fields attached, and a Notion row is also a page, so both halves are one object. Anywhere else the prose ends up as TipTap JSON or markdown stuffed in a column, illegible even to a technical person through a database GUI that shows you one small window of a cell at a time, until somebody builds an interface over it. And partly because Notion keeps pages visible in a sidebar hierarchy and expects you to navigate through links in the content. The same links work for people and agents. Google Drive doesn't work that way.

The second thing showed up mid-project. The daily runs needed a memory, somewhere agents could log what they'd found so they wouldn't repeat it. I could have added it to the existing database. Instead I spun up a separate one, because the site reads its state off page content that has to stay shaped a specific way, and I wasn't touching that contract for a research log. That's the opposite of the drift people fear: when structure is cheap to change, the worry goes, everyone mutates the database the site depends on until it rots. Because a new database cost nothing, I left that one alone. The cheapness protected the contract. It's also what iteration looks like on this substrate. Try it, look at it, adjust it, and none of the trying needs a meeting.

The day Notion as Code was announced, I tried to explain all of this to an engineer I've worked with for years, and opened with "I don't think I'm going to describe this very well." I didn't. His first read was "so… a static site generator?" The word I kept reaching for was "flexible," and every time it came out too small. In Notion, changes were a prompt away, with none of Git's ceremony. The explanation lived beside the data in plain English. With a database, I'd have to piece it together from the interface and code around it. Keeping all of that in sync is a huge share of what software engineering even is. This setup collapses most of it.

Once an agent can read those instructions and work directly with the data, it doesn't need a dedicated GUI. It can build a view for whatever you asked and throw it away when you're done. Since Notion 3.6, that view can be an interactive HTML block dropped right into a page, showing something no column or Markdown doc could. The interface stops being a thing you design and maintain and becomes a thing you generate and discard.

The word I was actually looking for

Not flexible, anyway. Flexible describes how the thing feels in my hands while I'm building, a producer's word, which is why it never lands on people who already build fine in Git or SQL. I tried discoverable too, but that only names how you find things, not how you shape them. The shaping is half the point.

I don't have one word, and I've stopped treating that as a vocabulary problem. The thing is a shared space that people and agents inhabit without a translation layer built for either of them, where you can find what exists, understand it by reading it, and originate structure without routing through engineering first. Discoverable, legible, shapeable, all at once. I need all three because the existing categories don't quite fit. A conventional database doesn't give you that. Calling it a notes app is too narrow.

What makes the surface shareable is simplicity, and the simplicity is also what makes it brittle. The contract lives partly in prose and partly in agents behaving well, and not everyone has the diligence to maintain that. I don't have to imagine the failure mode, because I've lived it: we ran a team workflow through Asana, someone reshaped the structure by hand, our code could no longer read it, and we took downtime for that workflow while we put it back. Notion is pitching Notion as Code as a way to reproduce a workspace. But repeatability also offers something existing workspaces have never had: a way to restore the structure your software expects. Whether the beta delivers that is an open question. That it's pointed at the right problem is not.

The engineer I was talking to would say the hardened platforms had this solved all along, and he's earned the position. Three decades in, he's watched engineering practices get thrown out the window before, and what you get, in his words, is more software but crappier software, and plenty of people willing to make that tradeoff. He's right that it's a tradeoff. Where we differ is on the price. Notion gives more people the ability to originate structure at all, and brittleness is the rent for that. For a lot of what people build, the rent is cheap. Half these things would never have existed under the old model.

The question I'd carry out of this isn't whether the tradeoff is fair. It's whether you know you're making it: what protects you in the meantime, and what would tell you it's time to graduate to something harder. For my site, protection is a daily backup. Something with more riding on it deserves more, and at some point the right answer probably is a real database after all. There's no general rule yet. For a category this new, that seems about right.

All of which is why the mockery deserves a closer look than it invites. "You were a notes app" isn't really a claim about Notion. It's what it sounds like when the mental model of software everyone carries stops matching the software being built. Interfaces are becoming things you generate and throw away. Structure is becoming something non-engineers and agents originate directly. The ceremony that used to decide which small tools were worth building is collapsing, and a long tail of software that never justified its own infrastructure is about to start existing. An entire crop of tools, Lovable and Base44 among them, is racing to widen that same lane. Notion just reorganized itself around all of this earlier and more publicly than anyone else. The whiplash people feel isn't a company losing the plot. It's the plot changing.