Features
Everything between a repository and a docs site people trust
Generation is where Docup starts. The rest is what makes the site worth linking to: hosting, sync, editing, search and a way to know what readers need.
Generation
Every sentence traces back to a line of code
Pages are written with the relevant source retrieved on demand, and each claim keeps the file and line it came from. Before publishing, identifiers, signatures and links are checked against the parsed code; anything that fails is rewritten or removed.
- Overview, quickstart, guides and reference from one run
- Reference pages built from real signatures, not comments
- Citations stay attached to the page for readers who want the source
Retries and backoff
Relay retries failed deliveries up to five times by default src/retry/policy.ts:12, waiting between attempts with exponential backoff and full jitter src/retry/policy.ts:41. Once attempts are exhausted the event is moved to the dead-letter queue src/client.ts:88 and a DeliveryError is raised src/errors.ts:27.
- Identifiers exist in source214 / 214
- Internal links resolve38 / 38
- Code samples parse12 / 12
- Signatures match declarations61 / 61
1 sentence rewritten
Retries default to three attempts. Retries default to five attempts. src/retry/policy.ts:12
Hosting
On docup.dev today, on your domain when you are ready
Every project is served at {you}.docup.dev/{project} from an edge network with server-rendered HTML. Add a custom domain from the project settings: prove ownership with a TXT record, point a CNAME, and a certificate is issued as soon as DNS resolves.
- Automatic TLS with renewal
- The docup.dev address redirects to the custom domain
- Logo, colours and fonts from the project settings
Custom domain
- DNS resolves
- Ownership verified
- Certificate issued · renews automatically
- acme.docup.dev/relay redirects here
Sync
Follows the branch, rewrites only what changed
A push to the tracked branch starts an incremental run. Changed files are re-summarised, pages that depend on them are rewritten, and the rest of the site is untouched. A run that changes nothing is skipped in seconds.
- Choose the branch to follow per project
- Publish automatically, or land every run as a draft to review
- Every run is listed with its commit, pages and duration
| Trigger | Commit | Pages | Duration | Result |
|---|---|---|---|---|
| push | a3f9c1e | 2 rewritten | 48s | Published |
| push | 9d2b0f4 | 1 rewritten | 31s | Published |
| push | 5b0d19f | no changes | 6s | Skipped |
| manual | c71e88a | 14 written | 4m 12s | Published |
Editing
Change anything before it goes live
Open any page in a Markdown editor with a live preview, fix the wording, add an example, and publish. Every publish is a version; roll back to any earlier one from the project page.
- Edits are kept until the page's sources change
- Version history with restore on Pro
- Pin a page to keep it out of future regenerations
1# Quickstart2 3Install the package and create a client:4 5```bash6npm install @acme/relay7```8 9Then deliver your first event with10`client.send()`.
Quickstart
Install the package and create a client:
npm install @acme/relay
Then deliver your first event with client.send().
Discoverability
Readable by search engines and AI assistants alike
Every site ships server-rendered HTML, a sitemap, canonical URLs and OpenGraph tags. It also publishes llms.txt and a Markdown copy of each page at the same path, so assistants read exactly what your readers do.
- Instant full-text search on every plan
- AI crawlers allowed by default, switchable per project
- Clean URLs that survive regeneration
- /sitemap.xmlapplication/xml
- /llms.txttext/plain
- /llms-full.txttext/plain
- /guides/retriestext/html
- /guides/retries.mdtext/markdown
- /robots.txttext/plain
AI assistant
Answers grounded in the docs, with the source attached
Turn on the assistant for a project and readers can ask questions in plain language. Answers are composed from the published pages and cite both the page and the source file behind it, so a reader can always verify.
- Add-on per project, on Pro
- Questions readers ask appear in analytics
- Never answers from outside the project's docs
What happens to events that are still in flight when I rotate the secret?
Nothing is dropped. After rotateSecret() new events are signed with the new secret, and verify() keeps accepting the previous one for an hour, so receivers can roll over at their own pace.
guides/signingsrc/signing.ts:52
Analytics
Know which pages matter and which are missing
Page views, top pages, referrers, and the two signals that tell you what to write next: searches that returned nothing and questions the assistant could not answer.
- Privacy-friendly, no cookies
- Per project, on Pro
Page views
8,412
Searches with no result
- websocket transportwrite a page
- python sdkwrite a page
- rate limitswrite a page
Compared
Against the alternatives
Most teams are choosing between writing docs by hand, a docs-as-code framework, or nothing.
| By hand | Docs-as-code | Docup | |
|---|---|---|---|
| Time to a complete site | Weeks | Days of setup, then weeks | Minutes |
| Keeping it current | Whoever remembers | PR discipline | Every push, automatically |
| Reference pages | Rarely written | Generated from comments | Written from signatures and usage |
| Hosting and TLS | Your problem | Your problem | Included |
| Search, sitemap, llms.txt | Plugins | Plugins | Included |
| Edits survive regeneration | n/a | n/a | Until the source changes, with history |
Start now, read the docs before you decide
Connect a repository and the first generation is on us. No card, no configuration files, nothing to install.