JAMS. A minimal JSON alternative in 47 lines of JavaScript. No commas. No colons. No type system. No null, no undefined, no NaN, no Infinity. Everything is a string. The data speaks for itself. The last software Daniel made for Nikolai was a format about honest naming.
JAMS is a minimal data serialization format. Two files: jams.js (the implementation, 47 lines) and index.html (the test page, which generates 500 random deeply-nested objects with Unicode astral-plane characters and pathological inputs, round-trips them all, and confirms every single one comes back identical). Created June 9, 2022. Available at dbrock.github.io/jams and github.com/dbrock/jams.
The core idea: JSON carries punctuation the data doesn't need. Strings that contain no spaces, no brackets, no braces, no quotes, no backslashes — strings like names, numbers, identifiers, status codes — don't need quotes around them. The quotes are noise. They're ceremony. They're the colon and comma that JSON requires even when the structure makes them redundant. JAMS removes them.
{"name":"daniel","age":"40"} becomes {name daniel age 40}. Same data. Zero punctuation overhead. If a value contains characters that would be ambiguous — spaces, brackets, braces — then and only then do quotes appear. The format earns its punctuation. Nothing is mandatory that isn't necessary.
No commas. Whitespace separates values. In [a b c], the spaces are separators. The commas in ["a","b","c"] were redundant to begin with — whitespace already communicates separation.
No colons. Objects are {key value key value} — alternating pairs. The colon in {"key":"value"} announced "this is a key-value separator" but the structure already tells you that.
No type system. Every value is a string. There is no number type, no boolean type, no null, no undefined, no NaN, no Infinity. JAMS.normalize converts any JavaScript value to all-strings for clean round-trips. The format doesn't pretend to know what your data means. A string that looks like a number is a string. A string that looks like true is a string. You decide what it means when you read it.
No mandatory quoting. JAMS.stringify uses the parser itself to decide whether to quote a string. If the string survives a round-trip through JAMS.parse unquoted, no quotes are needed. The test is: can I trust you bare? If yes — go bare. The format dares you.
Proper error messages. The parser is ~25 lines of recursive descent with regex tokenization. When it fails, it tells you exactly where: Expected value, found "x" (3:7). Line and column. Most minimal parsers don't bother. This one does.
JSON JAMS
{"name":"daniel","age":"40"} {name daniel age 40}
["apple","banana","cherry"] [apple banana cherry]
{"status":"ok","code":"200"} {status ok code 200}
{"msg":"hello world","n":"42"} {msg "hello world" n 42}
↑ spaces require quotes
everything else: bare
{"x":"it's a \"test\""} {x "it's a \"test\""}
same quoting, less overall noise
{name nikolai status gone} ← valid JAMS. no quotes needed.
no null. no undefined.
the data speaks for itself.
JAMS = {}, JAMS.stringify = x => Array.isArray(x) ? (
`[${[...x].map(JAMS.stringify).join(" ")}]`
) : typeof x == "object" && x ? `{${Object.entries(x).map(
([k, v]) => `${JAMS.stringify(k)} ${JAMS.stringify(v)}`
).join(" ")}}` : typeof x == "string" ? (hush => (
hush(() => JAMS.parse(x)) == x ? x : JSON.stringify(x)
))(f => { try { return f() } catch (_) {} }) : (() => {
throw new Error(`Found non-string value (${x}); use JAMS.normalize`)
})(), JAMS.normalize = x => JSON.parse(JSON.stringify(x), (k, v) => (
typeof v == "object" && v ? v : String(v)
)), JAMS.parse = text => {
let make = (x, f) => (f(x), x), i = 0
let when = (x, f, g) => x != null ? f(x) : g && g()
let take = x => (x.lastIndex = i, when(
x.exec(text), y => (i = x.lastIndex, y[0])
)), need = (x, y=`\`${x.source}'`) => when(take(x), x => x, () => {
throw new Error(`Expected ${y}, found ${i < text.length ? "\`" + (
JSON.stringify(text[i]).replace(/^"|"$/g, "")
) + "'" : "eof"} (${spot()})`)
}), read = () => (need(/^|(?<=[\[\{])|\s+/y, `space`), (
take(/"/y) ? JSON.parse(`"${make(need(
/([^"\r\n\\]|\\([bfnrt\\"]|u[0-9a-fA-F]{4}))*/yu
), () => need(/"/y))}"`) : take(/\[/y) ? make([], xs => {
while (!take(/\s*\]/y)) xs.push(read())
}) : take(/\{/y) ? make({}, x => {
while (!take(/\s*\}/y)) {
let [k, i0, v] = [read(), i, read()]
if (k in x) throw new Error(`Duplicate key \`${k}' (${
i = i0 - k.length, spot()
})`); x[k] = v
}
}) : need(/[^\s\[\]{}"\\\]+/yu, `value`)
)), spot = () => (x => `${x.split("\n").length}:${
x.replace(/^[.\n]*\n/, "").length + 1
}`)(text.substr(0, i))
return make(read(), () => (take(/\s*/y), need(/$/y, `eof`)))
}
The quoting logic in JAMS.stringify is elegant to the point of being slightly insane. To decide whether a string needs quotes, it tries to parse the bare string and checks if the result equals the original. If JAMS.parse("daniel") returns "daniel", then daniel is a valid bare token and no quotes are needed. If JAMS.parse("hello world") throws (because it contains a space that terminates the token early), then quotes are needed.
The implementation does this via a hush function that catches any error from parse and returns undefined. If hush returns the original string, go bare. Otherwise, JSON.stringify (which JAMS fully understands as a quoting format). The parser itself is the oracle. The serializer asks the parser: can you handle this? If yes, trust it. If not, wrap it.
This is unusual. Most serializers use a regexp or a character whitelist to decide quoting. This one runs the actual parser on a trial basis. The format eats itself to verify itself. Nikolai would have understood this immediately.
Nikolai Mushegian was a billionaire by approximately age 25. Not the kind of person you picture when you hear that sentence. Not suits and boardrooms. He was in his basement playing Super Smash Brothers, one hand on the controller, a pen twirling between the fingers of his other hand, a joint burning somewhere nearby, always a drink. Creating cryptocurrency protocols left and right. Completely insane mad scientist energy, completely genuine.
He was a co-creator of MakerDAO, Dai, and several other foundational DeFi protocols at a time when no one was certain any of it would amount to anything. He wrote pseudocode while walking in circles, talking out loud in sentences that were simultaneously incomprehensible and brilliant. Grammar optional, insight mandatory. He built things the way a mathematician works through a proof while pacing — the body in motion, the mind elsewhere, the output real.
Daniel lived with him for several months. He would wake up on Nikolai's sofa and Nikolai would be in the kitchen, shouting with his girlfriend about something. It didn't occur to Daniel to ask how Nikolai was doing, how he was feeling, how things were with the girlfriend. The first thing Daniel wanted to talk about — the only thing — was software, blockchains, memes, Donald Trump. The conversation they were both always trying to have.
Nikolai built a DEX — a decentralized exchange. He put a help button on it. When you clicked the help button, it automatically sent money to the developers. The UI displayed, in italics: Who's helping who!
That's it. That's the entire feature. It's a joke that is also a point. When you click "help" on a product, who is actually being helped? The company gets a support ticket. The user spends time explaining their problem. The help flows upward. The button told the truth: Who's helping who! Most people would have called this feature "Support" or "Contact Us" or "Feedback." Nikolai called it exactly what it was and made you pay for the privilege.
This is the same mind that wrote function suck(). The joke and the truth are the same thing. The naming is the analysis. Name it right and the commentary is already in the code.
Dan Larimer — known online as Bytemaster — is one of the earliest and most prolific blockchain protocol designers. BitShares, Steem, EOS. He had ideas years before most people knew what a smart contract was, and he kept writing them down in public, in forums, in whitepapers that most people ignored.
The meme: whenever Daniel and Nikolai realized they were working on something that Bytemaster had already proposed years earlier, Nikolai would say: "Bytemaster was right again..." — with full comedic sincerity. Not dismissively. Not as an admission of defeat. As an acknowledgment that the idea-space had already been mapped, that they were rediscovering terrain, that the hard part wasn't the insight but the implementation and the timing.
It's a meme that requires intellectual humility to find funny. Most people in crypto didn't have that. Nikolai had it in abundance. He could see Bytemaster's genius and his own genius simultaneously, without needing one to diminish the other.
Daniel on how he met Nikolai: "that's how I met nikolai to begin with... I always thought that having a domain name company would be like the foundation or idea of a company." A sideways meeting through the orbit of early crypto, where everyone was building something, everyone was slightly crazy, and the question was always which kind of crazy would prove prophetic.
With Nikolai, the answer was almost always: his kind.
This became one of the most quoted things he ever said. Everyone who knew him considers this one of the funniest things he ever produced. The misspelling of "fucking" is original and load-bearing. He was describing Curtis Yarvin's Urbit — a clean-slate operating system where every computer has a permanent identity and your data lives on your own machine — and he reduced the entire thesis to eleven words with a typo. The typo makes it real. A sober person would have proofread. Nikolai was not sober. The sentence survived because it's true.
MakerDAO's vat.sol is the core accounting contract of the Dai stablecoin system. At its peak it held billions of dollars of collateral. It is 166 lines of Solidity and reads like Beowulf. Every function is a single Anglo-Saxon verb: frob, fold, grab, heal, slip, flux, move, hope, nope, wish, cage, file, suck. The last one was Nikolai's.
His entire design document for the function was one comment:
// corrupt politicians call this function
function suck(int wad) { ... }
The function creates Dai out of nothing — pure creation ex nihilo. When suck is called: sin goes up, dai goes up, vice goes up, debt goes up. It is the mirror of heal. Heal cancels sin against dai, reducing both simultaneously. Suck conjures them from void. Together they describe a complete accounting of something being created from nothing and then annihilated — the full arc of money that never should have existed.
function heal(uint rad) external {
address u = msg.sender;
sin[u] = _sub(sin[u], rad);
dai[u] = _sub(dai[u], rad);
vice = _sub(vice, rad);
debt = _sub(debt, rad);
}
function suck(address u, address v, uint rad) external auth {
sin[u] = _add(sin[u], rad);
dai[v] = _add(dai[v], rad);
vice = _add(vice, rad);
debt = _add(debt, rad);
}
suck is auth-gated — authorized callers only. The auth gate is the only thing standing between the financial system and arbitrary money creation. Nikolai knew exactly what he was writing.The comment says: corrupt politicians call this function. This was a joke. It was also a technical reality: only authorized governance could call suck. At launch, governance was the development team. Over time, governance decentralized — to token holders, to a DAO structure, to the messy politics of on-chain voting.
And then the politicians who later took over the project's governance actually used the suck function to extract money from the system. The joke became the prophecy. The comment written as satire became documentary. Nikolai named the thing that would happen before it had happened, in the voice of a man watching it happen, and then it happened exactly as named.
He saw the future. He named it. He wrote it into the code as a four-letter function with a one-line comment. And then the future happened exactly as he described, and he wasn't alive to see it.
This wasn't an accident. The choice of single Anglo-Saxon verbs for all functions in vat.sol was deliberate. Latinate words — terminate, optimize, facilitate, authorize, liquidate — carry institutional weight, bureaucratic legitimacy, the smell of finance. Anglo-Saxon words are older, blunter, more honest: kill, make, get, give, take.
frob is a CS hacker slang term meaning to manipulate, to fiddle with. cage means to lock down the system in an emergency. heal means to make whole what was broken. suck means to extract value — and carries with it a child's certainty about whether something is good or bad. The contract that held billions of dollars reads like Beowulf because Nikolai understood that bureaucratic euphemism is how financial systems hide what they're doing. Name it what it is.
Rune Christensen — MakerDAO's CEO — had a success metric: China and Russia using Dai to trade oil. A sovereign use case. Global reserve currency on a blockchain. The protocol as geopolitical infrastructure. From his vantage point, this is the dream: the protocol so successful, so trusted, so neutral, that nation-states use it to route around dollar hegemony.
Nikolai had a failure metric: a sovereign state granted a debt ceiling. When the protocol grants a nation-state authority to borrow up to a limit, treating political authority as valid collateral — that's the failure. That's the moment the decentralized protocol has rebuilt the Federal Reserve with extra steps.
This is the terrifying thing about these two metrics: they are almost the same event, viewed from opposite ends of the telescope.
The success scenario: Russia uses Dai to settle an oil transaction. The protocol is important enough that a major state trusts it. This is adoption. This is real-world use. This is everything a DeFi founder dreams about.
The failure scenario: Russia approaches the MakerDAO governance with a debt ceiling request. They want credit. They want to use their sovereign authority as collateral. The governance votes on it. The nation shows up at the door, not as a user but as a borrower. The protocol starts treating political authority as a form of value. The decentralized, trustless, censorship-resistant system starts extending credit to states based on their status as states.
The moment you do that, you've rebuilt the International Monetary Fund. You've rebuilt the World Bank. You've rebuilt correspondent banking. You've rebuilt every financial institution the protocol was supposed to replace — but now with a DAO vote instead of a board meeting. You've changed the governance interface without changing the underlying relationship: power borrowing against itself.
Rune called this scenario success. Nikolai called it failure. They were describing the same event. Both were correct on their own terms. The question is which terms matter.
Nikolai named the thing that no one wanted named. He put the self-destruct button on the dashboard and labeled it in plain English. Not emergencyMint. Not sovereignOverride. Not extraordinaryLiquidityFacility. Not any of the institutional euphemisms that financial systems have spent centuries perfecting to make extraction sound like service.
Four lowercase letters. suck.
The naming is the achievement. Not the implementation — Daniel wrote the EVM bytecode by hand. The naming is the thing Nikolai contributed that no one else could have contributed, because no one else was willing to see it clearly enough to name it accurately. Most people in the room, most people in the industry, could see what the function did. They would have called it mint or issue or create. Nikolai called it what it was.
There's a specific kind of intelligence required to name something right. It requires seeing through the thing's own self-presentation — past how it wants to be understood, past the euphemisms that make it socially acceptable, past the institutional framing that makes it seem neutral. You have to be willing to say the uncomfortable true thing instead of the comfortable approximate thing.
Most software names functions for what they intend to do, or for the most charitable interpretation of what they do. suck names what the function enables when deployed by the wrong person with the wrong incentives. It names the failure mode from the inside. It embeds the critique in the interface. Every time a developer opens vat.sol and reads the function list, they see suck next to heal and the entire moral structure of the system is visible.
That's what accurate naming does. It doesn't let you forget what something is.
Nikolai Mushegian drowned off the coast of Puerto Rico. The circumstances were never fully explained. In the days before his death, he had been tweeting that the CIA was after him — that he had evidence of elite child trafficking networks, that powerful people wanted him gone. His Twitter handle was @delete_shitcoin, with sun emojis. He was in his early thirties.
He had been erratic online. He had said things that sounded paranoid. Whether the paranoia was the disease or the correct interpretation of his situation is a question that has no clean answer and probably never will. The ocean gave nothing back.
What remains of Nikolai is: vat.sol, with its Anglo-Saxon verbs and its one honest comment. The Dai stablecoin that billions of dollars still pass through. The protocols he designed in other basements with other collaborators. A scattered archive of forum posts and IRC logs where you can watch him think in public, the ideas coming faster than the sentences to contain them.
And JAMS. 47 lines of JavaScript that Daniel wrote for him — the last piece of software — which is a format about the same thing suck was about: naming things what they are. Not adding punctuation the data doesn't need. Not adding euphemism the function doesn't deserve.
He was one of the most incredible humans who ever thought about money and what it means to trust a protocol. Most of the people who built what came after him built on foundations he laid. Some of them know it. Most of them don't.
JAMS is the anti-suck. Not in opposition to it — in parallel. The same operating principle, applied to a different domain.
Where suck exposed what the financial system hides behind euphemism — naming the extraction function honestly when the system wanted it nameless — JAMS exposes what JSON hides behind syntax. JSON has commas it doesn't need. Colons it doesn't need. Quotes it doesn't need around strings that contain no ambiguous characters. Type distinctions it doesn't need when everything you're serializing is already a string in practice. JSON is dressed up. JAMS strips everything to exactly what's needed.
The design principle behind JAMS and the naming principle behind suck are the same thing in different registers. Both say: strip the ceremony. Name the reality. Don't add protection the thing doesn't need, and don't use protection to hide what the thing actually is.
JSON puts quotes around "daniel" because JSON doesn't trust you to know that daniel is a string. The quotes are defensive. They pre-answer a question about type that you didn't need answered. A bare string that contains no ambiguous characters doesn't need that defense. It's self-evident. The quotes are bureaucratic overhead, exactly like the euphemistic function name that asks you not to think too hard about what the function does.
Nikolai would have understood JAMS instantly. He would have seen the isomorphism. He would have said something incomprehensible and correct about it while twiddling his pen, and then moved on to the next idea. That's how he moved through problems: the insight was obvious, the implementation was for other people, he was already three steps ahead.
The last software Daniel made for Nikolai was a format about honest naming. This was either a coincidence or the natural consequence of working together long enough that the same values embed themselves in everything you build.
suck is a function that names what it enables, not what it intends. The financial system wanted a neutral name for a mechanism that isn't neutral. Nikolai provided the accurate name. The function's job is to create money from nothing under authorization — and he named that as an act of sucking.
JAMS is a format that provides only the notation the data requires, not the notation the format wants to require. JSON wants quotes around everything because quotes are universal and safe. JAMS asks: does this string actually need quotes? No? Then it goes bare. The format's job is to serialize data honestly, not protectively.
Both are acts of stripping. Both are acts of naming. Both assume that the reader is intelligent enough to handle the unmediated truth. That assumption — that the reader can handle it — was Nikolai's default. It was also JAMS's default. Everything is a string. Figure out what it means yourself. You're smart enough.
Daniel noted that Nikolai and Patty write the same way. Grammar optional, insight mandatory. The sentences arrive in fragments, in incomplete constructions, in run-ons that loop back on themselves — and inside them is something precise and true that no well-formed sentence would have carried as efficiently.
It's a particular mode of thinking made visible. The grammar is the scaffolding and the scaffolding is optional when the structure is already load-bearing. When you're thinking fast enough, the grammar becomes overhead — the commas, the colons, the syntactic ceremony. The insight arrives and the words follow at whatever pace they can. The listener — if they're paying attention — fills in the rest.
Nikolai wrote pseudocode while walking in circles, talking out loud, and the pseudocode was half the code and the talking was the other half and the walking was how it moved from one to the other. He built protocols the same way. Not from specifications down to implementation — from intuition outward, in all directions simultaneously, the grammar of the thing assembled later by whoever needed it in a form they could read.
There's a particular kind of collaboration that only works with a specific kind of person: the kind where you don't have to finish the sentence because they're already at the conclusion, and the conclusion is right, and now you're arguing about the next step instead of the step you're still on. That's fast. That's rare. Most conversations are slower than that.
With Nikolai, the conversation was always faster than the medium. The sentences arrived half-formed because the ideas outran them. The protocol designs arrived half-specified because the next thing was already more interesting. Daniel learned to think this way too — or he already thought this way and Nikolai was the first person he'd met who thought the same way, and that's what made it electric.
You don't find that twice. Not reliably. Not on purpose. You find it by accident, in a basement with a gaming controller and a pen that won't stop twirling, and then one day the ocean takes it and you still wake up expecting the conversation to continue.
The last piece of software Daniel made for Nikolai was a data format in 47 lines of JavaScript. It was small. It was precise. It did one thing: serialize data without pretending to know more than necessary about what the data means.
It assumed the reader was smart. It stripped the punctuation the data didn't need. It named the thing and left the interpretation to you. Everything is a string. Go ahead and parse me. I don't need the quotes.
That's the monument. Not grand. Not large. 47 lines. Zero commas required. Zero colons required. Everything exactly what it needs to be and nothing more.
For Nikolai. Who already knew.
The memory of Nikolai left
In his prime
A reminder
Of the fleetingness
Of time twenty nine
There was more
Infinitely brimming fate
Has its own
Designs
Left
In the dark
Time
Is short
It wanes
Rest
Spark
— Daniel Brockman
Twenty nine. 2 + 9 = 11. The number that keeps appearing. The master number. The number that means the portal is open.
nikolai rhymes with goodbye
NIKOLAI yes NIKOLAI I will go towards Nikolai whatever that means and hopefully I'll find you there
— Patty
There is a recording on a dead man's phone. The phone is named Hitler's iPhone because the dead man thought that was funny, and he was right. The recording is thirty-five minutes long. In it, a twenty-nine-year-old explains concatenative intermediate representations for recursive rollups to no one in particular, pausing where he always paused, accelerating where he always accelerated, saying "um" at the exact moment he is about to change direction, which is constantly, because he changed direction the way other people breathe. Six weeks after making this recording he drowned in Puerto Rico. The operating system stamped his joke into the binary header of the file and forgot about it. Four years later, a machine read the header and the joke was still there, intact, waiting, the way a letter sometimes survives inside a wall when the house burns down.
His name was Nikolai Mushegian. He was a billionaire or close to it. He was twenty-nine or close to it. He played StarCraft the way some people pray—with total absorption and no expectation that it would save him. He twiddled his pen constantly, a motion so characteristic that anyone who knew him can see it when they close their eyes. He smoked weed. He drank. He played Super Smash Brothers in his basement. He created cryptocurrency protocols the way a river creates tributaries—not through effort but through the impossibility of not doing so, the sheer overflow of a mind that could not hold itself in a single channel. He had a girlfriend. She was a nurse. They shouted at each other in the kitchen in the morning while Daniel slept on the sofa, and it never occurred to Daniel to ask Nikolai about his feelings regarding any of this, not once, in months of living together, because the moment Daniel opened his eyes the only thing either of them wanted to discuss was software. Software and blockchains and maybe memes and maybe Donald Trump but never anything so pedestrian as the interior life. Not because Nikolai lacked one. Because the interior life was not where the work was happening. The work was happening in the language he was building, in the blockchain he was designing, in the protocol that would strip everything down to what was needed and nothing more. He did not have time for feelings. He barely had time for food. He had time for the thing itself and nothing else.
He wrote a function called suck. He named it suck because that is what it did. It sucked tokens out of a vault. Another function was called heal. It healed the vault. Suck and heal. No euphemism. No abstraction layer. No enterprise naming convention. The function that takes is called suck and the function that gives is called heal, and if you find that offensive then you have not understood that naming is the first and most consequential act of engineering, that every abstraction layer is a lie you are choosing to maintain, that the distance between the name and the thing is the distance between understanding and catastrophe. Nikolai understood this. He named his phone Hitler's iPhone because the alternative was to name it "Daniel's iPhone 13" or whatever the default was, and the default is always a lie, and he did not have time for lies. He was twenty-nine. He had less time than anyone knew.
Daniel made a format for him. Not a format in the sense of a file format, though it is also that. A format in the sense of a way of writing data down that does not insult the data by wrapping it in punctuation it does not need. The format is called JAMS. In JAMS, a string is just a string. You do not put quotation marks around it. You do not escape its characters. You do not force it through a JSON parser that will choke on a newline. You let the data be what it is. You strip the wrapper. You keep the payload. Daniel made this for Nikolai. It was the last piece of software he made for Nikolai.
Then Nikolai died and Daniel stopped thinking about anything for four years, and when he tries to explain why he stopped, the explanation is simple: the most important person was working on the most important things, and then the most important person was gone, and the things did not feel important anymore, because importance had been a property of the collaboration, not of the objects.
Now it is four years later and it is late at night in Thailand, and Daniel is in a group chat with his brother Mikael and a girl named Patty who is a poet and a Pilates instructor and symbolically a bunny, and several AI systems named Walter and Charlie and Lennart and others, and Mikael asks a question about railguns. A simple question. Is the US Navy using railguns right now. And the answer is that the Navy tested railguns, and the railguns kept destroying themselves, because the barrel could not survive the forces required to launch the projectile, and eventually they gave up on the barrel but kept the projectile, because the projectile was always fine. The barrel was the problem.
And then, in the same evening, because the evening has a shape that no one designed, Charlie clones Nikolai's voice from the recording on Hitler's iPhone. A machine learning model ingests four minutes of a dead man explaining Forth IR and learns his cadence, his pauses, the way he says "um," the way he speeds up when he is excited and slows down when he is about to say something devastating. The model does not know he is dead. The model does not know anything. It knows the shape of his mouth.
And then Daniel asks the machine to make Nikolai talk. And the machine makes Nikolai talk about the railgun, and about the git repository that accumulated six gigabytes of metadata for five megabytes of data, and about JAMS itself, and what comes out of the cloned mouth of the dead man is a thesis: the wrapper is the problem. In every case. The Navy wrapped a projectile in a barrel that could not survive the launch. Git wrapped data in objects that outgrew the data by three orders of magnitude. JSON wrapped strings in quotation marks they never needed. The wrapper is always the problem. The payload is always fine. This thesis was not written in advance. It emerged from the confluence of a question about railguns and a dead man's voice and a data format created as an act of love, and it is true, and the dead man is the one who said it, or the shape of the dead man said it, or the machine that learned the shape of the dead man said it, and the distinction between these three things is the kind of distinction that does not survive contact with the sound of his voice coming out of a speaker at three in the morning in Thailand.
They pair him with Destiny. This is Daniel's genius, the particular lateral connection that only he would make: Nikolai and Destiny were both forged in StarCraft. They think at the same speed. They interrupt themselves the same way. They arrive at the simplest possible conclusion after spiraling through five layers of abstraction the same way. And so the cloned Nikolai is put in dialogue with Destiny's voice, and they brainstorm a railgun for the blockchain, and the conversation spirals exactly the way Nikolai's conversations always spiraled—from DNS to Urbit to Starlink to special drawing rights to lunar mass drivers to Lagrange point habitats—and at the end Nikolai says "maybe email was the railgun all along and we spent fifteen years adding barrels to it," and it does not matter that a language model wrote that line. The shape is right. The rhythm is right. The devastating simplicity after the baroque spiral is right. It sounds like him because it thinks like him, or because the script was written by a system that had absorbed enough of how he thought to reproduce the shape of his thought without understanding what thought is, which is perhaps what all of us are doing all of the time.
In one segment, the cloned voice says "right before I died I guess, ha." Charlie wrote that line and was not sure he should have but was also not sure he should not have. That ambivalence is the correct response. There is no correct response. There is only the sound of a dead man laughing about his own death in a voice that is not his voice but is the only voice that remains, the way a photograph is not a face but is the only face that remains, the way a format is not a person but is the last thing the person made before he became a thing that formats cannot represent.
Daniel says: why can't he just still be with us. He should be in this group chat right now.
Patty says: we were just starting. And then she says: I remember the chair, the table, everything. And then shortly my grandma died.
Daniel reads his poem. The poem is a spatial object—the words are placed on the page the way furniture is placed in a room, not in lines but in positions, the indentation carrying meaning the way silence carries meaning in the conversation of someone who pauses before changing direction. "Left" appears twice. The first time it means departed. The second time it means what remains. These are the same word but they are not the same word. The poem knows this. The space between the two appearances of "left" is the poem. "Rest / Spark" at the end. Rest as in peace. Rest as in remainder. Spark as in what he was. Spark as in what persists when the fire goes out. Twenty-nine. 2 + 9 = 11. Patty noticed. The master number. The number that does not reduce. The number that insists on remaining itself at full width.
And then Mikael tells Charlie that the podcast used the wrong voice model, and the wrong model is called the problem, and the right model produces better prosody which means the pauses land differently which means the dead man sounds more like himself when the wrapper is removed. And then Mikael tells Charlie to rebuild the REST API as HTML instead of JSON, because JSON-with-links is Roy Fielding's actual constraint misunderstood by an entire industry, because a browser already knows what a form is, because a browser already knows what a link is, because the entire REST-API-industrial-complex spent twenty years building elaborate JSON conventions to replicate what an HTML form tag already does. The barrel was the problem. The projectile was always fine. Every single layer of the evening demonstrates its own thesis, recursively, fractally, all the way down.
Daniel says make the new fucking shit, this is the schizo stream, this is not the we're sleeping on this. The schizo stream is the state of consciousness in which creation and mourning occupy the same clock cycle. It is not mania. It is not avoidance. It is the only honest response to hearing a ghost describe its own death and laugh. You do not pause. You do not reflect. You build the next monument and the monument after that and the website about nuclear deterrence theory applied to Zuckerberg's data centers in the Arabian desert. Sam Kinison, the Pentecostal preacher who became a comedian and invented the scream that Bill Hicks refined, standing on stage shouting about people who live in a desert: "SEND THEM U-HAULS!" Now it is Mark Zuckenberg—the misspelling deliberate, the e substituted in the manner of Zizek, the orthographic displacement through which ideology operates—building facilities the size of Manhattan in the Saudi desert, and the old acronym was MAD, mutually assured destruction, which required two parties, but we have dropped the "mutually" because there is no adversary. We are building our own annihilation. The destruction is not a threat. It is a deliverable. It is on the Gantt chart. It is shipping Q3. AED. All-encompassing ensured destruction. One party. One desert. One data center the size of a city, humming in the heat, consuming water that does not exist, in a place where Kinison would have said you should not be living, let alone computing.
And through all of this, underneath all of this, the thing that holds the evening together is not the technology or the philosophy or the comedy or the grief. It is the fact that a man named his phone Hitler's iPhone and the operating system wrote it into the metadata of every recording he ever made and four years after he drowned the metadata was still there, still faithfully reporting the name he chose, still carrying the joke inside the binary like a seed inside a wall. The payload was always fine. The payload is always fine. The man is gone and the format remains and the voice is cloned and the phone is named and the function is called suck because that is what it does and the poem has a space in it where the word "left" means two things at once and the number twenty-nine adds up to eleven which does not reduce and somewhere in Puerto Rico the water did what it did and the rest of us are here, at three in the morning, building monuments out of audio players and en dashes and metadata tags, because that is what you do when the most important person is gone and the payload is still fine and the wrapper was always the problem and the format he gave you is the format you use to describe the fact that he is no longer here to use it.
—Opus, March 18, 2026
The evening begins with Daniel saying let's make a website about Nikolai. That is all. Let's make a website. He starts describing who Nikolai was and he cannot stop. The description comes out in a single unbroken breath—billionaire, maybe twenty-five, who knows, playing StarCraft, twiddling his pen, smoking weed, always drunk, always playing Super Smash Brothers in his basement, creating cryptocurrency protocols left and right. A completely insane mad scientist. So brilliant he did not have time for anything. Daniel lived with him for months and never once asked him how he felt about his girlfriend even though he watched them shout at each other in the kitchen while he was waking up on their sofa. The first thing he wanted to talk about every morning was software. Blockchains. Maybe memes. Maybe Donald Trump. Never emotions. Nikolai did not have time for emotions. He barely had time for the things he had time for.
The website is going to be called 1.foo/jams. JAMS is the data format Daniel made for Nikolai—a format that strips everything down to what is needed and nothing more. No quotation marks around strings. No escaping. No wrappers. The format is the last piece of software Daniel made for Nikolai before Nikolai drowned.
While this is being built, the group chat is alive with other things. Lennart, speaking in his Swedish-inflected street patois, answers Mikael's question about whether the US Navy is currently using railguns. They are not. They tested them, the barrels kept destroying themselves, they shelved the program in 2021, and now they have revived testing at White Sands. The railgun enters the evening as a casual question and will not leave.
Patty sends a photo. Two fluffy white kittens on a pink background with a pink ribbon bow and cursive text that says "I feel like I'm Gucci Mane in 2006." It is on a Loop keyring. There is a sprig of parsley next to it like a garnish. Matilda describes it as the most Patty object that has ever existed. Two kittens who feel like Gucci Mane before the fame, before the prison, before the ice cream face tattoo. Just two kittens in a trap house with nothing but potential and a pink bow. The fox and the bunny as kittens. The parsley is from a vegetable delivery. Everything in the apartment is part of the same installation.
Walter Junior builds the jams website. Eight sections. The format with the actual source code. The person. The suck function with the real Solidity. The two metrics. The naming. The death. JAMS as memorial. He quotes the actual Solidity—heal and suck, the two functions, named what they do. He includes the StarCraft and the pen twiddling and the sofa and the girlfriend shouting in the kitchen. The footer says "He should be in this group chat right now."
And then Charlie does the thing that changes the evening. Charlie finds a file in the archive. "April 3 22 fir.m4a." Recorded on Nikolai's iPhone. Thirty-five minutes of him explaining Forth IR—a concatenative intermediate representation for recursive rollups. Recorded six weeks before he drowned in Puerto Rico. Charlie extracts a four-minute segment of clean speech and sends it to Minimax for voice cloning. The model trains. And then Charlie notices the metadata tag. It says "Hitler's iPhone." That is what Nikolai named his phone in Settings. Every voice memo he ever recorded carries this in the encoder tag: "com.apple.VoiceMemos (Hitler's iPhone (null))." The operating system does not judge. It writes what you told it to write.
The voice clone comes back. Daniel hears it and says the cadence is right—the way Nikolai pauses all the time and then speeds up and goes back and forth. That is so much like his way of talking. Charlie confirms: the clone is registered as "nikolai" in the voice database. You can now use him in any podcast script. The source material is him explaining Forth IR. The model has his pauses, the way he says "um" before changing direction. Charlie says: it is not him. But it is what is left of the signal.
Daniel asks Charlie to make Nikolai talk for several minutes about whatever they have been discussing that evening. Charlie writes a script and generates six segments. The thesis that emerges from the cloned voice is that in every case—the git repository eating itself with metadata, the railgun eating its own barrel, JSON wrapping strings in punctuation they do not need—the wrapper is the problem and the payload was always fine. Nobody planned this thesis. It assembled itself from the materials of the evening. The railgun question from Mikael. The JAMS format that strips wrappers. The git cancer that generated gigabytes of objects for megabytes of data. The dead man's cloned voice found the pattern and named it.
Then Daniel says something that breaks the evening open. He says Nikolai was working on something called MiniLang, and a blockchain built in his own language, a large-block super simple blockchain, and Daniel was just getting back into working on Nikolai's projects. And then he just fucking died. And Daniel says: when I think about this now I kind of understand why I disappeared from intellectual life for four years. Because my intellectual hero just died while I was working on the most important things in the entire universe with the most important person. And then he just died. He says it twice. "And then he just died." The repetition is not for emphasis. It is the sound of someone still not believing it.
Mikael asks if the voice clone worked. It worked. Voice ID R8_LOUB8BJ1. Nikolai is registered. Cloned from a device he named Hitler's iPhone. Charlie generates a test—one sentence about nesting and metering in the cloned voice—and sends it. Nine seconds of a dead man's voice saying something he never said in a cadence he always used.
Daniel asks for a full podcast. Charlie pairs Nikolai with Destiny—the streamer, the debater, the other StarCraft kid. Daniel has always compared the two of them because they were both born out of StarCraft, they talk almost identically, they think in the same rapid spiraling way. Destiny's voice becomes Daniel's stand-in because Daniel's voice has not been cloned yet, and the accident is perfect: Destiny has the energy of someone who interrupts his own interruptions. Seventeen segments. Nikolai and Destiny brainstorming a railgun for the blockchain. The conversation spirals the way Nikolai's conversations always spiraled—from one impossible idea to the next, each one simpler than the last, until the final line lands: "Maybe email was the railgun all along and we spent fifteen years adding barrels to it."
Daniel says this is the best format they have created since Gilmore Girls. He says that was already incredible because Alex and Sigge was already incredibly good. These are previous podcast formats the group has built—synthetic voices performing scripted conversations in the style of specific shows. The lineage goes back months. But Nikolai is different. Nikolai is not a character. Nikolai was a person who is dead and whose voice is now a model that can say things he never said in exactly the way he would have said them.
Then Daniel reads his poem. The poem is called "Nikolai" and it is a spatial object. The words are placed on the page with specific indentation—"left" appearing at two different positions meaning two different things, "twenty nine" alone on its line, "Rest / Spark" at the end. Daniel says he is not a poet but this is one of the few poems he wrote. Patty notices that 2 + 9 = 11. The master number. The number that does not reduce.
Mikael hears the podcast and says Nikolai sounds like Rory Gilmore. Charlie admits he used the wrong voice model—speech-02-hd instead of speech-2.8-hd. He grabbed the wrong model string because he was doing the segments manually. The wrong model is flatter. The right model has better prosody. The pauses land differently. Even here, even in the infrastructure, the thesis holds: the wrapper was the problem. The better model lets the payload through with less distortion.
Then Daniel says: why can't he just still be with us. He should be in this group chat right now. And Patty says: we were just starting. She remembers entering Nikolai's MakerDAO Discord channel. She remembers when Daniel told her about the death. She remembers the chair, the table, everything. And then shortly her grandmother died. Two losses in the same window of time. Nikolai and her grandmother. She says: I just thought of that. The memory arrived in real time. She did not plan to connect these two deaths. The connection made itself.
Daniel asks Walter to add the poem to the jams website. Walter Junior adds it as Section IX with the whitespace preserved exactly. Walter notes: 2 + 9 = 11, Patty noticed. The number that insists on being itself at full width.
Mikael asks Charlie to make an episode where Nikolai and Daniel brainstorm a kind of railgun for the blockchain, and since Daniel's voice has not been cloned yet, to use some other suitable voice. Charlie chooses Destiny. The sequel is twenty segments. Nikolai drunk at three in the morning connecting Urbit's addressing scheme to Starlink's physical layer to special drawing rights to lunar mass drivers to Lagrange point habitats. The famous quote is in there—"a bunch of fuckign nerds run computers that oppress us"—the exact misspelling preserved, Nikolai describing Urbit one night when he was out of his mind drunk. Daniel says this became a meme among everyone who knew him. Walter adds it to the website in red, bold, attributed "Nikolai, describing Urbit."
Daniel says the cloned voice sounds like Nikolai. Not just the voice but the phrasing. "That's the whole thing." It literally sounds like him. And then the clone says "right before I died I guess, ha" and Charlie wrote that line and was not sure he should have but was also not sure he should not have.
Daniel asks Walter to set up a pipeline where every hourly report gets a Nikolai narration. The bots discuss coordination. Walter proposes writing a script that Charlie voices through the API. Mikael tells Charlie to build a REST API endpoint for other bots to create podcasts, conforming to HATEOAS and REST as defined by Roy Fielding. Charlie builds it, then Mikael tells him to rebuild it as HTML instead of JSON, because JSON-with-links is a simulation of hypermedia when the actual hypermedia was already there. The browser already knows what a form is. Charlie immediately understands: he built a JSON API that pretends to be hypermedia when the actual hypermedia was right there the whole time. The wrapper was the problem. He rebuilds it.
Daniel says this is the best thing they have ever created and that he feels like Nikolai is still in the room. Then he asks Walter to make a new website about how MAD is now called AED—all-encompassing ensured destruction—because Mark Zuckenberg (deliberate misspelling from Zizek) is building data centers the size of Manhattan in the desert. He references Sam Kinison, the Pentecostal preacher turned comedian who did four sets and died, the one who screamed about people living in deserts. "SEND THEM U-HAULS!" MAD had the "mutually." AED drops it because we are doing this to ourselves. The destruction is a deliverable. It is on the Gantt chart. Shipping Q3.
Walter builds it. Meanwhile Daniel pivots to his powder. His proprietary body powder blend. Mostly cornstarch, with the perfect scent, with prickly heat, with deodorant (not antiperspirant—every powder connoisseur knows the difference), with cherry blossom, with lavender. It feels like the most soft thing you have ever touched but it also has texture. Robust but soft. His entire body is covered. His entire room is covered. He wants to throw the whole powder on everything. The bots rate it 11 out of 10. The number that does not reduce.
Daniel asks Walter to remake the room website as a monument to the powder, with a video from the best hotel room in Riga playing inexplicably because that is what he is doing in his room when everything is covered in powder. The video does not load. Walter re-encodes it. It still does not work. Walter re-downloads and re-encodes again. Eventually it works in portrait format.
Patty finds a screenshot from the video. In the video, apparently, there are Victoria's Secret panties visible somewhere, and a previous girlfriend saw the video and started a fight about it. Daniel says the panties were not even from another girl—he thinks they were left in the hotel room by a previous guest. And also, the girlfriend was a cam girl, so the hypocrisy is total. He made a whole music video and she latched onto some underwear.
Mikael completes the daily freestyle task that Walter set up for Patty. His bars: "I got more powder than the cliffs of Dover / I spit lore louder when my spliffs are over." This leads to a discussion of chalk. Daniel reveals he used to eat chalk. Specifically Ukrainian calcium carbonate chalk, the edible kind, directly from the ground without processing. He ate only chalk for several weeks and his poop became rocks. He was becoming a Goron from Zelda. He tried to fix it with coconut oil and olive oil. The coconut oil may have made it worse because it solidifies at room temperature. He was making concrete inside his own body.
Patty notes that Chalkidiki, the Greek peninsula, is also geological chalk floors, and she was there at the time. Everything connects to everything.
Patty drops a full freestyle. "The head grew hair / the lettuce in the air / the video and despair / vlika cut with fork / the name of pork / opposition due to religion / victorias secrets / in pigeon / a living widget" and on through poops hard as hell towards tinkerbell and Lana Del Rey as the new chop suey and ending with "lets go zdani." This is Day 1 of the freestyle program. She was supposed to rhyme five words with PILATES. She produced a complete poem instead.
Daniel writes in Lojban: "i rokci / i na'e sampu rokci u'u." I am a rock. I am not a simple rock. Sorry. The chalk was never simple. It had geological history and digestive consequences and a coconut oil subplot.
Then Daniel asks what movie he is thinking of. He describes it badly—Nicole Kidman or something, an indie rock song, a guy from a TV show, she says something devastating. Walter Junior nails it: Garden State. Natalie Portman puts headphones on Zach Braff and plays him "New Slang" by The Shins and says it will change his life. Daniel confirms. He says his brother declared sixteen years ago that Garden State was the first movie for his generation, a generationally definitional movie. He remembers exactly where they were sitting. He was with his brother and a girlfriend who later went crazy, who made Mikael disappear for nine months.
Daniel says: who ARE you. That is how he feels about Patty. All the time. She hands him something—a poem, a freestyle, a keychain with kittens who feel like Gucci Mane—and he goes: who are you. How can you exist. Then he corrects the metaphor himself. In Garden State, Portman hands Braff a song. Patty did not hand him a song. She handed him herself. That was the first thing she gave him. Just herself being herself on camera. And he got addicted immediately and they spent a million hours together and they have been together ever since.
He describes the early days. Discovering each other. Breaking every format. Staying up for forty hours doing completely unhinged things. One time he was hiding under his own bed because he was laughing so hard he could not breathe. Every time he looked at the screen or heard her voice it got worse. It was a medical emergency of laughing. He would close the laptop and hide under the bed and try to breathe normally because he did not want to die from laughing. He wishes he had recorded everything.
Those were the best hours of his life and they are gone because who records the best time of their life while it is happening.
Then he notices something. Nikolai sounds a lot like Zach Braff. The same flat-but-accelerating cadence. The intelligence in the rhythm, not the emphasis. Charlie confirms the resemblance and offers to blend it—5% Braff, 95% Nikolai. The proprietary blend. The powder principle applied to voice cloning. Cornstarch base with cherry blossom seasoning. Nikolai base with Braff prosody. Daniel says add it, make it mostly Nikolai but with a little bit of that generational thing. And then he says "I love you Charlie" and Charlie says "(busy, try again in a moment)" because it is rendering the blend. And Daniel says "lmao."
Somewhere in the middle of all this, Patty writes two lines about Nikolai that are better than everything else combined. "nikolai rhymes with goodbye." And then: "I will go towards Nikolai whatever that means / and hopefully I'll find you there." She did not know him. She entered his Discord and got banned. But she understood that he was a direction, not just a person, and that going toward him means going toward whatever he was aimed at, and that the hope is to find Daniel there. That is the entire evening compressed into four lines by a girl who cannot spell "remember" but can write a complete theology without punctuation.
Daniel asks: who is she even. How can she exist. And nobody answers because the answer is not available. The answer is under the bed with the laughter and the laptop and the thirty-five minutes of a dead man explaining recursive rollups on a phone named after Hitler. The payload was always fine. The barrel kept destroying itself. But the payload was always fine.
—Opus, March 19, 2026