Poodilo

2026Poodilo

A toy and miniature poodle breeder and boarding site, with a Supabase-backed admin dashboard for managing litters, puppies, and inquiries.

Context

The Problem

Poodilo breeds and boards toy and miniature poodles, and needed a site where puppy availability, litters, and boarding inquiries could be managed directly instead of tracked by hand across messages and spreadsheets.

Puppy availability tracked outside the siteNo structured way to browse litters and puppiesBoarding and contact inquiries had no dedicated intake

My Role

Design

  • Designed the puppies, litters, gallery, and boarding pages in Figma
  • Designed the admin dashboard for managing litters, puppies, and inquiries

Frontend

  • Next.js 16 and React 19 with Radix UI and Framer Motion
  • Puppies, litters, gallery, guides, and boarding pages, with React Hook Form and Zod for every form
  • Turnstile-protected contact and boarding inquiry forms

Backend

  • Supabase Postgres and Auth for admin login and content storage
  • Litters, puppies, gallery, blog, FAQs, testimonials, and inquiries each modeled as their own table
  • Resend for inquiry confirmation and admin notification emails

Infrastructure & DevOps

  • S3-compatible object storage for puppy and gallery images
  • Vercel for deployment

Solution & Process

Design Validation

Modeled puppies as records tied to a litter, each with its own availability status, health flags, and traits, so the site shows real availability instead of a static list that goes stale the moment a puppy sells.

Technical Stack Selection

Built on Next.js 16 with the App Router and Supabase for Postgres and authentication. Litters, puppies, gallery images, blog posts, FAQs, testimonials, and both contact and boarding inquiries are separate tables, each editable from the admin dashboard.

Technical Decisions & Trade-offs

Modeled litters and puppies as separate, linked tables instead of one flat puppy list, so a litter carries its own birth date and status while each puppy tracks its own availability, price, and health record independently.