A modern, lightweight CMS built with Symfony that can operate in both traditional and headless modes. Features a powerful admin interface and GrapeJS for visual content editing.
-
Articles Management
- Create, edit, and delete articles
- Rich text editing with GrapeJS
- Article scheduling (publish/unpublish dates)
- Article categories and tags
- Featured images with automatic WebP conversion
- SEO metadata management
-
Pages Management
- Static page creation and management
- Visual page builder with GrapeJS
- Custom page templates
- SEO-friendly URLs
-
Media Management
- Image upload and management
- Automatic WebP conversion
- Image optimization
- Alt text management
- Bulk upload support
-
Modern Dashboard
- Overview of content statistics
- Recent activity tracking
- Quick access to common actions
- Responsive design
-
User Management
- Role-based access control (Admin/Editor roles)
- User creation and management
- Secure password management
- User activity logging
-
Headless Mode
- Toggle between traditional and headless CMS
- API endpoints for content delivery
- Configurable API access
- CORS configuration
-
Security
- Role-based access control
- CSRF protection
- Secure password hashing
- Protected admin routes
-
Performance
- Image optimization
- WebP conversion
- Caching support
- Optimized database queries
- Built with Symfony 6.x
- PHP 8.1+ support
- Doctrine ORM
- Twig templating
- GrapeJS integration
- RESTful API
- Modern UI with Tailwind CSS
- PHP 8.1 or higher
- Composer
- MySQL/MariaDB
- Node.js and npm (for asset management)
- GD or Imagick PHP extension
- Clone the repository:
git clone https://github.com/andrejsrna/simple-headless-symfony-cms-grapejs.git
- Install PHP dependencies:
composer install
- Configure your database in
.env
:
DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name"
- Create database and run migrations:
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate
- Create an admin user:
php bin/console app:create-admin
- Start the Symfony development server:
symfony server:start
- Access the admin panel at
/admin
- Log in with your admin credentials
- Start managing your content through the intuitive admin interface
When in headless mode, the CMS provides RESTful API endpoints:
GET /api/articles
- List all articlesGET /api/articles/{id}
- Get specific articleGET /api/pages
- List all pagesGET /api/pages/{id}
- Get specific page
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.