Client-Proof Handoffs & Proposals for Freelance Tech Writers
Winning the contract is only half the job—successful freelancers deliver docs that engineers can maintain and that product teams can act on. This article gives a pragmatic proposal you can adapt, a documentation outline to include in quotes, a canonical API endpoint entry, code samples, and a fail-safe handoff checklist.
Compact Documentation Outline to Include in Proposals
- Audience: integrators, SDK consumers, internal engineers.
- Deliverables:
- Docs site with nav & search (Docusaurus/MkDocs)
- OpenAPI/AsyncAPI spec (if available)
- 20 endpoint references, 2 tutorials, Quickstart & Auth guide
- Code samples in JS & Python + runnable curl examples
- Acceptance criteria: all endpoints have passing smoke tests in staging; links pass; engineering sign-off on 80% of samples.
Sample API Endpoint Entry (copyable)
<h3>Get Invoice</h3>
<p>Retrieve a single invoice by its ID. Supports expand parameter for related objects.</p>
<strong>GET /v1/invoices/{invoice_id}</strong>
<strong>Auth:</strong> Bearer token
<strong>Path Parameters:</strong>
<ul>
<li>invoice_id (string) — required — the invoice identifier</li>
</ul>
<strong>Query Parameters:</strong>
<ul>
<li>expand (string) — optional — comma-separated related objects to expand (e.g., "customer")</li>
</ul>
{
"id": "inv_6789",
"amount": 1999,
"currency": "USD",
"status": "paid"
}
<strong>Errors</strong>
<ul>
<li>404 Not Found — invoice not found</li>
<li>401 Unauthorized — API key invalid or expired</li>
</ul>
Idiomatic Examples to Include
curl
curl -X GET "https://api.example.com/v1/invoices/inv_6789" \
-H "Authorization: Bearer $API_KEY"
JavaScript (axios)
const axios = require('axios');
const res = await axios.get('https://api.example.com/v1/invoices/inv_6789', {
headers: { Authorization: 'Bearer ' + process.env.API_KEY }
});
console.log(res.data);
Python (requests)
import os
import requests
resp = requests.get(
'https://api.example.com/v1/invoices/inv_6789',
headers={'Authorization': 'Bearer ' + os.getenv('API_KEY')}
)
resp.raise_for_status()
print(resp.json())
Documentation Style Checklist (client-facing)
- Voice: direct, imperative for tasks, descriptive for concept pages (use "do/undo" cues).
- Formatting: fenced code blocks, monospace for identifiers, bold for parameters when inline.
- Identifiers: API paths in kebab-case, JSON keys consistent across examples.
- Versioning: include API version in path, document deprecation windows (90 days min recommended).
- Changelog: maintain an actionable changelog with migration notes and sample diffs.
- Localization: structure copy to be extractable; avoid concatenated strings that break translation.
Client-Facing Deliverables & Time Estimates
- Proposal & project plan (1–2 days)
- Discovery & sample collection (0.5–1 day)
- Draft delivery (per milestone): 5–10 days per 10 endpoints
- QA & engineering review: 2–4 days
- Finalization & handover: 1–2 days
Proposal Template (tech writer friendly)
Subject: Docs engagement — API Reference + Quickstart for Project X
Scope:
- Deliver API Reference (up to 20 endpoints)
- Quickstart guide and 2 tutorials
- JS & Python samples + curl
Timeline: start MM/DD, complete in 3 weeks
Price: $X fixed (includes 2 review rounds)
Acceptance: staging test pass & engineering sign-off
Handover Checklist (for engineers & product managers)
- Provide or confirm OpenAPI spec and test credentials.
- Share sample responses and known edge cases (e.g., 429 behavior).
- Run the docs smoke tests provided (bash script or Postman collection).
- Approve two representative endpoint pages to be used as templates for future writers.
- Assign a code owner for docs changes and decide review process (PRs vs. direct edits).
Recommended Tools & CI Practices
- Docs site: Docusaurus for React-first teams, MkDocs Material for simple markdown-driven sites.
- API testing: Postman collections + Newman for CI, or a lightweight bash + curl test suite.
- Linting & validation: Spectral (OpenAPI), markdownlint, linkcheck in CI.
- Preview: deploy preview on Netlify/Vercel/GitHub Pages for each PR so stakeholders can review.
Accuracy & Maintainability Tips
- Keep sample tokens rotated and scoped; store them as secrets in CI.
- Run smoke tests on every docs push to ensure samples remain valid.
- Include a small README in the docs repo explaining how to run examples locally and how to update the OpenAPI spec.
With these templates and checklists, your proposals will be clearer, reviews will be shorter, and handoffs will be frictionless. Use the included samples and checklists to standardize your deliverables and protect your time while giving clients tangible, production-ready outputs.