Seasonal CRM for holiday light installers

SaaSWeb1 weekNext.jsSupabaseStripe

The idea

Christmas light installation is a quietly lucrative trade: average residential jobs run 1,500 to 3,000 USD, and the crews doing it are pressure-washing and lawn-care companies filling their off-season. Every autumn they rebuild their book from a spreadsheet and last year’s text threads, re-quote houses they already measured, and forget January takedowns until angry calls arrive.

The economics of the business hinge on one fact: a past customer is a near-automatic renewal, because the installer already has their measurements, their layout, and their stored lights in the garage. The wedge is automating exactly that: a September email offering last year’s layout at last year’s price plus 5%, with one-click deposit. That single cron job is worth more than the rest of the CRM combined, and no generic field-service tool models it.

Who pays

The installation company owner pays 59 USD/month for the five months they operate. A two-crew operation books 100 to 300 jobs a season, 200k USD plus in revenue; if the rehang campaign converts even ten customers who would otherwise have drifted, it has paid for itself thirty times over. Distribution: the trade clusters in Facebook groups (Christmas Light Installers, pressure-washing business groups) and around supplier communities, and seasonal-pause billing is itself a selling point against annual-contract software.

MVP scope

  • Price book and linear-foot quote builder with customer accept-and-deposit page
  • Job pipeline across quote, install, takedown, rehang states
  • Crew week calendar with auto-generated takedown tasks
  • 1 September rehang campaign with stored-layout offers and one-click deposit
  • Campaign dashboard: sent, accepted, revenue booked
  • Skip for v1: inventory of lights/materials, route optimisation, commercial bid workflows, employee payroll, photo measuring tools
// Build prompt — paste into Cursor / Claude Code / Lovable / Bolt
Build RehangCRM, a web app for holiday light installation businesses. Stack: Next.js (App Router), Supabase (Postgres, Auth, RLS), Stripe for deposits and subscription billing. Magic-link auth.

Data model: Customers, Jobs (year, status: quoted, booked, installed, taken down, rehang offered), QuoteLines. A quote is built from linear-foot line items: roofline C9 at X USD/ft, tree wrap per tree, wreaths, ground stakes, each with a price-per-unit the installer sets once in a price book. Quotes total materials plus labour and produce a customer-facing quote page with an accept button that takes a 50% deposit via Stripe Checkout.

Calendar: two seasons per job, install (Oct-Dec) and takedown (Jan). A week-view crew calendar with drag-to-schedule; takedowns auto-generate as unscheduled tasks when a job is marked installed, so no house is forgotten in February.

The killer feature, the rehang campaign: on 1 September a cron emails every customer from last season an offer to rehang the identical layout at their stored price (with an installer-set percentage uplift, default 5%). The email links to a one-click accept page that takes the deposit. Dashboard shows campaign stats: sent, opened, accepted, revenue booked.

Pages: pipeline dashboard, quote builder, customer-facing quote/accept pages, crew calendar, price book, rehang campaign, settings/billing.

Pricing: 59 USD/month, billed seasonally (September to January), paused the rest of the year.

// More SaaS ideas