This repository is organized as a monorepo for the FountainCMS ecosystem, containing both frontend (React) and backend (NestJS) codebases.
fountaincms/
├── frontend/ # React + Vite frontend app
│ ├── src/
│ ├── public/
│ ├── vite.config.ts
│ ├── index.html
│ ├── package.json
│ └── tsconfig.json
├── backend/ # NestJS backend (TypeScript)
│ ├── src/
│ │ ├── content/
│ │ ├── roles/
│ │ ├── user/
│ │ └── ...
│ ├── test/
│ ├── package.json
│ ├── tsconfig.json
│ ├── jest.config.js
│ └── README.md
├── package.json # Monorepo root (workspaces)
├── .gitmessage # Conventional Commits template
├── .husky/ # Git hooks (commit-msg, pre-commit)
├── lint-staged.config.js
├── commitlint.config.js
├── SECURITY.md
├── CONTRIBUTING.md
├── .github/ # Issue/PR templates, workflows
├── .nvmrc # Node.js version for development (v22.13.1)
└── README.md
- Node.js (v22.13.1 required, see
.nvmrc) - npm (v7+ recommended for workspaces)
At the root of the repository, run:
npm installThis will install dependencies for both frontend and backend using npm workspaces.
npm run devThis will start both the frontend and backend in parallel using concurrently.
npm run dev:frontendnpm run dev:backendAPI Documentation (Swagger) (Available after task completion #20)
Once the backend is running, visit:
http://localhost:4000/api-docs
for interactive API docs (NestJS Swagger).
To help you write consistent commit messages, a template is provided in .gitmessage following the Conventional Commits
standard.
git config --local commit.template .gitmessageThis will prompt you with the template when you run git commit.
- Linting and formatting are enforced via Husky and lint-staged for both frontend and backend.
- Run all tests for both frontend and backend:
npm test - Pre-commit hooks will block commits if linting, formatting, or tests fail.
This project uses Keep a Changelog and Semantic Versioning.
- Update
CHANGELOG.mdwith changes for the new version. - Commit your changes:
git add CHANGELOG.md git commit -m "chore(release): update changelog for vX.Y.Z" - Tag the release:
git tag vX.Y.Z git push origin vX.Y.Z
- Push your branch and tags:
git push --follow-tags
See CHANGELOG.md for the latest changes and release history.
- See CONTRIBUTING.md for guidelines.
- See SECURITY.md for security policy and reporting vulnerabilities.
FountainCMS backend has been successfully migrated from Node.js/Express to NestJS for improved scalability, modularity, and type safety.
- All API endpoints are now powered by NestJS.
- Documentation and developer experience have been enhanced.
- Release management and changelog are now in place for transparency.
We welcome contributors of all experience levels:
- Help us build new features and integrations
- Report and fix bugs
- Improve documentation and developer experience
- Review and test code
How to join:
- Check GitHub Issues for open tasks and feature requests
- Start or join discussions in GitHub Discussions
- Submit pull requests for improvements
Connect with us:
- Star the repo to show your support
- Share feedback and ideas
- Join our open source journey!
GitHub: https://github.com/building-for-fun/fountainCms
Feel free to add more details as your project evolves.