The hero animates on touch at any width, not just below the breakpoint
Troubleshooting: "Unknown resource" when saving
The shape is worth knowing: the generic [resource] routes whitelist tables,
a singleton has to be special-cased by name, and the special case has to
exist in every verb that can reach it. settings had one in POST but not
PATCH, so a whole tab could not save while the endpoint looked healthy.
Troubleshooting: the geocoder 403, the fuzzy-match trap, and the two flight-lookup states
Document nine releases: stays areas and the Removed bucket, the finance pass, and how images actually reach the servers
- Honeymoon: an area per stay, filtering by it, and removing a stay without
deleting it — including why the map does not follow the area filter and why
delete is only offered inside the bucket
- Finances: full width, two columns for the forms, money cells that read as
money, and the Escape that used to save the edit it was discarding
- Deployment: both hosts pull their own images; the Portainer webhook is not
used, and the evidence for why — including that two other stacks on the same
Portainer do have working ones, so it is not a product limitation
- Architecture, Troubleshooting, Development, Features, Home
Document the admin API auth, and the dev-origin trap
Catch the wiki up: CI/CD, demo mode, and everything the honeymoon portal grew
The wiki was written at v0.9.5 and the app is at v0.9.30. Deployment still
described building the image on a laptop, Installation pointed at paths that
moved into docker/, Development named CLAUDE.md, and the demo page described
a stack you filled by hand rather than one that is read-only and seeds itself.
- The demo instance: rewritten around DEMO_MODE — no login, writes answered
but never stored, the flag refused unless the database really is the demo's,
and a seeder that runs on every start so the demo carries new features' data
- Deployment: pushing to main is the deploy; what publishes what, and why a
v* tag must never move :latest. Plus redeploying the demo
- Installation: docker/ paths, the three compose files, no obsolete version key
- Development: AGENTS.md and the symlink trap, running locally in demo mode
- Architecture: how demo mode is put together, and the three honeymoon columns
that encode a decision (rank, arrive_day_offset, leg coordinates)
- Honeymoon portal: split view, minimised overlay, flying to a day, travel arcs,
the Travel tab, overnight legs, stays map/ranking/sort/mid tier, and dates
that no longer delete days
- Troubleshooting: six new rows, mostly demo- and pipeline-shaped
Give the two longest pages internal headings
Honeymoon portal was 369 lines under a single heading, which is a wall
rather than a page — its tab-by-tab structure was hiding in bold
lead-ins. Promoted those to headings so the wiki's own contents list and
the sidebar can navigate it, and did the same for Finances. The prose is
untouched; the lead-in stays bold because it is the first sentence of its
section, not a label.
Also dropped the heading five pages repeated from their own title, an
artefact of splitting a level-3 section into a page of its own.
Move the technical documentation out of the README
Fifteen pages, split from a README that had grown to 1,083 lines. The
content is moved verbatim — only heading levels shifted — apart from the
Development page, which was a single line pointing at CLAUDE.md and is now
a real page, and Home and _Sidebar, which are new.
Every substantive line of the old README was checked to still exist in
either the trimmed README or one of these pages.
The README keeps what a front page is for: what the thing is, the
screenshots, a quick start, and an index of these pages.