- Contributors: read .github/CONTRIBUTING.md before opening issues or pull requests.
- Developers: read docs/conventions.md before making code changes.
- For template design principles, see this reference.
1 - Setup to allow incoming merge from upstream template update
# run once only after you `clone`, or `fork` or `delete .git and run git init`
./setup-upstream.sh2 - Updating the template
# Commit and push to remote before running commands below
git fetch upstream # includes tags
git pull upstream <branch or tag> --no-rebase
# NO MORE IN USE git merge upstream/<branch or tag> --allow-unrelated-histories
# There may be some template related merge conflicts to resolve.3 - Refresh the changelog from Conventional Commits
Release automation is handled by the release-please job inside ci.yml.
- It opens or updates a release PR from Conventional Commits on
mainandrel/*. - Existing handwritten changelog entries remain grouped under
0.1.0. - Setup and workflow details live in docs/git.md.
- Troubleshooting lives in docs/release-troubleshooting.md.
Important limitation: release-please creates release PRs from releasable commits such as feat, fix, and deps. A branch with only chore commits will not produce a release PR unless you force a release with a Release-As: footer in the commit body.
This repository is a monorepo template for building full-stack JavaScript applications with Node.js, Express, and Vue.
It combines backend and frontend examples in apps/ and shared reusable code in common/ so teams can start from a consistent structure instead of assembling the stack from scratch. It includes workspace-based package management, shared schemas and utilities, sample authentication flows, OpenAPI tooling, Docker support, GitHub Actions workflows, and MCP server examples.
Use it when you want a single repository that can host:
- Express-based backend services
- Vue and Vite frontend applications
- shared ESM modules for Node, browser, Vue, and isomorphic code
- common
zodschemas and supporting utilities - deployment, documentation, and database helper scripts
- sample implementations for features such as SAML, OIDC, OAuth, OTP, FIDO2, and push notifications
Use these documents depending on the part of the repository you are working on:
- .github/CONTRIBUTING.md - contributor setup, hooks, issue reporting, and pull request guidance
- docs/git.md - git workflow, release flow, tags, and merge strategy
- docs/conventions.md - coding, tooling, commit, and runtime conventions
- docs/NOTES.md - internal notes, caveats, and open questions
apps: backend and frontend application workspacescommon: shared JavaScript used byappsdocs: project documentationscripts: deployment and documentation scripts
Use the following guides depending on what you want to build or extend in this repository:
- Backend services: docs/install-apps.md
Start from the sample Express application in
apps/and use it as the baseline for new Node.js servicesm or Use the sample Vue and Vite applications as scaffolding for new browser-based projects. - Shared code and schemas: docs/install-common.md
Reference the reusable modules in
common/for Node, browser, Vue, isomorphic utilities, and sharedzodschemas.