Files
zkldi_Tachi/old-docs/docs/contributing/components/core.md
T
zk e363bd2532 docs: migrate from mkdocs to mdbook (#1558)
* docs: migrate from mkdocs to mdbook

- Rename old mkdocs docs/ to old-docs/ for reference
- Set up new docs/ with mdbook (book.toml + src/ tree)
- Mirror full nav structure from mkdocs.yml into SUMMARY.md
- Add Justfile-docs with docs-serve, docs-build, docs-check, docs-install recipes
- Import Justfile-docs from root Justfile
- Rewrite .github/workflows/docs.yml: build step uses taiki-e/install-action
  to install mdbook, split into separate build + deploy jobs, PR builds
  run the check step too

* ci(docs): pin actions to SHAs, install mdbook via release binary

* ci(docs): install mdbook from apt instead of curling a release binary

* dev: replace mkdocs python stack with mdbook in dev image

* ci(docs): apt only works on Debian; restore release binary install for Ubuntu CI

* docs: fix duplicate file entries in SUMMARY.md

* docs: remove docs-install recipe

* docs: remove site-url from book.toml to fix asset loading

* dev: install mdbook from upstream release binary, not Debian apt

The Debian package (0.4.x+ds) strips bundled font assets, leaving the
built site without fonts/fonts.css. Use the upstream tarball (same as CI)
so the theme is complete. Handles x86_64 and aarch64.

* docs: vendor mdbook tarballs in dev/mdbook/, install from there

Dockerfile.dev uses COPY + tar to install the right arch at build time.
CI extracts the x86_64 tarball directly from the checkout.
No network access required for either — and no stripped-fonts Debian package.

* fix: unwritten
2026-05-22 20:43:07 +01:00

1.8 KiB

Client + Server Contribution Guide

The client and server are the meat and potatoes of Tachi. They handle all of our requests and display our fancy UI.

Contributing here is a bit more difficult than contributing to the seeds, but it's certainly not impossible!

Plus, it's good fun to be able to mess around with websites. If you've got something you want to mess around with, you might find it surprisingly easy to do!

Pre-Setup

You must have Setup a local dev environment in order to work nicely with the docs!

Component Overview

The content for the client is inside client/ and the content for the server is inside server/.

The client and server share quite a bit of code. This is inside common/.

To run the client and server, use just start. You can hit Ctrl+C to stop the server.

Editing the Client

With just start running, the client will listen for changes you make, and reload accordingly. You will see your changes reflected on http://localhost:3000.

Editing the Server

Likewise, with just start running, the server will listen for changes you make, and reload accordingly.

!!! warning Be careful with triggering a server reload. If you do it mid-import you can cause some serious state issues.

If you suspect that your local state is screwed up, run `just wipe-local-db` to reset
the database.

Getting real data

The client, out of the box, is sort of hard to test because you'll have no scores to display.

Use just load-kamai-dataset or just load-boku-dataset to load a real dataset from either of the Tachis.

You'll then need to edit server/conf.json5 and change MONGO_DATABASE_NAME to "anon-kamai" or "anon-boku".

Everyone's passwords are set to password, so feel free to log in as anyone, and see real data!