Documentation
Everything you need to understand Boat Rudder, run it and change it. The pages are grouped by what you came here to do: get started, understand how it works, use it day to day, modify the source, or look something up.
Start here
New to Boat Rudder? These three pages take you from zero to a running server.
The retro-compatible CMS idea: one site served to every browser ever made, from WAP phones to HTML5.
Clone, install the dependencies, compile and get the server answering on your machine.
C17, libsodium, the MongoDB C driver, ImageMagick, and the platforms Boat Rudder is known to build on.
Understand
The concepts behind the code. Read these before changing anything.
The five epochs, how the browser is detected from its User-Agent, and how each content block degrades instead of disappearing.
Layers, the thread model, the directory tree and the security decisions that shape the server.
From accept() to the last byte written: listener, connection thread, router, renderer.
Entries, typed content blocks, categories, menu, languages and media — and how they fit together.
The per-epoch template convention, the boat-rudder- CSS namespace and how a page is composed.
Use
Running the server and publishing content — for operators and editors.
Every key in configs/settings.conf, what it does and what happens when you leave it out.
The boat_rudder_builder.sh actions, debug and production modes, and installing as a systemd service.
Generating a local certificate for development and wiring a real one for production.
Starting the database, dumping it and restoring it with the bundled scripts.
Login, sessions, the Administrator and Author roles, and a tour of every admin screen.
The entry editor: metadata, header, blocks, drag-and-drop reordering, autosave and publishing.
What each block does, the extra field it carries, and how it looks on every epoch.
Uploading, organising in directories, the image optimizer and the public gallery route.
The four maintainer screens that shape navigation, translation and who may sign in.
Modify
Working on the source. Recipes and the rules that are not up for debate.
What lives in each folder under src/ and why it lives there.
Naming, formatting, memory, strings, integers and the CERT checklist every change is reviewed against.
Step by step: the public renderer, the editor form, and a template for each of the five epochs.
Registering in the router, guarding it with a session role, and returning epoch-aware errors.
Editing markup and CSS without breaking the retro epochs that have neither.
Reference
Look-up tables for when you already know what you are doing.
Every public and dashboard route, its method and the guard in front of it.
The shape of every MongoDB collection Boat Rudder reads and writes.
What is implemented today and what is still ahead.