Built with Kawhi

Start with one route folder. Grow into reusable pieces when the site earns them.

This scaffold keeps the default page local: edit public/index.php, tweak public/page.css, and add route folders like public/contact/index.php when you need more pages.

Simple edits stay simple

Edit one route without reading half the app

Keep straightforward content inside the route entrypoint. If the page grows, split it into route-local _partials/ or a small logic.php beside the page.

Shared only after reuse

Promote code to _site/ when it is genuinely shared

Use _site/components/ or _site/lib/ for code that serves more than one route, not for every small piece of markup.

htmx-first interactions

Keep form handlers close to the page they belong to

When a page needs interaction, prefer a route-local handler like public/contact/submit.php so the full feature stays easy to inspect.

Start here

Make this site yours

Update _site/site_config.php for your site identity, then add or edit route folders under public/. If a page needs custom styling, create a local page.css beside it.

Add a page Create public/about/index.php for /about/.
Add styling Create public/about/page.css and it will load automatically.
Add interaction Use htmx with a local handler such as public/about/submit.php.