The problem

Every build used to end the same way. Screenshotting page after page, once at desktop and again at mobile, renaming each file, then a third pass to lift the copy out. An afternoon of admin on every project.

So I built the thing that removes it

SiteHaul reads a site's sitemap and captures every page at both sizes in a single run, names each file from its URL, and exports the page copy as Markdown. Everything processes locally on the user's own machine. That's a design decision, not a technical one: the tool gets pointed at client sites, and those shouldn't travel through someone else's server.

End to end, alone

Interface and visual identity, the capture engine on Node, Playwright and Electron, the Next.js marketing site on Vercel, and a signed, notarised release pipeline shipping auto-updates.

Conceiving something, building it properly and then keeping it alive after launch is the same range I bring to client work.

SiteHaul's in-app updates feed
The in-app updates feed. Shipping an app is the easy half; this is the release pipeline that keeps it current on someone else's machine without them thinking about it.

Google PageSpeed Insights for the SiteHaul site: Performance 99, Accessibility 94, Best Practices 100, SEO 100
The marketing site's own scores. A tool for web professionals is held to the standard it implies.