FearlessCMS Customization Overview
Introduction
FearlessCMS is designed to be highly customizable while maintaining simplicity and performance. This guide provides an overview of all the ways you can customize your FearlessCMS installation.
🎨 Theme Customization
Creating Custom Themes
The primary way to customize FearlessCMS is through themes. Themes control the visual appearance and layout of your website.Key Features:
- HTML Templates: Use Handlebars templating for dynamic content
- CSS Styling: Full control over visual design
- JavaScript: Add interactive functionality
- Modular Templates: Break down templates into reusable components
- Theme Options: User-friendly customization without code editing
- Creating Themes Guide - Complete theme development tutorial
- Theme Development Workflow - Step-by-step process
- Template Reference - All available variables and syntax
- Text: Simple text input
- Textarea: Multi-line text input
- Select: Dropdown selection
- Checkbox: Boolean toggle
- Color: Color picker
- Image: Image upload/selection
- Array: Repeating field groups
Getting Started:
Theme Options System
Allow users to customize themes without editing code:Available Option Types:
Example:
json
{
"options": {
"primaryColor": {
"type": "color",
"label": "Primary Color",
"default": "#007bff"
},
"showSidebar": {
"type": "checkbox",
"label": "Show Sidebar",
"default": true
}
}
}
Usage in Templates:
html
{{#if themeOptions.showSidebar}}
{{/if}}
🔌 Plugin Development
Creating Custom Plugins
Extend FearlessCMS functionality with custom plugins:Plugin Capabilities:
Getting Started:
Built-in Plugins
FearlessCMS includes several built-in plugins:🎛️ System Configuration
CMS Modes
Configure FearlessCMS for different environments:Available Modes:
Configuration:
php
// In config/config.json
{
"mode": "production",
"debug": false,
"maintenance": false
}
Getting Started:
File Permissions
Proper file permissions are crucial for security and functionality:Critical Directories:
sessions/
- Session file storagecontent/forms/
- Forms plugin datacontent/form_submissions/
- Form submissionsconfig/
- Configuration filesuploads/
- File uploadsadmin/uploads/
- Admin file uploadsSecurity Best Practices:
Getting Started:
📝 Content Customization
Content Structure
Customize how content is organized and displayed:Content Types:
Content Fields:
Template Variables
Access dynamic content in templates:Page Variables:
{{title}}
- Page title{{content}}
- Page content{{url}}
- Page URL{{meta}}
- Page metadataSite Variables:
{{siteName}}
- Site nameFast and Fearless Content Managment
- Site description2025
- Current year{{theme}}
- Active theme nameMenu Variables:
{{menu.main}}
- Main navigation menu{{menu.sidebar}}
- Sidebar menu{{menu.footer}}
- Footer menu🎯 Advanced Customization
Modular Templates
Break down templates into reusable components:Module Syntax:
html
{{module=header.html}}
{{module=footer.html}}
{{module=navigation.html}}
Benefits:
Getting Started:
SASS/SCSS Support
Use SASS for advanced CSS development:Features:
Getting Started:
Custom JavaScript
Add interactive functionality:Integration Methods:
assets/js/
directoryBest Practices:
🔧 Development Workflow
Local Development
Set up a development environment:Testing
Ensure your customizations work correctly:Deployment
Deploy customizations to production:📚 Resources
Documentation
Examples
Community
🎯 Best Practices
Security
Performance
#### Built-in Page Caching
FearlessCMS includes a built-in file-based page caching system for public (non-logged-in) pages. When a public page is requested, the generated HTML is saved as a static file in the cache/
directory and served for subsequent requests for up to 5 minutes. This greatly improves performance and reduces server load. The cache is automatically cleared whenever content is updated via the admin interface, ensuring visitors always see the latest version of your site.
Maintainability
Accessibility
---
Happy customizing! 🚀
This guide covers the main customization options in FearlessCMS. For detailed information on specific topics, refer to the individual documentation files.