Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Opinionated boilerplate for web apps using PHP/Mako on the backend, and Vue on the frontend.

License

inventor96/mako-vue

Repository files navigation

Mako-Vue

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
  • 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.

How to Use It

Please see the wiki for detailed instructions on setting up and using this boilerplate.

Limitations & To-Dos

  • 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.
  • Move NavLinks class to be a module rather than a model
  • Create Mako console command(s) to scaffold new Mako-Vue projects. (e.g. session cookie setup, security/encryption keys, etc.)
  • Configure Composer stuff for easier installation as a project.
    • Console commands
    • NPM install?
    • Prompt for network setup script?
    • Add/remove common changes in .gitignore?
  • Update network script to separate Xdebug ports for multiple projects on the same host.

About

Opinionated boilerplate for web apps using PHP/Mako on the backend, and Vue on the frontend.

Topics

Resources

License

Stars

Watchers

Forks