No description
Find a file
Ruben 74672b2d04 Remove default content files and add new example content
Remove default content files and add new example content, including
about pages, blog posts with mixed content formats, and updated front
page content.
2026-02-10 22:25:59 +01:00
app Remove default content files and add new example content 2026-02-10 22:25:59 +01:00
devel Update default service to use PHP 8.4 base image 2026-02-07 18:59:54 +01:00
docs Update getting started documentation 2026-02-07 19:14:13 +01:00
.gitignore Add docs directory to gitignore 2025-11-02 13:46:05 +01:00
AGENT.md Update AGENT.md and add architecture documentation 2026-02-05 23:30:44 +01:00
README.md Update default styles and templates 2026-02-10 22:25:44 +01:00

FolderWeb

Drop markdown, HTML and PHP files in directories to instantly publish online. A simple concept that forms a stable core. No database, no build process, just the basic features to build highly custom websites on top off.

How it works

Your file system is your site structure. Create folders, drop in content files and they're live. Create content/about/intro.md and it turns into yoursite.com/about/. Need more presentational control then what Markdown offers? Drop in an HTML file. Dynamic content? Add a PHP script. No routing configuration, no build step, just save a file, refresh the browser.

Since everything is just files and folders, you can mount your site via SFTP or WebDAV and edit content directly from your local machine — save a file, and the change is live. Create websites like it's 1996!

Why mix formats?

Use each format where it fits best — Markdown for prose, HTML for layout, PHP for dynamic output. Number prefixes control the order and it all renderes to a single seamless page:

content/services/
├── 10-intro.md
├── 20-features.html
└── 30-pricing.php

Sane defaults

FolderWeb detects what kind of page to render based on your folder structure. A single page, like content/about/ renders as a normal content page, while content/blog/{posts} renders as a list.

Cover images (cover.jpg), metadata (metadata.ini), and navigation are all convention-based. Almost nothing needs explicit configuration, but you have the option to so when you need control.

Build on top

Build a base.php template with your own styles and custom features as plugins. Add multiple languages if you need it.

Requirements

  • PHP 8.4+
  • Apache with mod_rewrite

Example Structure

project/
├── app/
├── content/
│   ├── front.md
│   ├── about/
│   │   └── about.md
│   ├── portfolio/
│   │   ├── 10-intro.md
│   │   ├── 20-gallery.html
│   │   └── 30-stats.php
│   └── blog/
│       ├── metadata.ini
│       ├── 2025-11-01-first-post/
│       │   ├── first-post.md
│       │   ├── cover.jpg
│       │   └── metadata.ini
│       └── 2025-11-02-second-post/
│           └── post.md
└── custom/
    ├── templates/
    ├── styles/
    └── config.ini

Documentation

Complete documentation in docs/.

Start with the Getting Started guide or browse the tutorial.