Skip to content

raphou00/agentpage

Repository files navigation

AgentPage

Public profile builder for real estate agents. Each agent gets a branded page at /:username with listings, reviews, lead capture, and widgets — a Linktree alternative built for real estate.

Getting Started

bun install
bunx prisma db push
bun dev

Tech Stack

Framework Next.js 16 · React 19 · TypeScript 5.9
Database PostgreSQL · Prisma 7
Auth Lucia v3 · Google OAuth (Arctic)
Payments Stripe 19
Storage AWS S3 · CloudFront
Email Resend
UI Tailwind CSS 4 · DaisyUI 5
i18n next-intl 4 (EN / FR)
Infra Pulumi (IaC) · AWS DynamoDB (rate limiting)

Features

Public agent page

  • Customizable profile — photo, bio, brokerage, license, specialties
  • Links with click tracking and icons
  • Testimonials with star ratings
  • Property listings with photo, price, beds/baths
  • Widgets: mortgage calculator, home valuation, Calendly booking
  • Contact / lead capture form
  • Theme system: 8 base themes, 14 accent colors, font and radius controls

Dashboard

  • Analytics: 7-day page views, link clicks, lead submissions
  • Lead inbox + CRM integrations (Zapier, Follow Up Boss, Mailchimp)
  • Billing portal: plan switching, invoice history
  • Multi-session management with browser/OS tracking
  • Live preview of public page

Subscriptions

Plan Price
Solo $19/mo · $15/mo annual
Pro $39/mo · $31/mo annual

Pro unlocks: listings, widgets (mortgage calculator, home valuation, Calendly), and CRM integrations (Zapier, Follow Up Boss, Mailchimp). New accounts get a 14-day trial.

Stripe handles checkout, billing portal, and webhooks. On new checkout, prior active subscriptions are automatically cancelled. Agents receive email notifications on payment failures and cancellation.

SEO

  • Per-agent dynamic OG metadata (name, bio, avatar)
  • Schema.org RealEstateAgent JSON-LD with AggregateRating
  • ISR on public pages (revalidate every 3600s)
  • Environment-aware robots.txt (blocks crawlers on dev/preview)
  • Vercel Analytics + Speed Insights

Technical Highlights

  • Auth — Lucia sessions (12-week expiry) with IP/browser/OS tracking. bcrypt for passwords. Google OAuth via Arctic.
  • Rate limiting — DynamoDB sliding-window rate limiter with per-endpoint limits (e.g. login: 5 req/3min, contact: 3 req/hr). Graceful degradation on DynamoDB outage.
  • Image pipeline — Presigned S3 uploads (5MB max, JPEG/PNG/WebP), served via CloudFront CDN. Old files deleted on replacement.
  • CRM integrations — Lead submissions fan out asynchronously post-response to Zapier, Follow Up Boss, and Mailchimp. Non-blocking — does not affect response time.
  • Infrastructure as code — AWS resources (S3, CloudFront, DynamoDB) provisioned with Pulumi. Separate dev/prod stacks.
  • Theme system — Fully composable: base theme + accent color + button radius + font family/size. Applied via Tailwind classes and inline hex values; dashboard (DaisyUI) and public page use separate styling layers.

Possible Improvements

  • Queue/retry mechanism for CRM webhook delivery (currently fire-and-forget)
  • Activate remaining i18n locales (FR, DE, ES, PT, IT — config exists, routing disabled)
  • Analytics event batching/sampling at scale
  • Email format validation before forwarding leads to Follow Up Boss
  • Complete Google Reviews auto-pull (referenced in upgrade modal, not yet implemented)

License

MIT

About

The linktree alternative for real-estate agents

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages