Skip to content

Repository files navigation

If you like the project, please give it a Star! ⭐

SynaptikCMS

A full-featured flat-file PHP CMS built for speed and simplicity. JSON storage, no database, no dependencies — just upload to any server and go.



Live Demo · Download Themes · Download Plugins · Documentation · Changelog · Report a Bug

Dashboard Editor Media Manager Dark Editor Markdown Gallery Example


What is SynaptikCMS?

SynaptikCMS is a flat-file content management system built in PHP. Content is stored as individual JSON files — no database engine, no configuration overhead, no moving parts.

It was built for developers, designers, artists, creative professionals, writers, bloggers, or anyone who want a CMS that is fast by default, easy to deploy anywhere, and simple enough to theme from scratch without fighting a framework.

Installed footprint: ~2MB. Zero runtime dependencies beyond PHP.


Why SynaptikCMS?

SynaptikCMS WordPress Grav Kirby Bludit Typemill
Database required MySQL
Admin panel included Plugin
WYSIWYG + Markdown
Theme system ✓ hooks/filters ✓ Twig
Plugin system
One-click updates ✓ core/themes/plugins
Built-in i18n ✓ EN/FR/ES Plugin
Image optimization ✓ built-in Plugin Plugin Plugin Plugin Plugin
Built-in analytics ✓ plugin Plugin Plugin Plugin Plugin Plugin
Composer required
Install footprint ~2 MB ~86 MB ~52 MB ~20 MB ~9 MB ~10 MB
License MIT free GPL free MIT free Paid MIT free MIT free
Install time ~2 min ~10 min ~5 min ~5 min ~3 min ~5 min

SynaptikCMS is not trying to replace WordPress at scale. It is the right tool when you want a real admin panel with no database — for portfolios, documentation sites, small business sites, personal blogs or any project where simplicity and load speed matter.


Installation

No composer. No npm. No database setup.

  1. Download the latest release ZIP
  2. Extract and upload the files to your server
  3. Visit yourdomain.com/install.php (or yourdomain.com/subfolder/install.php) and complete the setup wizard (site name, language, admin password, admin folder name)

That's it. You're running.

⚠️ Always run install.php before using the CMS. See the installation guide for details.

Note: The default install package ships only with the default theme. You can download clean, beautiful and responsive free themes for your Synaptik installation on the Official Website's Themes Page. If you wish to extend the functionalities of your CMS, official plugins can be found on this page.


Features

Content

  • 3 content types — Articles, Pages, Projects (Portfolio)
  • WYSIWYG and Markdown editors — switch per post, content preserved
  • Draft system — autosave at user-defined intervals, one-click publish
  • Scheduled publication — set a future date, CMS publishes automatically
  • Categories and Tags — hierarchical categories (up to 3 levels), tag management, merge and purge orphans
  • Custom Fields — define extra fields per content type, use them in your theme
  • Related Content — manual selection or automatic suggestions based on shared tags and categories
  • Image Galleries — one or more galleries per post, 4 layouts: grid, masonry, justified, carousel
  • Shortcodes[toc], [gallery], [callout], [quote], [button], [recent_articles], [recent_projects], [articles_by_tag], [contact_form]

Admin Panel

  • Media Manager — upload, browse, rename, move with drag and drop, batch compression
  • Menu Builder — drag and drop custom navigation, nested items, external links
  • Template Editor — live-edit your active theme files with automatic backup before each save
  • SEO Overview — audit meta titles, descriptions and keywords across all content in one view
  • Alt Text Assistant — bulk-edit alt text and captions for gallery images
  • Sitemap Generator — one-click XML sitemap, submit URL shown inline
  • Backup and Restore — full ZIP backup of /data/, /files/ and settings; restore in one click
  • Automatic Updates — one-click updates for the CMS core, themes, and plugins, with an automatic safety backup before each update
  • Translation Editor — add or edit translations with the built-in editor (both for back-end and front-end), or simply customize the text strings displayed on your site

Themes

Plugins

  • Self-contained extensions under /plugins/ — own routing, data storage, and admin screens, with zero core file edits required
  • Plugin pages render inside the real admin panel (sidebar entry, standard layout) once activated
  • Install by uploading a .zip from Admin → Tools → Extensions, activate and deactivate with one click
  • Activation state tracked separately from installation — deactivating a plugin preserves its data
  • Official plugins can be downloaded at https://synaptikcms.com/plugins/
  • Full plugin developer documentation at https://synaptikcms.com/docs/tools/plugin-system/

SEO and Performance

  • Meta title, description, keywords per content item
  • Open Graph and Twitter Card tags
  • JSON-LD schema markup
  • Canonical URLs
  • RSS feed auto-injected in <head>
  • Per-request cache for settings and content indexes
  • Split-file architecture — single item pages load exactly one JSON file

Internationalisation

  • Front-end and admin panel fully localised
  • Ships with English, French, Spanish
  • Add a new language by dropping a JSON file in /lang/ or by using the built-in translation editor

System Requirements

Server

Requirement Minimum Notes
Web server Apache 2.2+ Nginx works but requires manual rewrite config
PHP 7.4+ 8.0+ recommended
Database None required

PHP Extensions

Required

Extension Used for
json All read/write on .json data files
mbstring Search, contact form validation, UTF-8 string ops
hash HMAC tokens (CSRF, theme preview signing)
session Admin authentication
pcre Slug sanitisation, HTML purification, content parsing
filter Email validation in contact form
fileinfo MIME type detection on file uploads

Required for image features

Extension Used for
gd Image resizing, thumbnails, JPEG/PNG/GIF optimisation
GD + JPEG Handling .jpg/.jpeg uploads
GD + PNG Handling .png uploads

Optional

Extension Used for
GD + WebP WebP conversion — gracefully disabled if absent
ZipArchive Theme and plugin upload, and automatic updates

Apache

Required modules: mod_rewrite, mod_authz_core
Required directive: AllowOverride All on the document root

The CMS ships with a root .htaccess handling URL routing, security headers and cache rules:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]

Nginx (not officially supported)

location / {
    try_files $uri $uri/ /index.php?$query_string;
}
location ~ ^/(data|bckps)/ { deny all; }
location ~ (settings\.json|admin-credentials\.php)$ { deny all; }

Filesystem Permissions

The following paths must be writable by the PHP process:

Path Required for
/ settings.json, install.lock during setup
/data/ All content read/write
/files/ Media uploads
/bckps/ Backups, CSRF secret
/admin/ Credentials, draft autosave
/theme/ Theme ZIP upload
/plugins/ Plugin ZIP upload and each plugin's own data storage

Recommended: 755 for directories, 644 for files.

Browser (Admin Panel)

Browser Minimum
Chrome / Edge 80+
Firefox 75+
Safari 13.1+

Internet Explorer is not supported.

Setup Checklist

[ ] Apache 2.2+ with mod_rewrite enabled
[ ] AllowOverride All on the document root
[ ] PHP 7.4+ (8.0+ recommended)
[ ] Extensions: json, mbstring, hash, session, pcre, filter, fileinfo
[ ] GD with JPEG and PNG support
[ ] ZipArchive recommended (theme/plugin upload, auto-updates)
[ ] Root .htaccess in place
[ ] Write permissions on: /, /data/, /files/, /bckps/, /admin/, /theme/, /plugins/

Theming

Themes live in /theme/{theme-name}/. A minimal theme requires:

theme/
└── my-theme/
    ├── css/
    │   └── style.css
    ├── header.php
    ├── footer.php
    └── home.php

Optional overrides: content-articles.php, content-pages.php, content-projects.php, content-list.php, 404.php, functions.php, page-templates/, partials/.

The Theme API exposes hooks (add_action), filters (add_filter), and helpers (render_site_logo, render_header_scripts, render_navigation, etc.). See the documentation for the full reference.


Plugins

Plugins live in /plugins/{plugin-name}/. A minimal plugin requires:

plugins/
└── my-plugin/
    ├── plugin.json
    └── my-plugin-init.php

Unlike themes, plugins are not tied to the active theme — once activated from Admin → Tools → Extensions, a plugin runs regardless of which theme is in use, and can register its own admin sidebar entry and full admin page rendered inside the standard admin layout. See the plugin system documentation for the full developer reference: the plugin API, admin page rendering, front-end shortcode integration, session reuse, CSRF, i18n, and how to package a plugin for distribution.


License

MIT — free for personal and commercial use. See LICENSE.md.


Contributing

Issues and pull requests are welcome. Please open an issue before submitting a large PR to discuss the change.


Made with ❤️ by @synaptikcms

Releases

Packages

Contributors

Languages