This document outlines the standard project templates and starter kits available for all Bayat projects.
Project templates and starter kits serve to:
- Accelerate project setup and onboarding
- Enforce standards and best practices
- Provide consistent structure across projects
- Include pre-configured tools and dependencies
- Reduce decision fatigue for developers
Repository: github.com/bayat/templates/react-starter
Features:
- React 18+ with TypeScript
- State management with Redux Toolkit
- Routing with React Router
- Component library integration (MUI/Chakra UI)
- Jest and React Testing Library
- ESLint and Prettier configuration
- Husky pre-commit hooks
- GitHub Actions CI/CD workflows
- Storybook for component documentation
- Internationalization setup
- Accessibility testing configuration
Usage:
npx create-bayat-app my-app --template react
Repository: github.com/bayat/templates/angular-starter
Features:
- Angular 15+ with TypeScript
- NgRx for state management
- Angular Material components
- Jasmine and Karma test setup
- ESLint and Prettier configuration
- Husky pre-commit hooks
- GitHub Actions CI/CD workflows
- Internationalization with ngx-translate
- Responsive design foundation
Usage:
npx create-bayat-app my-app --template angular
Repository: github.com/bayat/templates/vue-starter
Features:
- Vue 3 with Composition API
- TypeScript integration
- Pinia for state management
- Vue Router
- Vite build system
- Vitest and Testing Library
- ESLint and Prettier configuration
- Husky pre-commit hooks
- GitHub Actions CI/CD workflows
- i18n internationalization
Usage:
npx create-bayat-app my-app --template vue
Repository: github.com/bayat/templates/nodejs-api
Features:
- Express.js/NestJS framework
- TypeScript configuration
- MongoDB/PostgreSQL database setup
- Authentication with JWT
- API documentation with Swagger
- Unit and integration testing with Jest
- Docker configuration
- GitHub Actions CI/CD workflows
- Logging with Winston
- Error handling middleware
- Rate limiting and security headers
Usage:
npx create-bayat-app my-api --template nodejs-api
Repository: github.com/bayat/templates/aspnet-api
Features:
- ASP.NET Core 7+
- Entity Framework Core
- Identity for authentication
- Swagger/OpenAPI documentation
- XUnit testing
- Docker configuration
- GitHub Actions CI/CD workflows
- Logging with Serilog
- HealthChecks
- API versioning
Usage:
dotnet new bayat-webapi -n MyApi
Repository: github.com/bayat/templates/django-api
Features:
- Django 4+ with Django REST Framework
- PostgreSQL configuration
- JWT authentication
- API documentation with drf-spectacular
- Testing with pytest
- Docker configuration
- GitHub Actions CI/CD workflows
- Celery for async tasks
- Django Debug Toolbar
- Logging configuration
Usage:
pipx run bayat-cli create-project --template django-api my_project
Repository: github.com/bayat/templates/react-native
Features:
- React Native with TypeScript
- Navigation with React Navigation
- State management with Redux Toolkit
- Styled components
- Testing with Jest
- ESLint and Prettier configuration
- Husky pre-commit hooks
- Fastlane for deployment
- Internationalization
- Dark mode support
Usage:
npx react-native init MyApp --template bayat-react-native-template
Repository: github.com/bayat/templates/flutter
Features:
- Flutter 3+ with Dart
- State management with Provider/Bloc
- Navigation 2.0
- Material Design 3/Cupertino components
- Unit and widget testing
- Firebase integration
- Internationalization
- Dark mode support
- CI/CD with GitHub Actions
Usage:
flutter create --template=bayat_flutter my_app
Repository: github.com/bayat/templates/mern-stack
Features:
- MongoDB, Express.js, React, Node.js
- TypeScript throughout
- Authentication system
- Form validation
- API integration
- Testing for both frontend and backend
- Docker Compose configuration
- GitHub Actions CI/CD workflows
Usage:
npx create-bayat-app my-app --template mern
Repository: github.com/bayat/templates/dotnet-angular
Features:
- ASP.NET Core backend
- Angular frontend
- SQL Server database
- Authentication with Identity
- Entity Framework Core
- API documentation
- Testing for both frontend and backend
- Docker Compose configuration
Usage:
dotnet new bayat-fullstack -n MyApp
Repository: github.com/bayat/templates/unity-starter
Features:
- Unity project structure
- Common utility scripts
- CI/CD setup
- Testing framework
- Input system configuration
- Scene management
- Asset pipeline setup
Usage: Downloadable from internal package registry
Repository: github.com/bayat/templates/unreal-starter
Features:
- Unreal Engine project structure
- Blueprint organization
- C++ code standards
- Common gameplay framework
- Testing setup
- Build configuration
Usage: Downloadable from internal package registry
All templates include the following standard components:
README.md
with setup instructionsCONTRIBUTING.md
with contribution guidelinesCHANGELOG.md
for version historyLICENSE
file with appropriate license
.gitignore
with appropriate exclusions.editorconfig
for consistent editor settings- Language-specific linting configuration
- CI/CD configuration files
- Consistent folder organization
- Clear separation of concerns
- Standard naming conventions
- Environment configuration
- Dependency vulnerability scanning
- Secure defaults
- Environment variable templates
- Authentication boilerplate where applicable
Each template has its own installation method, typically using the project's standard CLI tools.
After generating a project from a template:
- Update project metadata in configuration files
- Review and adjust dependencies as needed
- Customize environment variables
- Review and adjust CI/CD workflows
- Update README with project-specific information
Templates follow semantic versioning:
- Major versions: Breaking changes
- Minor versions: New features, non-breaking changes
- Patch versions: Bug fixes and small updates
To suggest improvements to templates:
- Create an issue in the template repository
- Discuss the proposed changes
- Submit a pull request
- Ensure all tests pass
- Update documentation
Templates are maintained by the Platform Team and are updated:
- Monthly for security patches
- Quarterly for minor updates
- Bi-annually for major updates
For help with templates:
- Check template-specific documentation
- Contact the Platform Team via Slack (#platform-support)
- Submit issues to the appropriate template repository