The canvas was always the interface — we just couldn't see it.
Performance teams have been drawing the same picture on whiteboards for fifteen years. Here's what changes when you take the picture seriously.
For most of the last decade, I worked at the edges of performance marketing. Running campaigns. Leading teams. Sitting in too many meetings about why a creative cycle that should take a week takes a month.
Every team I joined had the same picture on a whiteboard. Always. Before any campaign launched, before any creative was briefed, before any spend went live, somebody at the table got up and drew it.
A campaign at the root. Branches into platforms. Branches into audiences. Leaves into creatives. Sometimes annotated with budget chips. Sometimes scrawled with arrows showing audience overlaps. The exact ink varied. The shape never did.
Performance marketing was always graph-shaped. We just couldn't see it.
— Sep 2024
Then we'd close the whiteboard and open eleven tabs. Figma to design the hero. Photoshop to retouch. Premiere to cut. ChatGPT to draft the copy. Midjourney for the background plate. Excel to track the spec list. Notion to brief the team. The Meta UI for placements. The Google UI for budgets. Slack to coordinate the screenshots. A folder of mp4s named FINAL_v3_REAL.mp4 to send to the buyer.
And nowhere — not in any tool we used — did the picture from the whiteboard show up.
The whiteboard was right. The tools weren't.
If the whiteboard is the canonical representation of the work, every tool we use is a different lossy view of it. Figma compresses the canvas into pages. The Meta UI compresses it into rows. ChatGPT compresses it into a thread. Excel compresses it into a sheet.
Each tool is fine, in isolation. The problem is the round-trip. Every time the picture leaves the whiteboard and enters a tool, you lose information. Every time the work leaves the tool and goes back to the team for review, you re-create the picture from memory.
The cost of that translation is not a small overhead. It's the dominant cost of running a campaign. We surveyed 220 in-house performance marketers about how their week breaks down — the median spent 62% of their week translating between tools that should be talking directly.
So we built the canvas the picture deserves.
Macro is what happens when you take the whiteboard seriously. The campaign is a node. Platforms are nodes. Audiences are nodes. Creatives are nodes. Edges are real connections — not metaphors. Drag, branch, connect, and what you see is the campaign.
Concretely:
- Generation isn't a chat box — it's a node. Every prompt is a parent; every variant is a child. Branch any of them, walk back to any state.
- Publishing isn't an export — it's a connection. The graph IS the campaign that ships. Macro pushes the same shape into Meta, Google, LinkedIn, Reddit.
- Performance isn't a dashboard — it's the same canvas, with different chrome. ROAS, CTR, spend per node. The work and the metrics live together.
- Brand isn't a sidebar — it's a node, too. Drop a moodboard in, wire it to a creative, and every generation downstream inherits.
Once you make the graph the interface, things start to compose. A ZIP export becomes a serialization of the canvas. A multi-market rollout becomes a fan-out of the same node. A performance loop becomes a feedback edge from the metric back to the model.
What this is not.
It's not a chat box. It's not Figma. It's not an editor. It's not a dashboard. It's a canvas, and the canvas is the work.
It is also, deliberately, not a venture-backed land grab. I'm a one-person company. I'm not raising. I plan to stay small, customer-funded, and answer to whoever is running ads on Macro right now — instead of to a fund cycle.
If you've drawn the picture, you'll know.
I'm sure the abstraction Macro uses isn't right for everybody. But if you've ever stood at a whiteboard and drawn that picture before launching a campaign, you'll know what Macro is the second you open it.
Thanks for the time.
— Raghav
One short note when something ships, plus the occasional long essay. No clutter.