Docs · Open source · this website

scuttle.dev

The site you are reading, shipped as a Composer package that mounts into a host Laravel application through host-based routing. Everything is data in PHP classes (services, cases, posts, projects), one stylesheet, one script, no tracking unless you agree to it, and a test suite that fails on the marketing rules.

The shape #

  • src/Catalog.php: the twelve services in three groups, one source for the menu, the home page, pricing and the service pages.
  • src/Cases.php, src/Posts.php, src/Projects.php: case studies, blog posts, projects with docs.
  • resources/views/layout.blade.php: the shell; public/site.css and public/site.js: the only stylesheet and script.
  • tests/Feature/SiteTest.php: renders every page and fails on client traces, zeros as claims and missing links.

How a change ships #

Change, test, push to main, tag. The host app pins the package by tag, bumps its lock, and its CI deploys. A static dump of every page can be written with one test and screenshotted headlessly at desktop and phone width.