Tell me about Shore Dogs Site.

NB

Shore Dogs Site

Shore Dogs is a dog treat bakery based in Onancock, Virginia on the Eastern Shore — handmade, all-natural treats with no preservatives or artificial ingredients. A friend asked me to help them get off their aging WordPress site, and it turned into a clean opportunity to demonstrate what a modern static stack can do for a small business.

Shore Dogs homepage


The Migration

The original site ran on WordPress + WooCommerce on an AWS Lightsail instance — costing around $15/month, requiring security patches, and carrying the full weight of PHP and a plugin ecosystem for a site with 4 pages and a contact form.

The replacement stack:

LayerTool
FrameworkAstro 6 (static site generation)
StylingTailwind CSS v4
FormsFormspree (no backend needed)
HostingAWS Amplify + CloudFront
DNSRoute 53
DeploymentCustom bash script via AWS CLI

Running cost: ~$0.50/month. No PHP, no plugin updates, no attack surface.


The Claude Code Angle

This is the part worth documenting. I handed Claude Code two things:

  • The live WordPress site URL
  • A full WordPress bundle export from the Lightsail deployment

It nearly one-shotted the Astro rebuild — pages, nav, color palette, layout, responsive behavior. I stepped in for a few passes on branding refinements and the deploy pipeline, but the bulk of the migration happened in a single session. That workflow — legacy bundle in, modern static site out — is something I expect to use again.

Shore Dogs contact page


Stack Decisions

Why Astro? Zero JavaScript by default, outputs pure HTML/CSS, and perfect for content-only sites. The entire source is ~40KB (excluding images), with 3 npm dependencies total.

Why Amplify? Already familiar with it from this site. The deploy script builds the Astro dist, zips it, uploads to Amplify via AWS CLI, and polls until the deployment goes live — same pattern I use here.

Why Formspree? The contact form needed to send email without a backend. Formspree handles routing externally — no Lambda, no SES config, no spam filtering to maintain.

NateGPT can make mistakes. Verify important info in the sidebar conversations.