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 [email protected]: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.
๐ป Created by Anton Shubin
|
|
|