WebholeInk
WebholeInk is a minimal, developer-first publishing engine.
No plugins.
No databases.
No magic.
Just files, clear contracts, and full control.
π Status
v0.1.0 β Core Stable
The core engine is complete and locked.
This release establishes:
- Routing
- Handlers
- Content resolution
- Theming
- Navigation
- Markdown rendering
- View and layout contracts
No new features will be added to core without a version bump.
v0.1.2 β Platform Hardening & Documentation
This release builds around the locked core without modifying it.
v0.1.2 focuses on operational stability, discoverability, and long-term maintainability rather than new features.
This release adds:
- Full documentation system (
/docs) rendered from Markdown - Canonical URLs, Open Graph, and Twitter metadata
- RSS (
feed.xml) and JSON Feed (feed.json) - Sitemap generation (
sitemap.xml) - Robots.txt for crawler control
- HTTP security headers
- HTTP caching with ETag and Last-Modified support
- Draft-aware content exclusion
- CLI tooling for content creation
- Deployment and operations documentation
No changes were made to:
- Core routing logic
- Content resolution rules
- View or layout contracts
- Markdown parsing behavior
The core remains stable, locked, and boring.
v0.1.2 establishes WebholeInk as a production-ready publishing platform while preserving the integrity of the core engine.
π― Philosophy
WebholeInk exists to solve one problem well:
Publish content without surrendering control.
Everything is explicit. Everything is readable. Everything is owned by the developer.
There is no admin panel. There is no plugin system. There is no database requirement.
If itβs not in the filesystem, it doesnβt exist.
π§± Architecture Overview
public/ β HTTP entry point (only public files) app/ β Core engine (locked) content/ β Markdown content (pages, posts) config/ β Explicit configuration docs/ β Contracts & documentation Core responsibilities are split cleanly:
- Router β maps paths to handlers
- Handlers β decide what to render
- PageResolver β resolves content files
- View / PageView β renders templates safely
- Layout β wraps content with theme chrome
- Themes β presentation only (no logic)
π Content Model
Content is file-based and predictable. content/ βββ pages/ βββ home.md βββ about.md βββ philosophy.md βββ page.md
- URLs map directly to filenames
/aboutβcontent/pages/about.md- Markdown is parsed at runtime
- No front-matter required (by design)
π¨ Theming
Themes are PHP templates, not magic.
app/themes/default/ βββ layout.php βββ home.php βββ page.php βββ navigation.php βββ footer.php βββ assets/
- Themes do presentation only
- Logic lives in handlers and core
- Assets are served from
public/themes/
π Contracts (Locked)
Core behavior is defined by explicit contracts:
CORE.mdβ system architectureROUTES.mdβ routing rulesHANDLERS.mdβ handler contractCONTENT.mdβ content resolution rulesVIEW.mdβ view rendering rulesNAVIGATION.mdβ navigation behaviorTHEMES.mdβ theming constraints
If itβs not documented, itβs not supported.
π Stability Guarantee
This release is core-stable.
That means:
- No breaking changes without a version bump
- No silent behavior changes
- No scope creep
Future work will build on top of this foundation, not rewrite it.
π Requirements
- PHP 8.2+
- Nginx or compatible web server
- No database
- No extensions beyond standard PHP
π¦ Backup & Recovery
WebholeInk is intentionally easy to back up:
- Filesystem snapshot
- Git repository
- No state hidden elsewhere
If you can copy a directory, you can restore the site.
π§ Roadmap
v0.2.0 (Planned)
- Collections / posts
- Metadata (optional, explicit)
- Pagination helpers
Core principles will not change.
π Built By
Clifford Webhole
βΊοΈ
WebholeInk
Developer-first publishing, without compromise.
Documentation
- Core Architecture
- Routing Rules
- Handler Contract
- Content Rules
- Themes Contract
- View Contract
- Navigation Contract
- Project Status
π License
WebholeInk is open-source software licensed under the MIT License.