Rork docs
The repo is a Mintlify site. Every page is an.mdx file at the repo root or in a topic folder. Navigation lives in docs.json. A page is invisible until it is listed there.
Non-negotiable rules
- Every fact comes from the product, not from memory. The product code is at
/Users/dora/Documents/GitHub/rorkai. Grep it for the exact UI copy, then quote that copy in the page. If a claim cannot be verified, ask the user instead of writing it. - UI copy is quoted exactly and set in bold.
**Build AAB for Play**, not “the build button”. Labels usually live in the component or in itsaria-label. - No em dashes. Use a comma, a colon, or a second sentence.
- One term for one thing. “Android app”, not “Kotlin project” in the next paragraph.
- Screenshots come from the real product UI, in English. Never a mockup, never a Russian UI, never a personal name or avatar.
Page anatomy
Copy the shape ofweb/rork-web.mdx, the newest full guide.
sidebarTitleonly when thetitleis too long for the sidebar.<CtaBanner />closes every page. It is the last line.- Order of sections: what it is, how to start, how to work in it, how to publish, what it cannot do, FAQ, next steps.
- Components in use:
<Frame>,<Steps>/<Step>,<Tip>,<Note>,<Warning>,<Info>,<AccordionGroup>/<Accordion>,<CardGroup>/<Card>, plain markdown tables. - A prompt the reader should send to the agent goes in a bare code fence:
- A table is the right shape for “control, what it does” and for platform comparisons. Keep cells to one short line.
- Videos:
<video src="/videos/multiplatform.mp4" autoPlay muted loop playsInline style={{ borderRadius: "12px", width: "100%" }} />.
Voice
Second person, present tense, active voice. Short sentences. Say what the reader does and what the product does back.- Good: “Open Publish, then press Publish to web. Rork builds the app and hosts it at your own address on
rork.app.” - Bad: “The application can then be deployed by the user, at which point hosting is provisioned automatically.”
$20/mo and submitting-to-play-store/creating-the-aab-file in full.
State limits plainly in a “What X cannot do” list. Readers trust the page more, and support gets fewer tickets.
Links
- Internal links are absolute paths without the extension:
/import/convert-between-platforms. - Every outbound link to a Rork property carries UTM tags:
?utm_source=docs&utm_medium=referral&utm_campaign=docs-cta&utm_content=<page-or-slot> - Each platform or feature page links to its landing page on rork.com (
/web,/android,/max,/cloud,/app-store-reviewer). The user asks for this every time, so do it in the first draft.
Screenshots
Shots come from the signed-in product in the Cursor browser (cursor-ide-browser).
browser_tabswith actionlist. If another tab runs a local dev server onlocalhost:3000, leave it alone: another session may own it. Navigate a separate tab tohttps://rork.com/andbrowser_lockthat one.- Drive the page:
browser_cdpwithRuntime.evaluatefor cheap reads, and for typing into the prompt box:document.querySelector('.ProseMirror').focus(); document.execCommand('insertText', false, '...')- Radix menus and buttons need real input:
browser_mouse_click_xyorbrowser_click. A JS.click()does not open them. browser_mouse_click_xytakes coordinates in screenshot space and needs a freshbrowser_take_screenshotimmediately before the call. Screenshot space is the 1024px-wide image; page CSS pixels are about 1.575x that.- A menu that just opened often needs one more
browser_take_screenshotbefore it shows up in the frame. browser_clickandbrowser_mouse_click_xyreturn a full page snapshot, which is expensive. Prefer CDP reads for checking state.
browser_take_screenshotwrites the full retina PNG (about 3226x1814) to/var/folders/.../T/cursor/screenshots/page-<timestamp>.png. The inline preview is downscaled; always work from the saved file.- Copy the keepers into
.capture/raw/with meaningful names, then crop tight to the UI being described. Pillow is available:
- Blur anything personal: the account avatar, real names, other people’s project names.
im.crop(box).filter(ImageFilter.GaussianBlur(18))pasted back over the box. - Save to
images/<topic>/<what-it-shows>.png. Use.jpgfor wide editor shots to keep the file small..capture/is scratch and stays out of the commit.
Navigation
Add the page todocs.json under navigation.pages, in the group that matches the reader’s journey: Getting started, Choosing a platform, Import your project, Build, Backend, Test on your device, Publishing, Monetization, Marketing, Billing, Frequently Asked Questions. Platform pages belong to Choosing a platform. Path is the file path without .mdx.
If a page moves or is renamed, add a redirects entry with source and destination.
Before the PR
main when the user says “пуш на прод”. Commit subject style, from the log: docs(play-store): split Android testing and Play upload by project type.
Facts about the product that pages get wrong
Verify these in the code before repeating them, they changed recently:- New apps are native iPhone (Swift / SwiftUI), native Android (Kotlin + Compose), or web (Vite + React). Expo exists only for old projects, see
expo.mdx. - Each app in a project has its own code. iPhone and Android are two codebases, not one. They share the chat and the backend.
- Plans:
packages/react-shared/src/components/pricing/pricing-features/index.tsxis the source of truth for what each plan builds. - Publishing: iPhone goes through the in-product App Store wizard, Android produces a signed AAB for Google Play, web publishes to
<name>.rork.app.