Skip to main content

Golden rules

  • Show complete commands that readers can copy/paste without guessing flags.
  • Label every fenced block with the language (bash, json, typescript, etc.).
  • Use realistic values (E.164 phones, Auth0-like IDs) so payloads feel real.
  • Provide both the request and the expected response for each flow.

Command snippets

Use fenced bash blocks for shell commands. Include the working directory when it matters.
cd handauncle-backend-new
bun run dev
For multi-platform instructions, list each platform explicitly so the reader can copy the relevant block:
# macOS
brew install bun
# Windows
winget install Oven-sh.Bun.Bun

HTTP requests

Document REST calls with <RequestExample> + <ResponseExample> so the API reference renders them side-by-side.
curl -X GET https://api.handauncle.com/app/launch \
  -H 'x-device-id=ios-device-3f92' \
  -H 'x-platform=ios' \
  -H 'x-user-email=investor@example.com'
{
  "success": true,
  "data": {
    "appLaunchResponseData": {
      "userData": {
        "userId": "65f2c4a1d5",
        "email": "investor@example.com",
        "platform": "ios",
        "isVerified": true
      },
      "isOnboardingRequired": false
    }
  },
  "meta": {
    "timestamp": "2025-12-01T07:10:08.337Z",
    "request_id": "6f3dfc92-0a16-41ed-a360-3c78a9272f0f"
  }
}

TypeScript excerpts

Point directly to real files so readers can jump into the repo. Keep snippets short and annotate anything that is non-obvious.
src/services/app/services/app-launch.service.ts
const isOnboardingRequired = !user.email && !user.phone_number
const usageStats = await usageTrackingService.getUserUsageStats(user.id)
If the snippet spans multiple languages, use <CodeGroup> and include filenames so engineers know where to paste the code.