vntp.fr: this website
A static site generated from a headless CMS, republished within seconds on every change.
- Role
- Solo design and development
- Period
- Oct 2026 – ongoing · VNTP
- Stack
- Astro
- Directus 11
- Node.js
- PostgreSQL
- Docker
- Caddy
- Schema.org
How it works
The content (resume, blog, portfolio, project sheets like this one) lives in Directus. The public site is made of static pages generated by Astro: fast, lean, with no server-side attack surface. Directus is never exposed publicly.
Instant publishing
- Every save in Directus triggers a Flow that calls a small build service.
- The service copies the sources, runs the build, then switches over in one go to the new version (atomic symlink, three versions kept). A failed build never touches the live site.
- Several saves during a build trigger only one more. Scheduled posts go online on time through a periodic build.
- Images and PDFs are downloaded at build time, converted to WebP at the right size and published with the site.
SEO and accessibility
- Bilingual French / English:
hreflang,x-default, translated post URLs. - JSON-LD structured data (Person, BlogPosting, CreativeWork, breadcrumbs), Open Graph, sitemap, RSS per language.
- Light / dark theme, semantic HTML, no JavaScript framework for visitors.
Infrastructure
Everything runs in Docker containers on a self-hosted server, behind Caddy, with the CMS on an internal network. The CMS schema is created by an idempotent script, versioned in Git.