v0.6.0 — The desk expands
2026-05-15 · RAA-167
Six upgrades for writers who stay in the app all day — not a redesign, a deeper desk.
Overview
Six upgrades for writers who stay in the app all day — not a redesign, a deeper desk.
A library that stays open
At **1024px and wider**, raastey becomes a three-pane shell: folders and trash on the left, searchable drafts with real content previews in the middle, the editor on the right. `⌘.` hides the chrome when you want only prose. `⌘⇧1` and `⌘⇧2` toggle the rail and list. Excerpts come from the API so you see the draft, not just the title.
Numbers without gamification
**Writing statistics** (`⌘⇧W`) show words today, your streak, all-time total, and a calm 30-day bar chart. A quiet heartbeat syncs session deltas to Postgres — no badges, no confetti.
Goals that belong to the document
Set a **word goal per document** from the palette. A small ring in the status bar tracks progress separately from the session target you set for a single sitting.
Research beside the draft
**Research & citations** (`⌘⇧R`) fetches a URL through raastey’s SSRF-guarded proxy, shows title and excerpt, and **Cite** drops a footnote at the end of the draft. Draft writers get ten sources per session; Cloud is unlimited.
Split view for structure
On wide screens, dock **Outline**, **AI**, or **Metrics** beside the canvas at 40% width — same panels as before, no slide-over animation. Narrow viewports keep the overlay behaviour you already know.
Export for submission
Cloud writers can export the open draft as **PDF, DOCX, or EPUB** from the export modal. The API calls a dedicated Pandoc service when `EXPORT_SERVICE_URL` is configured; until then the route returns **503** so Draft users are never surprised by a half-working button.
Ship the **API and writer SPA together** for this release (migrations `0010`–`0011`, excerpt field, shell). Tracked under [RAA-167](https://linear.app/factoura/issue/RAA-167).
v0.5.1 — A whisper in Chrome
2026-05-14 · RAA-145
Some assists do not need to leave your machine. If you write in **Google Chrome** and the browser exposes its built-in language model, raastey now offers an **experimental opt-in**: select prose, open the command palette, and run **Rewrite selection · Chrome on-device**. The t…
Overview
Some assists do not need to leave your machine. If you write in **Google Chrome** and the browser exposes its built-in language model, raastey now offers an **experimental opt-in**: select prose, open the command palette, and run **Rewrite selection · Chrome on-device**. The text goes to **Chrome’s on-device model** only — not through raastey’s cloud AI router for that action. The first time the capability appears, a calm gate asks whether to turn it on; **Not now** remembers your choice on this profile. You can always open **Chrome on-device assists · review setup…** from the palette to change your mind, or **turn off** when you are done experimenting. **Ask raastey** is unchanged everywhere else, and other browsers see no new surface.
v0.5.0 — The pillars hold
2026-05-12 · RAA-97
The writer's-toolbox umbrella closes today. Five pillars in place — dictionary, grammar, spellcheck, metrics, AI — and a deploy stack ready to carry them.
Overview
The writer's-toolbox umbrella closes today. Five pillars in place — dictionary, grammar, spellcheck, metrics, AI — and a deploy stack ready to carry them.
Grammar, on demand
`Cmd+Shift+G` toggles grammar on any draft. Sentences with issues pick up a soft underline; click for a suggestion chip and the rule that flagged it. The check runs against a self-hosted [LanguageTool](https://languagetool.org) — your prose never leaves the raastey backend. Draft writers see the clear-errors subset, real mistakes only, no style nits. Cloud writers see the full rule-set.
Spellcheck, in British English too
The spellcheck pillar learned a second locale. Open the command palette, pick "Spellcheck language → en-GB" once, and "realise" stops getting underlined for as long as you write on that machine. The custom dictionary you've built up follows you across locales — teach raastey a word once, it stays taught.
A first hint, then silence
New writers now land on a blank canvas with one calm line at the top: `⌘ palette · ⌘ D dictionary · ⌘ ? shortcuts`. Start typing and the line disappears. Click the small `×` and it never returns on this machine. No splash, no tour, no modal — just one line the writer can lean on for half a minute and forget about.
The AI panel knows your tier
The AI router now resolves on two dimensions instead of one: where you are *and* which tier you write on. Draft writers get the voice lane backed by Groq, Cerebras, NVIDIA, and OpenRouter as a quiet safety net at the end of the chain. Cloud writers get the same lane plus DeepSeek for the structural surfaces, and a paid OpenRouter model when the natives fall over. Five providers, two surfaces, one calm panel. If a Draft writer ever asks for a Cloud-only surface, raastey responds with a single upgrade line instead of a silent fallback.
Quiet limits
Both the toolbox and the AI panel now respect calm rate limits sized to your tier — high enough that you almost never see them, low enough that a hammering script can't drain the budget. Draft writers get 20 grammar checks a minute, 60 dictionary lookups a minute, 30 AI prompts a day. Cloud writers get six times that. When you do hit a limit, raastey says *taking a breath · try again at HH:MM* and tells you when. No popups, no banners — a single chip in the place you were already looking, that quietly clears itself when the window passes.
Ready to host
Three new Railway services scaffolded — `raastey-backend`, `raastey-frontend`, `raastey-languagetool` — each with its own runbook, smoke tests, and rollback path. The marketing site stays its own service. The waitlist now writes straight to the raastey Postgres so the launch list belongs to raastey end-to-end; no third-party audience service in the loop.
What's next
With the toolbox umbrella closed, the next pillars are the ones a paying writer asks for: more AI surfaces (the structural and contradiction lanes turned on for Cloud), the desktop app on Tauri, and the payments path that turns Draft into Cloud. Monitoring (Sentry + Plausible) is the operational follow-on — tracked under [RAA-97](https://linear.app/factoura/issue/RAA-97).
v0.4.0 — The editor finds its voice
2026-05-12 · RAA-87
raastey shipped today as an editor a writer can actually live in, and a dictionary that knows every word she'll ask it.
Overview
raastey shipped today as an editor a writer can actually live in, and a dictionary that knows every word she'll ask it.
The editor
Eleven small upgrades, designed together so they feel like one. Open a draft and you'll find:
- **`Cmd+B`, `Cmd+I`, `Cmd+K`, lists, blockquotes** — markdown formatting under your fingers, no toolbar.
- **`Cmd+?`** — the full shortcuts cheat sheet, on demand.
- **`Cmd+.` — focus mode** — chrome hides, prose stays. Press it again to come back.
- **Inline spellcheck** — every misspelling gets a soft underline. Click for suggestions or to add it to your personal dictionary. Runs entirely in your browser; nothing leaves the machine.
- **`Cmd+Shift+O` — outline panel** — every heading in your draft, hierarchical, clickable.
- **`Cmd+F`, `Cmd+Opt+F`** — find and replace, scoped to the document, with a calm panel that respects the editor's typography.
- **`Cmd+Shift+E` — export** — copy as markdown, download a `.md` file, or copy as plain text for emails and slides.
- **Smart typography** — `--` becomes an em dash, `...` becomes an ellipsis, straight quotes curl. Code blocks are left alone. Off by default for purists — toggle from the command palette.
- **`Cmd+P` — quick-open drafts** — your most recent drafts at the top, with relative times so you remember which is which.
- **Writing target** — set a session target from the palette, and the status bar shows progress with a small dot (`∘` → `○` → `●`). When you hit it, raastey nods once and goes back to staying out of the way.
The dictionary, complete
`Cmd+D` on any word in your draft now opens a side panel with:
- **The definition** — from Free Dictionary, with Wiktionary as a fallback so rare and new words don't go empty.
- **The sound of it** — a small play button when there's a recorded pronunciation.
- **Where it came from** — a clean etymology, drawn from Wiktionary, English-only, with the wiki markup stripped away so what you read is prose.
- **Synonyms and antonyms** — chip clusters, both clickable. Click a synonym and the panel re-runs on that word. Same for antonyms.
The lookup happens in parallel so a slow upstream never blocks the rest. Repeat lookups are cached — same word on the same day takes about a millisecond.
A note on the panels
The toolbox, the writer metrics panel, and the Ask raastey AI panel now share a single visual family. Same kicker, same close affordance, same proportions. Three near-misses became one design.
What's next
Grammar. Self-hosted [LanguageTool](https://languagetool.org) is the last writer-facing pillar of the toolbox before the architecture umbrella ([RAA-87](https://linear.app/factoura/issue/RAA-87)) can close. Tracked under [RAA-96](https://linear.app/factoura/issue/RAA-96).
v0.3.0 — The desk gets a toolbox
2026-05-11
raastey stopped being just an editor and became a writer's desk.
Overview
raastey stopped being just an editor and became a writer's desk.
Look up any word
`Cmd+D` opens the toolbox — Free Dictionary for definitions, Datamuse for synonyms, both running in parallel. Select a word first to lookup that one; otherwise the panel uses the word at your cursor.
Understand your prose
`Cmd+M` opens the writer metrics panel:
- **Readability** — Flesch-Kincaid Grade, Reading Ease, Coleman-Liau, ARI. Four perspectives, side by side.
- **Sentence-length histogram** — five buckets, CSS-only chart. Spot the monotony.
- **Passive-voice ratio** — tinted amber when it crosses 15%.
- **Concordance** — your most-used words, click-to-jump.
Everything runs locally in your browser. Nothing is uploaded to score your draft.
Ask raastey, and have it answer in the draft
The AI panel now closes the loop. Ask a question, then drop the answer at the cursor or replace your selection. The writing stays in your hands; the AI just slides things into place.
v0.2.0 — Foundations under the editor
2026-05-11
The day raastey became a real app you could log into.
Overview
The day raastey became a real app you could log into.
- **Sign in** — email-only magic link, with Google as an alternative once keys are provisioned. JWT in an HttpOnly cookie; nothing else stored client-side.
- **Write something, anywhere** — the CodeMirror 6 editor lives at `/editor`. Command palette (`Cmd+/`), status bar, the bones of the writing surface.
- **Your drafts persist** — every keystroke autosaves about half a second after you stop typing. Each save snapshots into version history. raastey Draft (the no-cost tier) keeps three active documents at a time.
- **An AI that answers fast** — the streaming `/api/ai/chat` endpoint speaks the OpenAI Chat Completions wire format and routes across Groq, NVIDIA NIM, and DeepSeek (the latter skipped for EU users). One Rust client, four shapes of intelligence.
This release is the floor under everything that came after.
v0.1.0 — raastey, in public
2026-05-08
→ 2026-05-11
Overview
→ 2026-05-11
raastey arrived as a marketing site and a brand spine.
- **The site** — `raastey.app` shipped with `/`, `/about`, `/pricing`, `/privacy`, and `/terms`. Variant C, the literary one, won the typography exploration.
- **The `/pricing` page** — three one-time tiers, no subscriptions. The no-cost tier is **raastey Draft**; the paid tiers (raastey Cloud `$5` lifetime, raastey Desktop `$20` lifetime) sit as `Coming soon` cards until Stripe is wired.
- **The waitlist** — a quiet `/start` page captures interest while the web app finishes. The endpoint moved into the Rust backend so the marketing site can stay pure static.
- **The brand** — raastey is always lowercase. The word "free" never appears in writer-facing copy; the no-cost tier earns its name. Both rules are enforced by Cursor's always-on rule layer so every future change inherits them.
- **A design system** — `design-system/` is the single source of truth for colors, typography, spacing, motion. Marketing site and web app both consume the same CSS tokens; the desktop app will inherit them via `tokens.json` when Tauri starts.
v0.0.1 — Project zero
2026-05-08
A workspace, a Cursor configuration, a PRD baseline, and the agent personas that have run every thread in this repo since.
Overview
A workspace, a Cursor configuration, a PRD baseline, and the agent personas that have run every thread in this repo since.
This is where the company started.