Project
Textual
Static blog of notes and essays ready for any thematic, generated with Astro and edited with its own local panel tool.
Objective
Textual is a personal blog of notes and essays, with multi-language support, focus on SEO, performance, low cost to operate, It's built with Astro, with no backend or database of its own: every article is stored as version-controlled Markdown and JSON directly in the repository. The project lives as a monorepo with two independent subprojects: Blog, available for the public and Panel, the authoring tool no requiered to be deployed to production.
How it works
- Writing in Panel Panel is a Vue frontend with a Node backend that runs locally only, against a checkout of the blog. It lets you create and edit articles using Markdown with available preview, also categories, labels, and authors.
- Commit and validation Changes are saved as version-controlled Markdown and JSON files in the repository. GitHub Actions validates the content on every push before continuing.
- Static deployment Astro builds the static site and GitHub Actions publishes it to S3 and CloudFront, invalidating the cache through a manifest shared between both subprojects.
Architecture
The repository separates the blog (Astro, version-controlled content, no server runtime) from the panel (Vue + Node, local only). Both subprojects manage their dependencies independently and coordinate CloudFront cache invalidation through a shared manifest whenever new content is published.
Stack