Coast Technology
Dealers kept using their portal daily while we rebuilt it module by module
Coast Technology's portal shows RV, auto, powersports and marine dealers who is shopping them and helps them follow up. We rebuilt the live portal one module at a time and kept adding CRM, campaigns, workflows and AI to the same codebase.
Automotive & DealershipsDealership customer intelligence SaaSModernized a live product
The challenge
The first portal was a reporting tool on per dealer parsers and scripts, with data, messaging and CRM steps in separate tools, and dealers relied on it every day.
What we did
We ran discovery, then rebuilt the portal module by module, each release on demo before production, with every new capability added to the same codebase.
The outcome
The portal kept growing in production without a core rewrite, from reporting tool to CRM, campaigns, workflows and an AI assistant, and Coast resells it under other brands.
- Resold as
- White label brands from one codebase
- Core rewrites
- None, the platform keeps growing in production
- Who uses it
- RV, auto, powersports and marine dealers
- Added in place
- CRM, campaigns, workflows, AI assistant
The starting point
Coast Technology, formerly Dealership Toolkit, sells a customer intelligence and sales engagement portal to RV, automotive, powersports and marine dealers. Dealers see identified website and location visitors, daily leads and reports, and act on them by email, text and CRM.
What had to change
The first version was a Django reporting portal with per dealer parsers and scripts, and the data, messaging and CRM steps lived in separate tools. The client wanted one multi role portal that turns visitor and dealer data into follow ups, appointments and CRM leads, and that it could resell under other brands.
What could not break
- Dealers keep working in the portal every day while modules are replaced
- Outside data feeds keep arriving on their vendors' schedules, not ours
- Each dealership and franchise keeps its own configuration, roles and data
- Every brand runs from one codebase, with features hidden or changed per brand
- Application and visitor data stay in Coast's own AWS and Google Cloud accounts
The calls we made
We treated it as replacing the engine of a moving car: learn the old system fully, then swap one module at a time.
- 01
Discovery before the rebuild
We read the existing requirements and code, wrote user stories for each of the six roles and checked them against designs and demos across areas such as roles and permissions, subscriptions, unsold visitor upload and agent activity, to find gaps before building.
Ruled outWriting new code before the gaps between requirements, designs and demos were known.
- 02
One module at a time, demo before production
Each module was rebuilt on React, Material UI and a Node.js backend with role based access and released on its own: first to a demo environment, then to production, where a new reporting dashboard was opened to Coast's own staff before every dealer saw it.
Ruled outA single switchover, or trying new configurations on the portal dealers were using.
- 03
Workers instead of per dealer scripts
Pixel and geo visitor data moved from per dealer parsers and scripts into shared scheduled polling workers that serve every dealership.
Ruled outMaintaining a parser and a script for every dealer.
- 04
One codebase for every brand and device
The CRM layer, campaigns, the workflow builder and the white label brands all build on the same codebase, and each brand gets its own production branch and deployment with features hidden or changed.
Ruled outA separate product or fork for each new capability or brand.
- 05
AI as one contained feature
The AI assistant arrived as a chat feature inside the portal on the OpenAI ChatGPT API, next to sockets, notifications and text replies, and it can be hidden on a white label brand.
Ruled outRebuilding the product around AI; the core stays data pipelines, CRM and automation.
How the system fits together
What we built
Rebuilt core portal
Visitor and views analytics, visitor profiles with web and location visit history, unique vehicle detail and service page analytics, advanced filters with shareable short URLs, and dealership, franchise and user management for six roles.
Appointments and alerts
An appointments module with scheduled, cancelled, rescheduled and no show counts above a calendar, fed by appointment events from Volie, plus hot alerts and be back alerts in one list.
CRM layer and automation
Leads and tasks in list and kanban views, performance dashboards and auto assignment of a returning visitor to the same agent, plus contact lists, scheduled email campaigns, an Audience Builder and a workflow builder with merge fields.
White label brands
Instances of the portal for other brands of Coast, such as one for a manufactured home business with home detail pages, each on its own production branch from the same codebase.
AI chat assistant
A chat widget in the web app on the OpenAI ChatGPT API, with prompt updates, markdown responses and testing, shipped alongside real time notifications over sockets and Twilio text replies.
How it works
Identify
Pixel, geo fence and lead data arrive on schedule and become identified visitors for the right dealership and franchise.
Review
A dealer or agent filters visitors by pages viewed, credit grade, time on site or vehicle of interest and opens one profile per shopper.
Act
From the list or the profile they send an email or a text, or push the lead to the dealer's own CRM.
Follow up
Leads and tasks land in the CRM layer, and a returning visitor goes to the same agent automatically.
Measure
Communication stats, appointment insights and reports on unsold traffic and lost deal reasons show what worked.
A closer look
What changed
The platform has kept evolving in production without a core rewrite, from a reporting tool to a CRM layer with campaigns, workflows and an AI assistant. Coast now resells it under other brands from the same codebase, and the work continues sprint by sprint.
“They finished several long-term projects under this contract for us. We are 100% satisfied with their work and will continue to work with them on many projects.”
Under the hood
- Datics role
- Modernized a live product
- Application
- React and Material UI frontend, Node.js and Express backend with Node ACL for role based access, and PostgreSQL on AWS RDS with EC2 and S3 in the client's own AWS account.
- Tenancy and brands
- Dealership and franchise level separation across six roles, a separate production branch and deployment for each white label brand, and demo and development servers where every release is checked before production.
- Data
- Scheduled polling workers and BigQuery pipelines with de duplication, Cloud SQL and Cloud Storage in the client's Google Cloud, and the API documented in Swagger and Postman.
- AI assistant
- A chat feature inside the portal on the OpenAI ChatGPT API, with markdown responses, which can be hidden for a white label brand.
AI and models
Data and retrieval
Cloud and infrastructure
Apps and APIs
Also in the stack
How it shipped
Support the original portal
We started on the first Django and React reporting portal: parsers for daily dealer lead sheets, pixel and geo visitor data and an appointments calendar.
Discovery and designs
Visitor module designs, user stories for every role, a gap analysis against designs and demos, and the old and proposed visitor data flows.
Module by module rebuild
Weekly sprints rebuilt sign in, dashboard, search, visitor profiles, roles, polling workers, onboarding, admin actions and communication stats, then reporting and appointments moved over.
CRM layer
Leads and tasks with kanban views, performance dashboards and a BigQuery geo pipeline, on the same backend.
AI assistant, brands and automation
The in portal AI assistant, white label instances for other brands, campaigns and an Audience Builder, and now a workflow builder and retargeting emails built from inventory data.
Sprint by sprint with Coast
Our business analyst runs the backlog with Coast's product lead every sprint, and each release goes to a demo environment before production.
In Coast's own accounts
The portal runs in Coast's AWS account and the visitor data in its Google Cloud, so every release, server and pipeline we touch stays under Coast's control.
Continuity through change
When the lead business analyst changed, a structured knowledge transfer plan carried module and integration context across, and the original analyst later returned as lead.
What this unlocked
The open backlog extends the workflow builder and dynamic emails built from the client's inventory API, on the roles, tenancy and data the rebuild put in place.
Related work
Have a product with the same kind of constraints?
Tell us what already exists and what you want it to do. We will tell you what it takes.
