Event planning
Wedding & Event Planning CRM
A legacy ColdFusion CRM was failing, random client emails, outages, and rising hosting/maintenance costs. After two unsuccessful dev attempts, we rebuilt the operation around a modern stack and clear roles, turning a liability into a reliable, day-to-day system.



Problem
- • Legacy ColdFusion app (≈20 yrs old) sending random emails and frequently breaking.
- • High hosting/maintenance costs for a brittle codebase, hard to change, harder to trust.
- • Two prior developers failed to deliver a replacement, leaving the team stuck.
- • Workflow split across emails, spreadsheets, and PDFs; no single source of truth.
- • Team of ~5 (2 sales, a coordinator, manager, owner) needed role-appropriate access and guardrails.
Solution
- • Rebuilt as a Django application using role-based permissions for clean access control.
- • Office tools: create/manage contracts, bookings, packages/products, internal notes, and staff tasking.
- • Automated contract workflow: eSign, PDF generation/S3 archival, and status changes on sign/payment.
- • Notifications: email alerts for signed contracts, new tasks, and client messages.
- • Client portal (separate React app) for photographer choices, document list, messaging, and FAQs.
- • Event-staff mini-portal to see personal booking schedules and tasks.
- • Payments: custom schedules, ledger of payments/balances/due dates; reporting for sales, tax, and AR.
- • Operational backbone: changelog plus reporting on sales, appointments, close rates, payments due.
Results
- • Stability restored: random outbound emails eliminated; predictable behavior in production.
- • Lower ongoing costs: modern stack is maintainable and easier to host.
- • Faster contract turnaround with eSign and automated status updates.
- • Clear visibility for staff with role-based portals and notifications.
- • Consolidated comms: contracts, docs, messages, and tasks in one place.
- • System is live and runs day-to-day operations.
Tech: Django (RBAC & admin) • React (client portal) • TypeScript where applicable • Tailwind UI layer • Python automations (PDF, email)
Start a discovery chatSee all work