Documentation

Requirements

Installation

Local development

git clone https://github.com/easeo-nl/easeo-cms.git
cd easeo-cms
php -S localhost:8000 router.php

Visit http://localhost:8000 — the setup wizard will guide you through configuration.

Production (shared hosting)

  1. Upload the files to your web server (FTP or git deploy)
  2. Visit the domain — install.php creates the data files
  3. Complete the 5-step setup wizard
  4. Configure SMTP in admin for email notifications

Architecture

All data is stored as JSON files in data/. No database, no migrations, no ORM.

File Purpose
site.json Company info, colors, fonts, socials, tracking
content.json Page content keyed by slug
navigation.json Main + footer menu items
users.json User accounts
posts.json Blog posts
media.json Media library index
forms.json Form definitions
pages.json Dynamic pages
redirects.json URL redirects

Core files

Internationalization (i18n)

EASEO CMS has built-in multilingual support. Language files are stored in lang/:

lang/
  en.json    ← default (English)
  nl.json    ← Dutch

Use t('key') anywhere in PHP to output a translated string:

<?= t('button_save') ?>          // "Save" or "Opslaan"
<?= t('error_field_required', ['field' => 'Email']) ?>  // with params

Adding a language

  1. Copy lang/en.json to lang/xx.json (your locale code)
  2. Translate all values (keep the keys in English)
  3. Set language in data/site.json to your locale code

Security

Data Sovereignty

EASEO CMS is designed for full control over your data:

Your JSON data files are plain text. You can read, export, backup, and migrate them with standard tools. No proprietary format, no vendor lock-in.

Contributing

Pull requests are welcome. Fork the repository, make your changes, and open a PR.

Conventions

License

MIT License — see LICENSE.txt