One family business · Two web eras

A small site that grew into something worth preserving.

Homestead Puppies began as a straightforward website for a dad’s retirement puppy business. It became the operational center of the business—and a full-stack system that kept earning trust long after its first launch.

The origin

Built for family. Hardened by real use.

What started as “just a website” expanded into authentication, relational data, media processing, admin workflows, infrastructure, and long-term unattended operation. Non-technical family members could manage puppies and parents without touching code.

That mattered more than chasing novelty. The original system worked, so this redesign treats it as an asset: keep the operations stable, expose a narrow read-only API, and give visitors a faster, clearer frontend.

The migration strategy

Modernize the experience, not the risk.

The two public sites coexist, share one source of truth, and demonstrate an incremental migration in production.

01

Legacy frontend

EJS templates continue serving the original site and its established admin workflow.

homestead-puppies.com
02

Shared core

Express, PostgreSQL, S3, and CloudFront remain the operational backbone.

One backend · One database
03

Modern frontend

React Router and TypeScript consume a versioned public catalog API.

homesteadpuppies.org

Under the hood

A production system, end to end.

FrontendReact 19 · React Router · TypeScript · Vite
BackendNode.js · Express · EJS · Passport
DataPostgreSQL · server-side sessions
MediaSharp · S3 · CloudFront CDN
OperationsNginx · PM2 · Cloudflare · DigitalOcean

See it in action

The best architecture diagram is a working product.

Browse the live catalog here, then compare it with the original EJS presentation.