After months of building admin panels from scratch for every project,
I decided to build a proper starter template. Here's what I ended up with
and the key decisions I made along the way.
What is HeapAdmin?
HeapAdmin is a full-stack admin dashboard template built with:
- Backend: Laravel 12, PHP 8.2, Laravel Sanctum, RESTful API
- Frontend: Vue 3, Vite, CoreUI, Axios, Vue Router
- Database: SQLite / MySQL / PostgreSQL (your choice)
Live demo: https://heapadmin-login.vercel.app
Why Laravel 12?
Most templates I found were still on Laravel 9 or 10. Laravel 12 brings
cleaner service providers, better performance, and I wanted something
up to date that wouldn't need a major upgrade in 6 months.
Why decouple frontend and backend?
I chose a fully decoupled architecture — Laravel as pure API, Vue as
pure frontend — instead of Inertia.js or Blade+Vue hybrid. This means:
- You can swap the frontend framework without touching the backend
- Mobile app later? Just consume the same API
- Frontend and backend can be deployed independently
The tradeoff: more setup initially, CORS configuration, token management.
Worth it for anything beyond a simple CRUD app.
What's included
- Complete user management (CRUD + pagination)
- Analytics dashboard with charts
- Role-based authentication with Laravel Sanctum
- Responsive design across all devices
- Professional documentation
The architecture
Frontend (Vue 3 + Vite) Backend (Laravel 12)
↓ ↓
Vue Router RESTful API
CoreUI components Laravel Sanctum
Axios HTTP client →→→ Eloquent ORM
Pinia state MySQL/PostgreSQL
GitHub repos
- Frontend: https://github.com/Peter29-heap/heapadmin-dashboard
- Backend: https://github.com/Peter29-heap/heapadmin-api
The full template is available on Gumroad if you want the complete
production-ready version with documentation and 6 months of updates.
Feedback welcome — especially on the API structure and Vue component
organization. What would you do differently?
Top comments (0)