mirror of
https://github.com/Darkrock-Studios/hammer-blog.git
synced 2026-10-07 10:27:35 +00:00
No description
- PHP 62.9%
- Twig 18.4%
- CSS 12.4%
- JavaScript 4.8%
- Dockerfile 0.8%
- Other 0.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| bin | ||
| cache | ||
| content | ||
| deploy | ||
| migrations | ||
| public | ||
| src | ||
| templates | ||
| tests | ||
| .dockerignore | ||
| .gitattributes | ||
| .gitignore | ||
| AGENTS.md | ||
| ARCHITECTURE.md | ||
| CLAUDE.md | ||
| composer.json | ||
| composer.lock | ||
| docker-compose.prod.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| phpunit.xml.dist | ||
| README.md | ||
Hammer Blog
The hammer.ink blog. PHP + HTMX, markdown page bundles, served at hammer.ink/blog.
See ARCHITECTURE.md for the full design.
Run it locally
The only thing you need on your machine is Docker. No PHP, no Composer.
docker compose up --build
Then open http://localhost:8090.
Edits to content/, templates/, src/, and public/ are live-mounted — refresh
the browser, no rebuild. Changing composer.json or the Dockerfile needs a
rebuild (docker compose up --build).
Publishing
Publishing is a git push, never an SSH file-paste onto a live box. Write a post
as content/<category>/<slug>/index.md, preview locally, commit, push.
Layout
public/ front controller + static assets
src/ PHP classes (PSR-4: HammerBlog\)
templates/ Twig templates + partials
content/ markdown page bundles (category = top-level dir)
cache/ rendered-HTML cache (gitignored)
Status
- Phase 1 — skeleton (done): boots under
docker compose up, serves a landing page. - Phase 2 — content pipeline (done): frontmatter + markdown render + content-hash cache.
- Phase 3 — category / tag pages (done): hub pages, tag archives, post cards, category icons.
- Phase 4 — SEO layer (done): canonical + OG/Twitter + JSON-LD,
sitemap.xml, RSSfeed.xml, env-awarerobots.txt. - Phase 5 — styling pass (Writer's Desk).
- Phase 6 — HTMX niceties (done): URL-backed load-more pagination (no-JS falls back to real
?page=Npages). - Phase 7 — prod (kit ready):
docker-compose.prod.yml, nginx front-door config, and a two-speed deploy script live underdeploy/— see deploy/DEPLOY.md.