Files
zkldi_Tachi/old-docs/docs/codebase/index.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.7 KiB

Codebase Overview

This part of the documentation is for the Tachi-Server codebase.

Codebase Documentation vs. Code Documentation

This is documentation for the Codebase. NOT documentation for the code.

The distinction is because we aren't writing a library here - there's no need to document function signatures or what function calls are meant to do. That can all be done inline because no other projects depend on our function calls!

This documentation is more meta-level. Why things are in certain folders, what certain enums correspond to, how thing works, etc.

Repos and Licenses

Tachi is a monorepo, and is made up of many projects. These are:

  • client/, Which is a React frontend for Tachi.

The client and the server are fairly decoupled. Someone could trivially create their own frontend client for Tachi.

  • server/, Which is an Express-Typescript backend for Tachi.

This contains all of our API calls, and interfaces with our database, and powers the actual score import engine.

  • seeds/, Which is a git-tracked set of data to be synced with Tachi.

This is the source of truth for the songs, charts, and more on the site! By submitting PRs to this, you can fix bugs on the website, add new charts, and more.

  • bot/, Which is a discord bot frontend for Tachi.

  • common/, Which contains common types, utils and functions shared between all other packages.

This is also published to NPM when it hits production.

  • docs/, Which contains Tachi documentation.

  • sieglinde/, Which contains our BMS/PMS analysis functions.

Of these, server/ and client/ are licensed under the AGPL3. The seeds/ are licensed under the unlicense, and everything else is MIT.