Property Listing
Real Estate & Travel · React + Node (Express) · 25 @molecule/* packages
Zillow-like property listing platform with search, maps, filters, and mortgage calculator — including a built-in subscription tier (Free / Pro / Team) backed by Stripe
Quick preview
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (15)
- AgentAnalyticsPage
/admin/analytics(signed in) - AgentDashboard
/admin/dashboard(signed in) - AgentLeadsPage
/admin/leads(signed in) - AgentListingsPage
/admin/listings(signed in) - AgentProfilePage
/agent/:id - AgentShowingsPage
/admin/showings(signed in) - ForgotPassword
/forgot-password - ListingEditorPage
/admin/listings/new(signed in) - Login
/login - PropertyDetailPage
/property/:id - ResetPassword
/reset-password - SavedPropertiesPage
/saved - SearchPage
/ - Settings
/admin/settings(signed in) - Signup
/signup
Data model (11 tables)
- agents — id, name, email, phone, bio, city, specialty, rating, …
- bookmarks — id, userId, resourceType, resourceId, folder, createdAt, updatedAt
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- leads — id, agent_id, property_id, name, email, phone, message, source, …
- properties — id, owner_id, title, description, address, city, state, zip_code, …
- resource_tags — id, tagId, resourceType, resourceId, createdAt
- review_helpful — reviewId, userId, createdAt
- reviews — id, resourceType, resourceId, userId, rating, title, body, helpful, …
- showings — id, property_id, agent_id, lead_id, scheduled_at, duration_min, status, notes, …
- tags — id, name, slug, color, description, createdAt, updatedAt
- app_settings — userId, data, createdAt, updatedAt
API (7 handlers)
- agents
api/src/handlers/agents.ts - bookmarks
api/src/handlers/bookmarks.ts - leads
api/src/handlers/leads.ts - mortgage
api/src/handlers/mortgage.ts - properties
api/src/handlers/properties.ts - settings
api/src/handlers/settings.ts - showings
api/src/handlers/showings.ts
Subscription tiers
free / pro / team — gated by: maxListings, maxPhotosPerListing, maxStorageMb, featuredListings, virtualTours, mortgageCalculator, leadCapture, customBranding, agentAccounts
Built from 25 @molecule/* packages
@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-geolocation-mapbox@molecule/api-image-sharp@molecule/api-oauth-github@molecule/api-oauth-google@molecule/api-payments-stripe@molecule/api-resource-bookmark@molecule/api-resource-payment@molecule/api-resource-review@molecule/api-resource-tag@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/api-uploads-s3@molecule/app-billing-react@molecule/app-data-table@molecule/app-date-range-picker@molecule/app-gallery@molecule/app-kpi-card-react@molecule/app-maps@molecule/app-pagination-bar-react@molecule/app-shell-layout-react@molecule/app-virtual-scroll
Required secrets
DATABASE_URLPostgreSQL connection stringMAPBOX_ACCESS_TOKENMapbox API access tokenMEILISEARCH_API_KEYMeilisearch API keyS3_BUCKETS3 bucket for property photosMAILGUN_API_KEYMailgun API key for email alerts
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing