Full-stack startup monorepo template. Build your next startup idea with best practices from day 1!
π‘ After working on dozens of startup projects, I realised a pattern of applications/code/infrastructure that every startup needs.
π¨βπ» Instead of repeating myself from project to project I decided to extract a project template into this seed.
π Now anyone can clone this repo and get all it's benefits for their startup.
π More about benefits in the Roadmap section.
You need to have next things:
- Docker (tip:
brew install --cask docker
) - Node.js (tip:
brew install nvm && nvm install 18
) - Yarn (tip:
npm i -g yarn
) - Clone this repo (tip:
git clone git@github.com:spy4x/seed.git
) - Install dependencies
yarn
and build essential docker imagesyarn docker:init
. On first run it will download all dependencies, so grab your favourite coffee or tea while initialization magic happens β
- Start all apps and local infrastructure with
yarn start
. - Open in your browser:
- Frontend: http://localhost:4200
- Admin Panel: http://localhost:4201
- Backend Swagger: http://localhost:8080/api
What is implemented and what is planned.
β
Manage monorepo with multiple frontend and backend projects
β
Running everything locally with a single command - $ yarn start
β
Deploying apps to the cloud
β
TypeScript config (strict rules)
β
ESLint config (strict rules)
β
Prettier config
β
Pre-commit hook for code quality control
β
Deploy to production with a single command - $ yarn deploy:all
π CI/CD
π Manage environments on local machine
π Follows "12 Factor App"
π Calculate affected apps based on latest release tag
π Staging environment
π Manage commits
π Update versions
β
Backend infrastructure diagram
β
Cloud Run
β
Nest.js
β
Prisma
β
Configure Swagger integration with Nest.js
β
CQRS architecture
β
Verify user JWT authentication
π Unit-testing controller
β
Unit-testing command handler
β
Unit-testing query handler
π Unit-testing event handler
π Load-testing
β
Logging
β
Schedule tasks
β
Users management
β
REST API
β
Send Push notifications
π Http and Redis caching
π Stripe subscriptions and payments
β
Automatic backups
β
Restore backup
β
Read replicas
π Automatic database migrations
π Cloud Storage security rules
π Handle upload
π Keep track of files
π Resize uploaded file
β
Authentication
β
NgRx
β
E2E-testing
β
Unit-testing UI components
β
Unit-testing NgRx State
β
Unit-testing Container component
π File upload
π Logging
π Build once, use bundle for every environment
β
TailwindCSS + Mobile-first responsive design
β
Styles shared between frontend apps
π Offline work
π Push Notifications
π Auto-update
π Installable
π Users management
π Groups management
π Reset user's password
π Realtime update of data from backend
π Group access to data
π Manage your personal account - avatar, email, oAuth providers, groups memberships
π Manage group account - avatar, members, accesses
π Invite person to your group by email
π Transfer ownership of a group
Contributions are welcome, either it is a typo fix, bug fix, feature proposal, a pull request or anything else!
For more info follow contributing guidelines.