No description
Find a file
2025-11-02 13:46:47 +01:00
app Update default language to English 2025-11-02 13:46:12 +01:00
development Update PHP version to 8.4 and add property hooks 2025-11-01 23:33:09 +01:00
docs Add docs 2025-11-02 13:46:47 +01:00
.gitignore Add docs directory to gitignore 2025-11-02 13:46:05 +01:00
CLAUDE.md Update PHP version to 8.4 and add property hooks 2025-11-01 23:33:09 +01:00
README.md Update PHP version to 8.4 and add property hooks 2025-11-01 23:33:09 +01:00

FolderWeb

A minimal, file-based PHP framework for publishing content that will work for decades. Just enough, nothing more. FolderWeb applies minimal PHP to enable modern conveniences while remaining maintainable for years or decades. No frameworks, no build tools, no JavaScript—just HTML, PHP 8.4+, and CSS. This is not a CMS with an admin panel, not a single-page application.

Getting Started

Requirements

  • PHP 8.4 or higher (uses property hooks, readonly classes, and modern array functions)
  • A web server (Apache, Nginx, or PHP's built-in server)

Quick Start

  1. Clone or download this repository
  2. Point your web server's document root to /content

Development

Creating Content

  1. Create a directory for your content in the document root
  2. Add one or more content files (.md, .php, or .html)
  3. Optionally add metadata.ini for title, date, and summary
  4. Optionally add cover.jpg|webp for list view thumbnails

Content is immediately accessible at the URL matching the directory path.

Example structure:

/content/
  00-welcome.php
  01-introduction.md
  about/
    00-overview.md
    01-philosophy.html
    02-technology.php
  blog/
    2025-11-01-hello-world/
      article.md
      cover.jpg
      metadata.ini

Multi-File Pages

Any folder without subdirectories is a page-type folder. All .md, .html, and .php files in that folder render together as a single page in alphanumerical order.

This allows you to:

  • Break long content into manageable sections
  • Mix file formats freely (Markdown, HTML, PHP)
  • Reorder sections by renaming files
  • Include dynamic PHP content alongside static content

Example:

/content/
  docs/
    00-introduction.md
    01-setup.md
    02-advanced.html
    03-examples.php

All four files render as one page at /docs/, in that order.

Folder Types

FolderWeb automatically determines how to render folders:

  • Page-type folder (no subdirectories) → Renders all content files as a single page
  • Article-type folder (has subdirectories) → Shows list view with links to subdirectories

Customization

All customization lives in custom/:

  • Styles: Place CSS in custom/styles/base.css
  • Templates: Override defaults by placing files in custom/templates/
  • Fonts: Add font files to custom/fonts/
  • Configuration: Copy app/config.ini to custom/config.ini and modify

Never modify files in /app/default/—always override them in custom/.

File-Based Routing

The folder hierarchy dictates URL structure:

  • Root content files → yoursite.com/
  • /about/ (with content files) → yoursite.com/about/
  • /blog/2025-11-01-post/ (with content files) → yoursite.com/blog/2025-11-01-post/
  • Dates in folder names are automatically extracted and formatted
  • Content file names can be anything (not limited to page.md or article.md)

Metadata

Use metadata.ini files for structured data:

title = "My Page Title"
date = "2025-11-01"
summary = "A brief description of the page"