Sododeck
Open app

Describe your system. Get a living map.

Your agent writes the architecture as one open file. Sododeck opens it as a living map: services, flows, rules and the tables behind them, on one canvas.

Runs with your own AI. Nothing leaves your browser.

Your agentsododeck skill
›Map our checkout: web, gateway, order
service with Postgres, payments, Kafka,
shipping. Include the checkout flow.
Writing checkout.sododeck.json
validate · 0 problems
Opening in Sododeck
JSON
valid
1{
2 "$schema":
3 "https://sododeck.com/schema/v1.json",
4 "version": 1,
5 "name": "Checkout",
6 "nodes": [
7 { "id": "order-svc",
8 "type": "service",
9 "title": "Order Service" },
10 …
11 ],
12 "edges": [ … ],
13 "flows": [ … ]
14}
checkout.sododeck.jsonFlow · Checkout
  • From a description, a codebase or Mermaid text
  • Validated before it opens
  • Laid out automatically

Step 2 · Explore

See the whole system, then just the part you need

Zoom out and cards become icons; zoom in and they show fields and tags. Focus a card to see only what it talks to, or open a group to work inside it.

Edge2
Orders2
Payments2
Messaging1
Fulfilment1
Cancel order
System30%
Edge2
Orders2
Client
Web app
Storefront
API gateway
API Gateway
Auth, rate limits
Service
Order Service
Creates the order
Database
Orders DB
Primary + replica
3 inside
checkoutPOST /orderswrites orders
Containers70%
Orders1
Service
Order Service
Creates the order
OTOrders team
TechGo
criticalpci
Components100%
Orders2
API GatewayOutside
Service
Order Service
Creates the order
Database
Orders DB
Primary + replica
3 inside
Payment ServiceOutside
POST /orderswrites ordersauthorize
Connection focusOrder Service
Focus
Payments2
Order ServiceOutside
Service
Payment Service
Authorises, captures
External
Payment Provider
Card acquirer, 3DS
order.placedOutside
authorizechargepayment.succeeded
CheckoutPayments
  • Saved viewsKeep a named camera and filter for each audience.
  • Auto-layoutArrange the deck in one step. Pinned cards stay where you put them.
  • SearchJump to any card, table or step by name or id.

Step 3 · Flows

Watch a flow run end to end

Flows are objects with steps, conditions and rules, not coloured lines. Play one and the deck deals each step in order; a branch shows where the path splits.

Orders2
API GatewayOutside
Service
Order Service
Creates the order
Database
Orders DB
Primary + replica
3 inside
Payment ServiceOutside
POST /orderswrites ordersauthorize
Step 5 of 8Checkout
Order Service → Payment Service · authorize

Step 4 · Knowledge

Rules live where they apply

Attach a decision table to the step it governs. The inspector shows the step, its condition and its rule. Stickies and notes hold what is still open.

Service
Payment Service
Authorises, captures
External
Payment Provider
Card acquirer, 3DS
Ask finance about partial refunds
charge
R-12 Payment retry
Flow step 6 of 8Payment Service → Payment Provider
chargeHTTPS
Condition
when order.total_cents > 0
Rule
R-12 Payment retry
WHENTHEN
attempterroraction
< 3timeoutRetry in 2 s
< 3declined_softRetry in 30 s
3anyCancel order
anydeclined_hardCancel order
Note

Retries reuse the order id, so the provider sees one charge.

Step 5 · Database

The tables behind the map, on the same canvas

Open a database card and its tables are there: columns, keys, enums and indexes, with relationships attached to the columns they join. One SQL dialect per deck: Postgres, MySQL or SQLite.

 Orders DB3
Table
orders
iduuid
customer_iduuid
statusorder_status
total_centsint
created_attimestamptz
2 indexes
Table
payments
iduuid
order_iduuid
providertext
amount_centsint
statustext
customersAccounts DB · outside
Table
orders
iduuid
customer_iduuid
statusorder_statusW
total_centsintW
created_attimestamptz
2 indexes
Table
payments
iduuid
order_iduuid
providertext
amount_centsintW
statustextW
CheckoutOrdersOrders DB
Checkout4 writes orders · 5 writes payments
Postgres
1Table orders {
2 id uuid [pk]
3 customer_id uuid [ref: > customers.id]
4 status order_status [not null]
5 total_cents int [not null]
6 created_at timestamptz [not null]
7 indexes {
8 customer_id
9 created_at
10 }
11}
12
13Table payments {
14 id uuid [pk]
15 order_id uuid [ref: > orders.id]
16 provider text
17 amount_cents int
18 status text
19}
20
21Enum order_status {
22 pending
23 paid
24 shipped
25 cancelled
26}
Edits apply as you type
  • Draw tables, or import SQL and DBML.
  • Flows show which tables each step touches.
  • Export runnable SQL for your dialect.

Step 6 · Code

One document, two views

The canvas and the code panel edit the same file. Select a card and its JSON is highlighted; change the JSON or the DBML and the canvas follows.

Orders2
writes orders
Pick a card
Selection
1{
2 "$schema":
3 "https://sododeck.com/schema/v1.json",
4 "version": 1,
5 "name": "Checkout",
6 "groups": [ … ],
7 "nodes": [
8 {
9 "id": "order-svc",
10 "type": "service",
11 "title": "Order Service",
12 "group": "orders",
13 "description": "Creates the order"
14 },
15 {
16 "id": "orders-db",
17 "type": "database",
18 "title": "Orders DB"
19 }
20 ],
21 "edges": [{ "id": "e-writes-orders",
22 "from": "order-svc", "to": "orders-db",
23 "label": "writes orders" }],
24 "flows": [{ "id": "checkout", … }]
25}
In sync with the canvas

Step 7 · Edit

AI drafts it. You own it.

Change anything by hand: rename a card in place, pick colours for cards and tags, align with guides, snap and resize, and re-route a connector by dragging its bends.

Service
Shipping Service
Books the carrier
euops
Kafka topic
order.placed
External
Payment Provider
Card acquirer, 3DS
drag to re-routealigned left · snap
Card colour
Tag colours
euopscriticalpciTag

Step 8 · Own your file

Your decks stay on your machine

No account. Decks live in your browser and keep working offline, and nothing is sent anywhere. The format is open JSON, so your work is never locked in.

Edge2
Orders2
Payments2
Messaging1
Fulfilment1
Client
Web app
Storefront
API gateway
API Gateway
Auth, rate limits
Service
Order Service
Creates the order
Database
Orders DB
Primary + replica
3 inside
Service
Payment Service
Authorises, captures
External
Payment Provider
Card acquirer, 3DS
Kafka topic
order.placed
Service
Shipping Service
Books the carrier
Cancel order
Checkout8 cards · 1 flow · edited today
New deckor import JSON, SQL or DBML

Decks live only in this browser. Export a backup now and then.Export backup

Export
  • JSON
  • PNG
  • SVG
  • SQL
  • DBML

Start with a prompt, or with a blank canvas.

Sododeck runs in your browser. Bring your own AI, or draw it by hand.