Pets by Cherry

A full-stack pet ecommerce demo, real storefront, real cart and checkout, real admin CRUD, everything transactional simulated so no real money ever moves.

Astro · Preact · TypeScript · Cloudflare Workers · Cloudflare D1 Visit ↗ View code ↗
Ebenezer Afonja Claude

Ebenezer Afonja & Claude

Pets by Cherry

Pets by Cherry is a demo pet store, live at pets.ebenezerafonja.com. Browse dogs, cats, birds, and fish, pick a pet or a product, add it to your cart, and check out. It’s built to show off full-stack skill: a warm, photo-forward storefront on one side, and a genuinely working admin backend on the other, connected to the same database.

What it does

The homepage leads with a “meet the family” category grid, big rounded photo cards for each animal group, then a browsable catalog with real filtering, individual pet detail pages, and a small shop of pet products (food, treats, accessories). Cart and checkout are fully functional UX, add items, fill in a delivery form, confirm, get a receipt, all backed by real database writes. Everything that would normally involve real money is simulated: no payment processor is ever called, and no real charge occurs.

How it’s built, and how it connects to the backend

The storefront and the admin dashboard at pets.ebenezerafonja.com/admin run off the same Cloudflare D1 database. The admin isn’t a read-only mockup, it’s full CRUD: create a new category, add a pet type under it, list a new pet with its own photo and price, and it appears on the storefront immediately, no redeploy needed. Simulated checkouts land in an orders feed in the admin too, so the whole loop, browse, buy, manage, is real and connected end to end.

The app deploys as a single Cloudflare Worker with static assets, Astro’s server output rendering both the storefront and the password-gated admin from the same codebase. The admin session is a signed, time-limited token verified in middleware, checked against the shared password on every request to /admin or its API routes.

Technology Stack

  • Framework: Astro (server output) with Preact islands for cart, filters, and admin interactivity
  • Language: TypeScript
  • Styling: Tailwind CSS with a custom warm, organic design system
  • Database: Cloudflare D1
  • Hosting: Cloudflare Workers, custom domain pets.ebenezerafonja.com

Repository: github.com/47QVA/pets-by-cherry

View Next

QR Code Generator

QR Code Generator

A fast QR code generator, paste a link, text, Wi-Fi network, or contact card, get a clean QR code back instantly, customize the colors, and download as PNG or SVG.
Astro · TypeScript · Cloudflare Pages · Cloudflare Workers
Waypoint

Waypoint

A multi-route bus ticket booking platform, search a route and date, pick a seat, check out, and manage bookings from an account.
Cloudflare Pages · Cloudflare Workers · D1 · Vanilla JavaScript