Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Frontend vs Backend

The frontend is the website code that runs in the browser. It owns pages, styling, navigation, forms, and calls to the backend.

The backend runs on the server. It owns private state: users, registrations, permissions, imported Volta data, session validation, and member-only data.

The auth server is a separate Go process. It owns signup, login, password flows, email verification codes, and session tokens. The Python backend validates those sessions and maps them to Dodeka permissions.

The frontend talks to:

  • the Python backend through wrappers in dodekafrontend/src/functions/backend.ts
  • Faroe auth through dodekafrontend/src/functions/faroe.ts

The backend exposes public API routes from dodeka/backend/src/apiserver/app.py. It also has a private loopback API for the auth server and backend CLI tools.

Keep the split simple:

  • public content belongs in the frontend repository
  • private or member-only data belongs in the backend database
  • passwords and auth protocol belong in Faroe
  • exact backend rules belong in dodeka/backend/spec.md