An opinionated boilerplate for web applications using PHP/Mako on the backend and Vue.js on the frontend.
This is my personal starter template for building web applications with Mako and Vue.js. It aims to provide a solid foundation with common features and best practices, allowing developers to focus on building their applications rather than setting up the initial structure. It's been a common starting point for my own projects, so I'm sharing it in hopes that it can be useful to others as well.
- Mako PHP Framework
- Environment-specific configuration via hierarchical pattern with Mako's built-in config system
- Persistent storage tailored to MySQL/MariaDB databases
- Database migrations via built-in Mako migration system, including separate user for running migrations
- mako-template-pp for enhanced templating capabilities
- mako-mailer for email sending and templating
- Inertia.js for seamless server-driven SPA experience
- intertia-mako adapter
- Vue.js 3 with Composition API and Single File Components
- Vite for fast development and build process
- Vue DevTools for easier frontend debugging
- Bootstrap for responsive UI
- Bootstrap Icons for iconography
- Bootswatch for easy theming
- Common pre-built components and layout for Vue.js
- Minimal banner to indicate non-production environments
- Simple authentication scaffolding
- IDE helpers for VSCode
- Optional Dockerization for consistent development and deployment
- Separation of dev and prod environments by utilizing compose.override.yml
- Separate services for PHP, MariaDB, and Node/Vite
- File ownership and permissions handling for seamless host-container interaction*
- Pre-configured for Xdebug with VSCode integration*
- Mailpit for local email testing*
- Adminer for database management*
- Host networking allows local domain name usage*
- Allows concurrent projects to run locally without the need for port separation or reverse proxies*
* Local development only.
Use composer to create a new project based on this boilerplate:
composer create-project inventor96/mako-vue your-project-nameFor additional details, if you don't/can't use composer on your host, and/or for general usage of this boilerplate; please see the wiki for detailed instructions on setting up and using this boilerplate.
- Local development environment is optimized for Linux hosts. Other OSes may require additional configuration.
- Production readiness (security, performance optimizations, etc.) in a Docker context has not been fully tested.
- Vue DevTools in Docker cannot open files in an IDE running on the host.
- Add baseline GitHub Copilot instructions.
- Add tests for backend and frontend code.