The challenge
Starkids needed a polished public website for a small kennel and a private editor experience for people who should not need to understand code, deployment, or generic CMS concepts. A standard headless CMS would have added hosting and workflow complexity, while a purely static site would have made every content update dependent on a developer.
The product needed to stay focused: public visitors should be able to learn about the kennel, dogs, planned or current litters, and contact the owners. It did not need checkout, deposits, user accounts, or a general-purpose page builder.
What I built
I built a custom CMS inside a Next.js app. The public site renders from structured content, with checked-in seed data as a fallback and MongoDB Atlas as the source of saved CMS content. Admin routes live under /admin and are designed around the actual editor workflow rather than generic content modeling.
The CMS includes:
- Editable page content with fixed design-safe sections
- Blog posts with a WYSIWYG editor
- Dedicated content types for dogs and litters
- A media selector for choosing existing uploaded images
- MongoDB-backed content overrides
- Fallback seed content so the public site renders before the database is populated
- Server-side data access and validation
- A private admin foundation with signed-session protection
The key design decision was to avoid giving editors controls that could break the layout. Editors can change the content that matters: text, images, blog entries, dog profiles, and litter information. The design system and routing remain code-controlled.
Result
Starkids became a production-ready site foundation with a CMS tailored to its actual users. The public site can stay polished and design-consistent, while trusted editors can update the content themselves.
This case combines product judgment, full-stack implementation, CMS design, and a human-centered editor experience for a small real-world business.
Proof points
- Public homepage and kennel pages
- Admin pages list and page editor
- Blog WYSIWYG editor
- Media picker
- Dog and litter content models
- Figma-to-code design process