inventor96 / mako-vue
Opinionated boilerplate for web apps using PHP/Mako on the backend, and Vue on the frontend.
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/inventor96/mako-vue
Requires
- php: >=8.1.0
- inventor96/inertia-mako: ^1.4
- inventor96/mako-mailer: ^1.0
- inventor96/mako-template-pp: ^1.0
- mako/framework: 10.0.*
README
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.
Features & Stack
- 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
- 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*
- Caddy for HTTPS in local development*
- mkcert for local HTTPS certificate creation*
- 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.
How to Use It
Use composer to create a new project based on this boilerplate:
composer create-project inventor96/mako-vue your-project-name
For 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.
Limitations
vite.config.jsis setup for HTTPS via Caddy in Docker. If you are not using Docker, you may need to adjust the Vite server settings for HTTPS or switch to HTTP.- 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.
To-Dos
- Add baseline GitHub Copilot instructions.
- Add tests for backend and frontend code.