What it does

Locus is one room for your entire system design process. Draw a diagram, write documentation, talk to teammates, and work with an AI that reads your canvas in real time rather than waiting for you to describe it.

Every node on the canvas is a typed JSON object. Every connection is a graph edge. The AI gets this graph on every turn, so when you ask it to add Redis between checkout and orders, it knows exactly what checkout and orders are, where they sit, and how they connect. It responds in the chat, draws the node itself, and moves its own cursor to where it is working. Voice is built in. Templates get you started in seconds. A summarise button turns your canvas into a structured handoff doc.

How we built it

The core is what we call the semantic canvas protocol. Every shape drawn or created on the canvas is not stored as pixels but as a typed operation on a shared JSON graph. Node added, edge connected, label changed, node moved. These ops are append-only, timestamped, and broadcast via SSE to every client in the room. Aurora DSQL keeps the state strongly consistent so two people in different regions always read the same canvas with no merge conflicts and no reconciliation.

The AI receives the full graph on every turn and responds with structured JSON: a message, optional canvas ops to apply, and a cursor focus node. The frontend applies those ops and animates the AI cursor to wherever it is referencing. Voice runs on Web Speech API for input and browser TTS for output, abstracted behind a single voice layer so the model can be swapped later.

Stack: Next.js on Vercel, SSE for real-time broadcast, Aurora DSQL for rooms and canvas persistence, Gemini 2.0 Flash for AI, Web Speech API for voice.

Challenges we ran into

Implementing the semantic canvas protocol was the hardest part. Every interaction a user has with the canvas, dragging a node, drawing an edge, switching between canvas and doc mode, editing a label inline, needs to produce a clean typed graph mutation that the AI can reason about without ambiguity. Getting that abstraction right across all interaction modes took most of the build time.

Aurora DSQL auth was also non-trivial. DSQL does not use passwords. It uses short-lived IAM tokens, and the official Node.js connector handles token generation automatically but the setup and Vercel environment configuration required careful handling to work correctly in a serverless context.

Accomplishments that we are proud of

The AI cursor. Watching it move to a node, draw a new one, and speak about what it is doing simultaneously is a genuinely new interaction that does not exist in any current collaborative tool. It is not a chatbot in a sidebar. It is a participant in the room.

The graph representation also means the AI gets full semantic context at a fraction of the token cost of a multimodal screenshot approach. A canvas with 20 nodes and 30 edges is a few hundred tokens of structured JSON. The same canvas as a screenshot costs an order of magnitude more and loses structural information in the process.

What we learned

Current collaborative whiteboards are surprisingly limited. During early research, the gap between what teams actually need and what Miro or FigJam offer was much wider than expected. They treat AI as a sidebar feature. The canvas and the AI live in separate worlds. The right fix is not a better sidebar but a different data model entirely.

The graph is the right primitive for AI-native collaborative tools. The canvas is just one way to render a graph. Once the underlying representation is a typed graph, everything else, AI context, real-time sync, structured export, doc mode, becomes significantly easier to build correctly.

What's next for Locus

Locus started as a stepping stone toward something more ambitious: a general proxy for giving AI meaningful context about visual information without the token cost of multimodal processing. A diagram is the simplest case. The next step is applying the same approach to richer inputs, sketches, photographs, scanned whiteboards, representing them as structured semantic descriptions that any model can reason about efficiently.

On the product side: multiplayer audio so the whole team can talk in the room, richer node types for specific domains like database schemas and API contracts, and a template library that covers the most common system design patterns out of the box.

Built With

  • aurora-dsql
  • aws-iam
  • gemini-2.0-flash
  • next.js
  • react-konva
  • server-sent
  • tailwind-css
  • typescript
  • vercel
  • web-speech-api
Share this project:

Updates

Submission history