Context
When downstream projects replace the default home module with a custom one (e.g. Lou uses lou.view.vue instead of home.view.vue), there are a few patterns to follow that aren't documented.
Documentation to add in CLAUDE.md
Downstream config patterns section:
- Post-login redirect: Set
sign.route in global config override (e.g. lou.config.js). Used by signin, signup, and org flows. Default: /tasks.
- Custom home page: Replace
home.router.js with a project-specific router (e.g. lou.router.js) that maps / to a custom view. Set display: false in route meta to hide from sidenav — the landing page stays accessible via logo.
- Config layering: Module configs (
*.development.config.js) load first, then global overrides ({env}.config.js). Override in global config, not module configs, to avoid stack merge conflicts.
Why
Discovered during Lou migration — took multiple iterations to find that sign.route was configurable and that display: false was the right way to hide the landing from sidenav without stack changes.
Context
When downstream projects replace the default home module with a custom one (e.g. Lou uses
lou.view.vueinstead ofhome.view.vue), there are a few patterns to follow that aren't documented.Documentation to add in CLAUDE.md
Downstream config patterns section:
sign.routein global config override (e.g.lou.config.js). Used by signin, signup, and org flows. Default:/tasks.home.router.jswith a project-specific router (e.g.lou.router.js) that maps/to a custom view. Setdisplay: falsein route meta to hide from sidenav — the landing page stays accessible via logo.*.development.config.js) load first, then global overrides ({env}.config.js). Override in global config, not module configs, to avoid stack merge conflicts.Why
Discovered during Lou migration — took multiple iterations to find that
sign.routewas configurable and thatdisplay: falsewas the right way to hide the landing from sidenav without stack changes.