01Executive Summary
The Company, a growing trades service business serving both property managers and homeowners, found themselves constrained by a NetSuite ERP implementation that couldn't keep pace with their operational complexity and growth trajectory.
Rather than attempting a risky "big bang" migration to a new system, we executed a two-phase strategy:
- Phase 1 (The Bridge Stack): A rapid deployment using Airtable for data, Stacker for user interfaces, and Make.com for workflow automation, delivered in weeks rather than months.
- Phase 2 (The Superior ERP): A purpose-built application designed around the Company's specific operational model, with the flexibility to evolve as the business grows.
This approach delivered immediate operational relief while building toward a sustainable, long-term solution. The Company regained control of their technology, reduced operational friction, and established a foundation capable of supporting their next decade of growth.
02The Challenge: When ERP Becomes a Constraint
The Company had grown from a small local operation into a regional trades service provider with a complex operational model. They serve three distinct customer segments, each with fundamentally different operational rhythms:
- B2B Projects and Turns: Long-tail remodeling projects and unit turns (industry jargon for preparing a rental unit between tenants) for property managers. These jobs span days or weeks, involve multiple trades, and require careful coordination and documentation.
- B2B Maintenance: Fast-paced, high-volume maintenance work for property managers. Simple repairs dispatched and completed the same day, with speed and reliability as the key metrics.
- B2C Homeowners: Direct-to-consumer service with a more personal touch. Homeowners expect clear communication, transparent pricing, and a relationship with their service provider.
Their NetSuite ERP implementation, chosen years earlier as an "enterprise-grade" solution, had become a significant drag on operations.
The pain points
| Area | The Problem |
|---|---|
| Workflow rigidity | NetSuite's workflows were designed for traditional manufacturing and distribution, not field service operations. Customizing them to match the Company's dispatch, scheduling, and job-costing model required expensive consultants and still felt like forcing a square peg into a round hole. |
| Field usability | Technicians in the field needed mobile-friendly interfaces to update job status, capture photos, and record materials used. NetSuite's mobile experience was clunky and slow, leading to incomplete data and delayed invoicing. |
| Tri-segment complexity | Three distinct business lines (B2B projects/turns, B2B maintenance, and B2C homeowners) each required different billing cycles, communication styles, pricing models, and workflow pacing. NetSuite's rigid structure made managing these distinctions painful. |
| Integration limitations | Connecting NetSuite to the Company's scheduling software, GPS fleet tracking, and communication tools required middleware that was expensive to build and fragile to maintain. |
| Escalating costs | NetSuite's pricing model created compounding pressure: annual subscription increases, per-user licensing fees, and additional charges for modules that should have been core functionality. Every new capability came with a new line item. |
Why not just "fix" NetSuite?
The Company had already invested significantly in NetSuite customizations. The question wasn't whether more customization was possible; it was whether it was wise. Every custom script and workflow increased the maintenance burden and made future upgrades riskier. The platform was becoming a liability precisely because of the effort invested in making it work.
A clean break, executed carefully, offered a better path forward.
03Phase 1: The Bridge Stack
The first phase delivered operational relief in weeks, not months, using a carefully selected combination of no-code and low-code tools.
Why a bridge solution?
The Company faced a stark choice. Their NetSuite renewal was approaching, and staying meant committing to another year and approximately $100,000 in licensing, fees, and associated costs. But building a fully custom platform takes time, typically 6-12 months for a system of meaningful complexity. The math didn't work: they couldn't justify the NetSuite expense, but they couldn't wait a year for a replacement either.
The answer was a 60-day sprint to operational independence. We needed to deliver a functional replacement for NetSuite's core workflows fast enough that the Company could walk away from the renewal without disrupting their business.
The Bridge Stack served three purposes:
- Immediate relief: Get off NetSuite before the renewal deadline, eliminating $100,000 in costs.
- Discovery: Learn what the Company actually needed by watching them use a more flexible system.
- Risk reduction: Validate the migration approach before committing to a larger build.
The technology choices
Airtable
Role: Relational database
Flexible schema, easy to modify as requirements emerged. Powerful enough for real operations, simple enough for non-technical staff to understand.
Stacker
Role: User interfaces
Built custom portals for office staff, field technicians, and even customer-facing views, all connected to Airtable, without writing code.
Make.com
Role: Automation
Connected the Bridge Stack to existing tools (email, SMS, calendar, accounting) and automated workflows like status notifications and invoice generation.
What we built
| Capability | Implementation |
|---|---|
| Job management | Custom Airtable bases tracking jobs from request through completion, with views tailored for dispatchers, technicians, and managers. |
| Customer records | Unified customer database distinguishing property manager accounts from homeowner records, with relationship tracking for properties. |
| Field mobile app | Stacker-built mobile interface for technicians: job details, status updates, photo capture, materials logging, time tracking. |
| Dispatch board | Visual dispatch interface showing technician schedules, job assignments, and geographic routing. |
| Automated notifications | Make.com scenarios triggering communications at key workflow stages (appointment confirmation, technician en route, job complete). |
| Reporting dashboards | Airtable interfaces aggregating operational metrics: jobs by status, revenue by segment, technician utilization. |
The Bridge Stack's limitations
The no-code approach was intentionally a bridge, not a destination. As the Company grew and requirements solidified, the Bridge Stack's limitations became apparent:
- Performance at scale: Airtable's record limits and API rate limits created pressure as data volume grew.
- Complex business logic: Sophisticated pricing rules, multi-property billing, and job costing were awkward to implement in formulas and automations.
- Integration depth: Make.com handled many integrations well, but complex, high-volume data flows (like real-time GPS tracking) pushed its boundaries.
- Audit and compliance: As the Company grew, they needed better audit trails and data governance than the no-code stack could provide.
These limitations were expected. The Bridge Stack bought time and provided invaluable learning about what the bespoke platform needed to do.
04Phase 2: The Bespoke Platform
With operational pressure relieved and requirements validated, we began building a purpose-built platform designed specifically for the Company's operational model.
Design principles
The lessons from both the NetSuite experience and the Bridge Stack informed the platform's design:
Operations-First
Built around the daily reality of running a trades service business (dispatch, field work, invoicing) rather than forcing operations into a generic ERP model.
Tri-Segment Native
All three business lines (B2B projects, B2B maintenance, B2C homeowners) as first-class concepts. Different billing cycles, workflow pacing, communication styles, and approval paths built into the core model.
Field-Friendly
Mobile experience designed for technicians wearing gloves in an attic: large touch targets, offline capability, minimal typing required.
Integration-Ready
Clean APIs and webhook support for connecting with scheduling tools, accounting systems, fleet tracking, and future services yet to be adopted.
Core capabilities
| Domain | Key Features |
|---|---|
| Customer Management | Unified customer database with property manager hierarchies, property portfolios, homeowner records, and full service history. Smart distinction between billing contacts and service locations. |
| Job Lifecycle | Complete workflow from service request through completion and invoicing. Status tracking, approval gates for B2B accounts, automated follow-ups, and warranty tracking. |
| Dispatch & Scheduling | Visual dispatch board with drag-and-drop assignment, technician skill matching, geographic optimization, and real-time availability tracking. |
| Field Operations | Native mobile application for technicians: job details, checklists, photo documentation, materials and time capture, customer signatures, and offline support. |
| Pricing & Invoicing | Flexible pricing engine supporting flat-rate, time-and-materials, and contracted rates. Automated invoice generation with configurable approval workflows for large jobs. |
| Reporting & Analytics | Operational dashboards, financial reports, technician performance metrics, and customer segment analysis. Data warehouse integration for advanced analytics. |
05Architecture & Technology Choices
The bespoke platform was built on a modern, maintainable stack chosen for longevity, team familiarity, and operational fit.
Technology stack
| Layer | Technology | Rationale |
|---|---|---|
| Backend framework | Laravel (PHP 8.x) | Mature, well-documented framework with excellent tooling. Large talent pool for future team growth. |
| Database | PostgreSQL | Robust database with strong support for complex queries, JSON for flexibilty, and proven scalability. |
| Frontend (Web) | Vue.js + Inertia.js | Modern reactive UI without the overhead of maintaining a separate API. Server-driven routing with client-side interactivity. |
| Mobile app (current) | Progressive Web App | Mobile-optimized interface providing cross-platform access. Native app development is on the roadmap. |
| API | RESTful + GraphQL | REST for simple integrations, GraphQL for complex queries from the mobile app and reporting tools. |
| Hosting | AWS (ECS/RDS) | Scalable cloud infrastructure with managed database services, proven reliability, and cost-effective at the Company's scale. |
| Background jobs | Laravel Queues + Redis | Asynchronous processing for notifications, report generation, and integration syncs without blocking user operations. |
Accounting: the QuickBooks decision
One of the first questions when leaving NetSuite is: where does accounting go? NetSuite's strength is its unified financial and operational data. Replacing it means splitting those concerns.
We chose QuickBooks for the accounting layer. The rationale was simple:
- Cost: A fraction of NetSuite's licensing fees.
- API access: Clean, well-documented APIs made integration with the bespoke platform straightforward.
- Familiarity: The Company's bookkeeping staff already knew QuickBooks from previous roles.
The Superior ERP handles operational data (jobs, customers, scheduling, field operations) and syncs financial transactions to QuickBooks for invoicing, payments, and reporting. This separation of concerns keeps each system focused on what it does best.
Integration architecture
A key lesson from the NetSuite experience was the importance of clean integration boundaries. The platform provides:
- Webhooks for real-time event notifications to external systems.
- REST API with comprehensive documentation for third-party integrations.
- Import/export tools for batch data operations and accounting system sync.
- Embedded integrations for critical tools (scheduling, payments, SMS) built directly into the platform.
- QuickBooks sync for automated invoice generation and payment reconciliation.
06Data Migration Strategy
Migrating from NetSuite through the Bridge Stack to the bespoke platform required careful data handling at each stage.
Migration timeline
NetSuite → Bridge Stack
Extracted core data (customers, jobs, invoices) via NetSuite's SuiteScript APIs and CSV exports. Transformed and loaded into Airtable with Make.com handling the ETL orchestration. Historical data preserved but not all legacy fields carried forward.
Bridge Stack operational period
New data entered directly into Airtable/Stacker. Continued refinement of data model based on operational learnings. Identified data quality issues and cleaned up legacy inconsistencies.
Bridge Stack → Bespoke Platform
Built comprehensive migration scripts to transform Airtable data into the new schema. Ran parallel systems during validation period. Cutover executed over a weekend with rollback plan ready.
Post-migration
Bridge Stack maintained in read-only mode for 90 days for reference. All integrations pointed to new platform. NetSuite finally decommissioned after data retention requirements satisfied.
Data quality as a feature
Each migration stage was an opportunity to improve data quality:
- Duplicate customer records merged
- Incomplete job records flagged and resolved
- Pricing inconsistencies identified and standardized
- Property-to-customer relationships properly modeled
The bespoke platform launched with cleaner, more consistent data than the Company had ever had in NetSuite.
07Outcomes & Business Impact
The migration delivered measurable improvements across operations, user experience, and cost structure.
Operational improvements
| Metric | Before (NetSuite) | After (Bespoke) |
|---|---|---|
| Time from job completion to invoice | 3-5 days (manual process) | Same day (automated) |
| Field data capture rate | ~60% (technicians avoided the system) | 95%+ (mobile app adoption) |
| Dispatch efficiency | Phone calls + spreadsheets | Real-time visual dispatch |
| Customer communication | Manual, inconsistent | Automated at every stage |
| Report generation | Hours (consultant required) | Minutes (self-service dashboards) |
Cost structure
- Eliminated: NetSuite subscription fees (and their annual increases), per-user licensing costs, module add-on charges, ongoing customization fees, and consultant retainer
- Added: Cloud hosting costs (significantly lower), maintenance and enhancement budget (controlled in-house)
- Net result: Lower total cost of ownership with better capabilities and full control
Perhaps more importantly, the Company no longer makes technology decisions based on seat counts. Every technician, dispatcher, and manager who needs system access has it. The platform serves the business instead of the business rationing access to the platform.
Strategic value
Competitive advantage
The platform now reflects the Company's unique operational model rather than forcing them into a generic ERP mold. This operational excellence differentiates them in sales conversations.
Agility
New capabilities can be built in weeks, not months. The Company can respond to market opportunities and customer requests without waiting for a vendor roadmap.
Data ownership
Full access to all operational data enables advanced analytics and business intelligence that wasn't possible when data was locked in NetSuite's schema.
Ongoing support model
The Company now has an internal IT team that manages day-to-day platform operations. We continue to support that team with architecture guidance, complex feature development, and knowledge transfer. This model gives the Company ownership and control while maintaining access to the expertise that built the system.
What's next
The platform continues to evolve. Current roadmap priorities include:
- Native mobile app: While the current mobile experience works well, a purpose-built native application will improve performance, offline capabilities, and the field technician experience.
- Portal ingestion: Many property management companies use customer portals that lack APIs or notification capabilities. We're building intelligent job ingestion that can pull work orders from these portals automatically, eliminating manual re-entry.
- Enhanced business intelligence: New reporting and analytics capabilities to give the Company deeper insight into operational performance, profitability by segment, and growth opportunities.
08Lessons Learned
What worked well
- The phased approach: The Bridge Stack delivered immediate value and validated requirements before the larger investment in bespoke development. We knew what to build because we'd watched users work in a flexible system first.
- No-code as a discovery tool: Airtable and Stacker let us prototype and iterate rapidly. Changes that would have been expensive in code were cheap experiments in the no-code environment.
- User involvement: Office staff, dispatchers, and field technicians were involved throughout. Their feedback shaped both the Bridge Stack and the bespoke platform.
- Clean breaks over gradual migration: Rather than trying to run NetSuite in parallel indefinitely, we committed to cutover dates. This forced decisions and prevented the "two systems" limbo that drags out migrations.
What was challenging
- NetSuite data extraction: Getting data out of NetSuite was more difficult than expected. Saved searches, SuiteScript, and CSV exports all had limitations. Budget extra time for extraction and validation.
- Process change management: New systems mean new processes. Some staff adapted quickly; others needed more support. Training and documentation were essential but sometimes underestimated.
- Integration prioritization: The Company used many tools. Deciding which integrations were essential for launch versus which could wait required difficult trade-offs.
- Scope management: The flexibility of bespoke development is a double-edged sword. "While we're at it..." thinking had to be managed to keep the project on track.
09Conclusion & Recommendations
The Company's journey from NetSuite to a bespoke platform demonstrates that escaping an ill-fitting ERP is achievable with the right approach.
When to consider this path
A similar migration strategy may be appropriate when:
- Your current ERP requires constant customization to support core workflows
- Licensing and consultant costs are disproportionate to value delivered
- Your operational model is genuinely different from what the ERP was designed for
- You need agility to respond to market changes faster than your ERP vendor moves
- You have the organizational appetite to invest in building technology as a competitive advantage
Recommendations for similar projects
- Start with a bridge. Unless you have perfect requirements clarity (you don't), a rapid no-code implementation teaches you what you actually need. It's cheaper to learn by building than by specifying.
- Plan for two migrations, not one. Bridge → Bespoke is a real migration. Budget time and effort for it. The bridge is not the destination.
- Involve users early and often. The people who use the system daily will surface requirements and issues that no planning document captures.
- Invest in data quality during migration. Migration is an opportunity to clean up years of accumulated data inconsistencies. Take it.
- Budget for change management. Technology is the easy part. Getting people to change how they work is harder. Plan for training, documentation, and support.
Final Thought
The Company didn't just replace one system with another. They fundamentally transformed their relationship with technology, moving from a posture of accommodation to one of ownership. For years, their business had bent itself around the limitations of their ERP, accepting friction as the cost of "enterprise-grade" software. That era is over.
What made this transformation possible wasn't just better technology; it was a willingness to question assumptions that had calcified into constraints. The assumption that "enterprise" software was inherently better. The assumption that customization debt was inevitable. The assumption that operational complexity required operational suffering. Each of these beliefs, once examined, turned out to be optional.
The phased approach proved essential. By building a bridge before attempting the final crossing, the Company learned what they actually needed rather than what they thought they needed. Requirements that seemed critical during planning turned out to be artifacts of the old system's limitations. Capabilities that no one had thought to ask for emerged as obviously necessary once people started working in a more flexible environment.
Today, the Company's technology works the way they work, not the other way around. New capabilities are measured in weeks, not quarters. Changes that once required consultant engagements now happen in-house. And perhaps most importantly, the team that runs the business now sees technology as a lever they can pull, not a weight they must carry. That shift, from technology as obstacle to technology as advantage, is the real outcome of this engagement.