# 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/`](docs/).
Start with the **[Getting Started guide](docs/01-getting-started/index.md)** or browse the **[tutorial](docs/02-tutorial/)**.