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.