← All templates

Pet Care

Operations & IoT · React + Node (Express) · 18 @molecule/* packages

Rover-like pet care platform with pet profiles, vet records, sitter bookings, and health tracking — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • search
  • upload
  • calendar
  • gallery
  • notifications
  • subscriptions

Screens (18)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Dashboard /dashboard (signed in)
  • Pets /pets (signed in)
  • PetDetail /pets/:id (signed in)
  • Sitters /sitters (signed in)
  • Bookings /bookings (signed in)
  • VetRecords /vet-records (signed in)
  • Settings /settings (signed in)
  • SitterDetail /sitters/:id (signed in)
  • BookingDetail /bookings/:id (signed in)
  • VetRecordDetail /vet-records/:id (signed in)
  • Medications /medications (signed in)
  • Notifications /notifications (signed in)
  • Messages /messages (signed in)

Data model (13 tables)

  • booking_messages — id, booking_id, sender_user_id, body, attachments, sent_at, read_at
  • bookings — id, userId, resourceType, resourceId, status, startTime, endTime, duration, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • notifications — id, user_id, kind, payload, read_at, created_at
  • pet_medications — id, pet_id, name, dosage, frequency, prescriber, start_date, end_date, …
  • pet_vaccinations — id, pet_id, vaccine_name, administered_on, due_on, lot_number, vet_id, created_at
  • pet_vitals — id, pet_id, recorded_at, weight_kg, temperature_c, heart_rate, notes, created_at
  • pets — id, owner_user_id, name, species, breed, sex, neutered, date_of_birth, …
  • sitter_availability — id, sitter_id, weekday, start_time, end_time, is_blocked
  • sitter_blackouts — id, sitter_id, starts_at, ends_at, reason
  • sitter_reviews — id, booking_id, sitter_id, reviewer_user_id, rating, body, created_at
  • sitters — id, user_id, display_name, bio, services, hourly_rate_cents, location_city, location_lat, …
  • vet_records — id, pet_id, kind, title, occurred_on, vet_name, clinic_name, summary, …

API (7 handlers)

  • bookings api/src/handlers/bookings.ts
  • health api/src/handlers/health.ts
  • medications api/src/handlers/medications.ts
  • notifications api/src/handlers/notifications.ts
  • pets api/src/handlers/pets.ts
  • sitters api/src/handlers/sitters.ts
  • vet-records api/src/handlers/vet-records.ts

Subscription tiers

free / pro / team — gated by: maxBookings, maxHealth, maxPets, maxSitters, advancedFeatures, canExport, retentionDays

Built from 18 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • MEILISEARCH_API_KEY MeiliSearch API key
  • AWS_S3_BUCKET S3 bucket for pet photos
  • AWS_ACCESS_KEY_ID AWS access key
  • AWS_SECRET_ACCESS_KEY AWS secret key
  • MAILGUN_API_KEY Mailgun API key for booking notifications
  • MAILGUN_DOMAIN Mailgun sending domain

The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing