The spec editor for product teams

Your specs should live
where the code lives.

Write PRDs and specs with real-time collaboration, publish to GitHub as a PR, and let AI tell you when they go stale. No terminal required.

Free 14-day trial on all plans.

GitHub-native
Real-time collaboration
AI-powered
No terminal required

Specs written in Notion
die in Notion.

Specs in Notion / Docs
Disconnected from the code
Goes stale silently
Copy-paste into PRs
Engineers never check it
Specs in your repo
Lives next to the code
AI detects when it drifts
Publishes as a PR in one click
Engineers review it in their workflow

Everything you need.
Nothing you don't.

COLLABORATION

Write together. Not after each other.

Real-time cursors, threaded comments, @mentions. Like Google Docs, but for files that live in your repo.

auth-prd.md
Y
S
A
1# Auth PRD
2 
3## Overview
4 
5Users authenticate via GitHub OAuth.You
6Session tokens use httpOnly cookies.
7 
8## RequirementsSarah
9 
10- Support SSO for enterprise teams
11- Token refresh on each requestAlex
PUBLISHING

Edit the doc. Open the PR.

Publish your spec to GitHub as a commit or pull request. Engineers review it in their normal workflow.

Publish to GitHub
Branch
docs/auth-prd-update
Commit message
Update auth PRD with SSO requirements
Create Pull Request
PR #142 opened
AI ASSISTANT

AI that reads the code. Not just your doc.

The AI terminal has tool access to your entire repo. It reads actual source files to answer your questions.

AI Terminal
>How is auth handled?
proxy.tsmiddleware.tslogin/page.tsx
Auth uses Supabase Auth with GitHub OAuth. Sessions validated via updateSession() middleware...
Generated from 3 source files
STALENESS DETECTION

Know when your spec drifts from the code.

One click. AI compares your spec against the implementation, flags discrepancies, and suggests fixes with an inline diff.

auth.md
Stale
## Auth
Sessions stored in
Redis with
a 24-hour TTL.
Suggested fix
a3f8c2d migrate to Postgres
- Redis with 24h
+ Postgres with 7d
ApplyDismiss
0
terminals required
0
merge conflicts
Realtime
collaboration
1-click
PR publishing

Specs rot
silently.
verso catches it.

Code changes. Requirements evolve. Your spec stays frozen in time, until someone builds the wrong thing from it.

Compares spec claims against actual code implementation
Shows exactly which lines drifted with inline diffs
One-click accept to update your spec on the spot
auth-flow.md
Possibly outdated
1## Authentication
2 
3Users sign in via GitHub OAuth.
4Sessions are stored in Redis with
5a 24-hour expiration window.
6 
7### Token Refresh
8 
9Tokens are refreshed on each request
10via the session middleware.
Staleness Check
Discrepancies found
Implementation
// src/lib/auth/sessions.ts
import { Pool } from 'pg';
 
const sessions = new Pool({
connectionString: DATABASE_URL,
});
 
export const SESSION_TTL = '7d';
Recent commits
a3f8c2dmigrate sessions to Postgres
b7e1a09add OAuth2 PKCE flow
f2d9c31remove Redis session cron
Suggested changes
- Sessions are stored in Redis with
+ Sessions are stored in Postgres with
- a 24-hour expiration window.
+ a 7-day sliding expiration window.
Apply fixDismiss

Draft. Collaborate. Publish.

The workflow PMs actually want, applied to files that end up in git.

Step 01

Draft

Create a draft from any GitHub file or start fresh. WYSIWYG editing with auto-save. No terminal, no git commands.

Step 02

Collaborate

Share with your team. Real-time cursors, @mentions, threaded comments. Editor and viewer roles.

Step 03

Publish

One click to commit directly or open a PR. Images rewrite to relative paths. Engineers review in their normal workflow.

AI that investigates your repo.
Not a generic writing assistant.

The AI terminal doesn't just see your document. It has tool access to your entire repository. It searches code, reads files, checks recent changes. It answers from source, not from memory.

AI Terminalcmd+J
>How is authentication handled in this repo?
proxy.tsmiddleware.tslogin/page.tsxpackage.json

Auth uses Supabase Auth with GitHub OAuth:

1. Users sign in via GitHub OAuth at `/login`

2. The callback at `/auth/callback` exchanges the code for a session

3. `proxy.ts` middleware validates the session cookie on every request

Generated from 4 source files
AcceptEdit

Codebase-aware context. AI reads your actual source files.

Slash commands: /summarize, /improve, /check-outdated.

Edit-in-place. AI proposes diffs. Accept or revert with one click.

Your keys, your models. Bring Claude or OpenAI. Keys never leave the server.

Image analysis. Paste screenshots and diagrams into AI chat.

Specs become prompts. .md files in your repo are context for every AI tool.

Your specs deserve
better than Notion.

Start writing specs that live where the code lives.

Free 14-day trial on all plans.