Contributing
EVERJUST is a private business workspace built on a debranded open-source core, with its own apps on top.
To contribute, match the code you're editing, keep user-facing text on-brand,
and run the tests and the branding check before you ship. Docs are plain
Markdown under control-plane/docs_content/ that renders at
everjust.app/docs. This page covers both.
Code
- Match the surrounding code. Naming, structure, and comment density should read like the file you're editing.
- Keep apps in the addons path and license them compatibly with the core (LGPL-3).
- Test before you ship. Run the test suite and the branding check (below).
- Branding. This is a debranded platform. User-facing text says EVERJUST,
never the name of the upstream framework. The branding check,
deployment/scripts/branding_lint.sh, fails the build on leaks.
These docs
The documentation is plain Markdown, served by the control plane at
everjust.app/docs. Source files live in control-plane/docs_content/; the
sidebar, ordering, search, and on-page contents are derived automatically from
that tree, so you only write the pages.
Preview and test from the control-plane/ directory:
cd control-plane
# main.py reads STRIPE_SECRET_KEY at import, so pass a dummy value to boot the preview:
STRIPE_SECRET_KEY=sk_test_dummy python3 -m uvicorn main:app --reload # preview at http://127.0.0.1:8000/docs
python3 -m pytest tests/test_app.py -q # docs render + links resolve (conftest sets the dummy env)
To add a page: drop a .md file under control-plane/docs_content/ and add its
slug to SECTIONS in control-plane/docs_content.py so it shows up in the
sidebar.
When your change edits page content, bump CONTENT_UPDATED in
control-plane/seo.py. That date is the "last updated" stamp shown on every docs
page and the <lastmod> in the sitemap, and the tests assert it. If you rename
or remove a slug, add a DOCS_LEGACY_REDIRECTS entry in control-plane/main.py
so the old URL 301s to the new one.
Write in the EVERJUST voice: plain words, concrete outcomes, second person, no buzzwords. Mirror the page anatomy of the existing app guides: intro, what you can do, configuration, related links.
Voice
- Plain words, real things. Short declarative sentences.
- Confidence without hype. No "seamless," "robust," "unlock."
- Specific beats vague. Numbers and outcomes over adjectives.
- Talk to one person ("you").
- A little dry, never cute. No emoji.
Last reviewed: 2026-07-21
Need a hand with this? company@everjust.co — a human answers.