{/_ _/}
This repo contains all of the docs and supporting assets for Hypermode Docs. It includes (or soon will) documentation for the open source projects that Hypermode leads:
- Modus - serverless framework for building functions and APIs, powered by WebAssembly
- Dgraph - distributed, transactional graph database for real-time use cases
- Badger - embeddable key-value store in Go
- Ristretto - embeddable memory-bound cache in Go
If you notice something in our documentation that is wrong, misleading, or could use additional context, the easiest way to make an impact is to create a GitHub issue. We do our best to triage and address docs issues as soon as possible.
For small changes, such as a misspelled word, go ahead and create a pull request for the fix. No issue required!
You can ask questions and meet others from the Hypermode community in our Discord.
We welcome direct contributions to the docs! Our docs are maintained in markdown files in this repo. All changes are managed through a code-first release flow.
The design and hosting of our docs site is provided by
Mintlify. The vast majority of configuration is in code
in mint.json
.
Changes will be deployed to production
automatically after pushing to the main
branch.
The following components are useful when developing locally:
See live changes as you write and edit.
npm i -g mintlify
Format and lint changes for easy merging.
npm i -g @trunkio/launcher
Mintlify includes a number of components to make it easier to build easy-to-consume documentation.
To spin up a local server, run the following command at the root of the docs repo:
mintlify dev
Consistency is important in any documentation experience. Beyond Markdown’s opinionated structure, we adhere to a consistent style for Hypermode.
We have adopted Google’s Developer Documentation Style Guide as a baseline, with Hypermode-specific terms stored in a vocabulary file.
Vale has been implemented in the repo for easy alignment. Vale is implemented within CI/CD, but also executable locally with through Trunk.
When icons are required, select from Font Awesome’s catalog for easy rendering with Mintlify.
Trunk has been implemented for easy formatting and linting across different file types. It is implemented within CI/CD, but also executable locally.
Formatting should run automatically on save. To trigger a manual formatting of the repo, run:
trunk fmt
To run lint checks, run:
trunk check # appending --all will run checks beyond changes on the current branch
Note that Trunk also has a VS Code extension you can install.
However, when installing it please be aware of the trunk.autoInit
setting,
which is true
(enabled) by default This controls whether to auto-initialize
trunk in non-trunk repositories - meaning any folder you open with VS Code
will get configured with a .trunk
subfolder, and will start using Trunk. You
should probably set this to false
in your VS Code user settings, to not
interfere with other projects you may be working on.