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
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
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
@molecule/api-cron-node-cron@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-image-sharp@molecule/api-payments-stripe@molecule/api-resource-booking@molecule/api-resource-payment@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/api-uploads-s3@molecule/app-billing-react@molecule/app-calendar@molecule/app-command-palette@molecule/app-data-table@molecule/app-file-upload@molecule/app-gallery
Required secrets
DATABASE_URLPostgreSQL connection stringMEILISEARCH_API_KEYMeiliSearch API keyAWS_S3_BUCKETS3 bucket for pet photosAWS_ACCESS_KEY_IDAWS access keyAWS_SECRET_ACCESS_KEYAWS secret keyMAILGUN_API_KEYMailgun API key for booking notificationsMAILGUN_DOMAINMailgun sending domain
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing