Skip to content
/ ava Public

πŸ“ Ava CMS: A fast, flexible, flat-file CMS for bespoke personal websites, blogs, portfolios, digital gardens, docs and more

License

Notifications You must be signed in to change notification settings

avacms/ava

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

256 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ava CMS

A fast, flexible, file-based content management system built with modern PHP.


Ava CMS screenshots


Ava CMS

Release Issues Stars Code size License Discord

Ava CMS is a modern flat-file CMS for people who want a website they can understand, move, scale and keep.

Your content lives on disk as plain files, not rows in a database or records in a proprietary system. Create a Markdown file and you have a page. Edit it, refresh your browser, and it’s live.

Your site stays readable, portable, and fully yours. No proprietary formats. No hidden layers. Just files in, website out.

your-site/
β”œβ”€β”€ app/           # Your code
β”‚   β”œβ”€β”€ config/        # Configuration (site settings, content types, taxonomies, users)
β”‚   β”œβ”€β”€ plugins/       # Enabled plugins
β”‚   β”œβ”€β”€ snippets/      # Reusable HTML/PHP content blocks
β”‚   └── themes/        # Your HTML/PHP templates
β”œβ”€β”€ content/       # Your content
β”‚   β”œβ”€β”€ pages/           # Your Markdown content
β”‚   └── ...              # Other content types (posts, products, etc)
β”œβ”€β”€ core/          # Ava CMS code
β”œβ”€β”€ public/        # Web root, public files
β”‚   └── media/           # Uploaded media (images, videos, etc)
β”œβ”€β”€ storage/       # Cache and logs
β”œβ”€β”€ vendor/        # Minimal Composer dependencies
└── ava            # CLI tool

Ava CMS is not a β€œone-click” CMS, and it doesn’t try to be. It trades heavy admin interfaces and complex deployment pipelines for speed, clarity, and control. If you’re comfortable editing files, writing a little HTML, and checking documentation β€” or want a CMS that grows with you as you learn β€” Ava fits naturally into your workflow.

✨ Why Ava CMS?

  • πŸ“ Markdown & HTML β€” Write fast in Markdown, drop into HTML when you need total control.
  • ⚑ Instant feedback β€” No complicated build steps or deploy queue. Edit a file, refresh, done with automatic indexing.
  • 🎨 Design freedom β€” Plain PHP templates with standard HTML/CSS. Ava CMS stays out of your way.
  • 🧩 Flexible content modeling β€” Define blogs, portfolios, events, catalogs, or anything else using custom content types and fields.
  • πŸš€ Dynamic features without bloat β€” Search, filtering, pagination and sorting work out of the box.
  • πŸ› οΈ Power when you want it β€” A CLI, plugin system, and hooks keep put advanced features at hand.
  • πŸ“ˆ Seamless scaling β€” Switch engines with a single setting, optional SQLite keeps sites with tens of thousands of posts snappy.
  • πŸ€– LLM-friendly β€” Clear files, detailed docs, and a smooth CLI make Ava CMS + AI tools a great pair to help you build themes and plugins.

πŸ“¦ What’s included

  • Content types, custom fields and taxonomies for modeling your site your way
  • Optional admin dashboard for structured content editing and site monitoring
  • Smart routing based on your content structure or configured patterns
  • Shortcodes and snippets for reusable dynamic blocks inside Markdown
  • Search across your content with configurable weighting
  • Plugins + hooks (with bundled plugins like sitemap, redirects, and feeds)
  • CLI tool for everyday tasks (cache, users, diagnostics, and more)
  • SEO features like customisable meta tags, sitemaps, and clean URLs
  • Caching (two-tier content indexing + configurable full-page caching for static-speed delivery)

πŸ’‘ How it works

  1. Write β€” Create Markdown files in content/.
  2. Index β€” Ava CMS automatically scans your files and builds fast indexes.
  3. Render β€” Your theme turns that content into HTML.

You choose how you work: edit directly on your server (SFTP/SSH), work locally and upload, use Git, or mix and match. Ava CMS doesn’t lock you into a workflow, it adapts to yours.

🏁 Quick Start

Requirements

  • PHP 8.3+
  • Composer

Optionally, for better performance and features:

  • igbinary PHP extension for faster indexing and caching
  • gd or imagick PHP extension for image processing

Only faster for massive sites (~10,000+ items) or very low memory environments:

That’s it! Ava CMS is designed to run happily whether it's on modest shared hosting, a scalable VPS, powerful cloud infrastructure or just your local machine and works well with most web servers (Apache, Nginx, Caddy, etc).

1) Install

⚠️ Always install from an official release. Do not clone the repository directlyβ€”the main branch may contain incomplete or unstable work-in-progress code.

Option A: Download a release

Option B: GitHub CLI (gh)

mkdir -p /tmp/ava-release && cd /tmp/ava-release
gh release download -R avacms/ava --pattern '*.zip' --clobber
unzip -q ./*.zip -d /path/to/your/site
cd /path/to/your/site
composer install

Then configure your site by editing app/config/ava.php and visit your site.

2) Configure

Edit your site settings in app/config/ava.php.

3) Run locally

Start the built-in PHP development server if you want to run Ava CMS locally:

./ava start
# or
php -S localhost:8000 -t public

Visit http://localhost:8000.

4) Create content

Add a new page by creating a Markdown file in content/pages/.

File: content/pages/hello-world.md

---
title: Hello World
status: published
---

# Welcome to Ava CMS!

This is my first page. It's just a text file.

Visit http://localhost:8000/hello-world to see it live.

πŸ“š Documentation

Documentation lives at https://ava.addy.zone/.

πŸ”Œ Plugins & Themes

Ava CMS includes a simple hook-based plugin system, and theming is just PHP templates. A few plugins are bundled in this repo (like sitemap, redirects, and a feed plugin) so you can see the pattern and ship common features quickly.

⚑ Performance

Ava CMS is designed to be blazing fast, whether you have 100 pages or 100,000:

  • Tiered caching: avoid repeating expensive work on every request.
  • Page caching (optional): serve cached HTML to bypass PHP for most visitors.
  • Switchable engines: use the default binaries for best performance on most sites or seamlessly switch to SQLite for massive sites or low-memory environments.

See https://ava.addy.zone/docs/performance

🀝 Contributing & Community

If you’d like to contribute core code, open an issue first so we can agree on approach and scope. You can submit your own plugins, themes and websites directly to the docs showcase.

Feedback and suggestions are always welcome! If you're trying Ava and face any friction, please open an issue or join the Discord and let us know.

πŸ“„ License

Ava CMS is provided as free, open-source software without warranty (GNU General Public License). It is under active development and may contain bugs or security issues. You are responsible for reviewing, testing, and securing any deployment.

Copyright (c) 2025-2026 Adam Greenough

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Sponsor this project

Contributors 2

  •  
  •