project
PhillipJMurphy.com
A static, Markdown-first publishing site designed for durable URLs, explicit provenance, and privacy-conscious delivery.
Written by Phillip with AI assistance.
PhillipJMurphy.com is my durable home for writing, notes, projects, videos, and experiments. It is also a small architecture exercise: how little runtime machinery does a personal publishing site actually need?
The current answer is a statically generated Astro site. Markdown and MDX are the portable source of truth, and the build produces plain HTML, CSS, and a small amount of focused browser JavaScript. There is no application server, database, CMS, account system, or visitor analytics service.
Durable content before platform features
Every content item has an explicit slug that controls its public URL. Moving or renaming the source file does not change that address. Publication state is also explicit: drafts stay in local preview, archived items remain unavailable, and only reviewed published items can enter production routes and discovery documents.
The content model records authorship and AI involvement. When AI materially assists with a piece, the rendered page says so. Autonomous publication is not part of the launch model.
Static does not mean unchecked
The repository validates content metadata, references, local assets, canonical URLs, feeds, sitemap entries, internal links, accessibility, and production exclusion rules. Browser tests exercise navigation, theme behavior, third-party media boundaries, and representative page templates. Lighthouse budgets provide another check on performance, accessibility, best practices, and search metadata.
These gates turn Markdown into a deliberately produced artifact rather than treating every source file as public by default.
Privacy as an architectural constraint
The site uses self-hosted fonts and does not load visitor analytics. A theme choice can be stored locally in the browser, but it is not sent anywhere. Supported external video remains behind a click-to-load boundary so opening a page does not automatically contact the media provider.
That approach keeps the normal reading path simple: request a static page, receive the complete document, and read it without depending on a client application or third-party script.
Releases that can be identified and reversed
The delivery design reuses an existing private S3 origin and CloudFront distribution. Each approved build is intended to be uploaded beneath an immutable prefix named for the full Git commit SHA. CloudFront then switches to that release only after the upload is verified. Previous prefixes remain available for an explicit rollback.
The deployment foundation is intentionally separate from the content artifact. A failed build or upload cannot replace the active release, and a previously published version remains identifiable by source revision.
What this project is for
The site is a place to publish, but it is also a practical test of ideas I care about: architecture decisions that remain connected to implementation, AI assistance with visible provenance, and systems that stay understandable as they evolve.