One Month of Spayse
A month in numbers, milestones, and lessons from building Spayse from scratch.
It's been one month since I started building Spayse. Today felt like a good moment to stop and look at what actually happened.
Where it started
The first version was rough. Really rough. Looking back at where it was on day one versus where it is now, the gap is kind of absurd.
What got built
Here's the rough timeline of the last 30 days:
- Researched the diagramming space using Perplexity, Claude, and LM Arena
- Outlined product positioning, vision, and the high-level feature set
- Started with React Flow, then migrated the entire canvas to Fabric.js
- Built the canvas editor: layers, properties, tools, exports, keyboard shortcuts
- Added snap-to alignment guides, undo/redo, proportional scaling, smart cursors
- Implemented connector autorouting with obstacle avoidance and elbow routing
- Built diagram-as-code with a custom DSL called Spayscript (.spy)
- Added AI-powered diagram generation, credit system, and rate limiting
- Shipped @spayse/mcp with 7 tools, supporting HTTP, stdio, and Docker
- Built the Spayse CLI to create, update, and manage diagrams from the terminal
- Improved AI generation quality, UX, CLI/MCP ergonomics, performance, and icon resolution
By the numbers
- 45 early users
- 540+ visitors
- 2,000+ page views
Key dates
- June 30: First diagram generated via diagram-as-code
- July 1: AI generation went live
- July 5: MCP server shipped
- July 9: CLI tool released
Still a long way to go.