This repository contains the Docusaurus-based documentation site for Hippius.
We use pnpm here.
To install dependencies, run pnpm install.
To run the project, run pnpm run start.
To build the static site:
pnpm run buildThe built site will be in the build directory.
This project is automatically deployed to Kubernetes using GitHub Actions. The workflow:
- Builds a Docker image when changes are pushed to main/master or when a tag is created
- Pushes the image to the private registry
- Deploys to Kubernetes in the
hippius-documentationnamespace
The following secrets must be configured in GitHub:
REGISTRY_USERNAME: Username for the private Docker registryREGISTRY_PASSWORD: Password for the private Docker registryKUBE_CONFIG: Kubernetes configuration file with access to the cluster
Kubernetes manifests are located in the k8s directory. The deployment uses:
- Namespace:
hippius-documentation - Service Type: ClusterIP
These rules apply to every page in this documentation site. All contributors (human and AI) must follow them.
-
Every page answers "why should I care?" in the first paragraph. State what problem this page solves and who it's for. Don't start with history or theory.
-
Organize by user goals, not internal architecture. Headings should be tasks: "Upload a File," "Generate a Shareable Link." Not "StorageS3 Pallet" or "ExecutionUnit Module."
-
Quickstarts: 10 steps or fewer. Target: first success in 5 minutes. Advanced configuration belongs in separate linked guides.
-
Don't hide complexity. If something is hard or has gotchas, say so upfront. Pretending something is easy when it isn't destroys trust.
-
Cross-link aggressively. Mention an endpoint? Link to its reference. Mention a concept? Link to its explainer. Never more than one click from relevant context.
-
No marketing language in technical docs. Don't write "our innovative platform" or "cutting-edge technology." Developers don't want sales copy.
-
Write for a smart colleague who doesn't have your context. Assume intelligence, not domain knowledge. Define terms on first use.
-
Paragraphs: 3-4 lines max. Lead with critical information. Use subheadings for scannability.
-
Use Docusaurus admonitions for callouts. Use
:::tip,:::warning,:::danger,:::info,:::noteinstead of bold text or asterisks. -
Use
<Tabs>for multi-language examples. When showing the same operation in Python, JavaScript, and CLI, use tabs. -
Always specify language on code blocks. Every fenced code block needs a language identifier:
```python,```bash,```javascript. -
Add
titleto code blocks representing files. Use```python title="upload.py"to clarify context. -
Keep pages focused on one topic. If a page covers uploading, downloading, presigned URLs, ACLs, and multipart — it's too long. Split it.
-
Use descriptive, keyword-rich headings. "Configuring the S3 Client" is searchable; "Step 3" is not.
-
Every code example must be copy-pasteable and complete. Include all imports, client setup, and operations. A developer should copy, replace credentials, and run.
-
Use consistent credential placeholders. Always use
YOUR_ACCESS_KEYandYOUR_SECRET_KEY. Nothip_your_access_key_id, not<YOUR_ACCESS_KEY_ID>, notyour_secret_key. -
Provide a complete working example at the end of each SDK page. A single script: connect, create bucket, upload, list, download, presigned URL. The "I just want something that works" escape hatch.
-
Code examples live in
/examples/as standalone files. Runnable code blocks should have a corresponding file in/examples/{language}/for CI/CD testing.
-
Broken links must not be merged.
onBrokenLinksis set to throw. Fix broken links before merging. -
Test code examples. The
/examples/directory has CI/CD tests that validate examples parse and compile correctly.