How to build an app like ServiceTitan: field service software breakdown
Building a custom field service platform like ServiceTitan costs $80,000-$140,000 and takes 14-18 weeks. Core modules are the dispatch board, technician mobile app, job management, invoicing with Stripe, and automated SMS reminders. The primary tech stack is React, React Native, Node.js, PostgreSQL, Google Maps API, and Twilio. RaftLabs builds custom field service platforms for HVAC, plumbing, and electrical businesses.
Key Takeaways
- A 30-technician HVAC company on ServiceTitan Essentials pays $7,176 per year in base fees. Add-on modules push total cost to $12,000-$20,000 per year.
- A custom field service platform costs $80,000-$140,000 to build and takes 14-18 weeks. The break-even against ServiceTitan is 4-7 years, but you own it outright and can modify any workflow.
- The dispatch board requires WebSocket connections to both the web app and every technician's mobile app. Real-time sync across 50 active connections is the hardest engineering problem in the build.
- Offline mode for the technician app is non-negotiable. Techs work in basements and rural areas. The app must handle job completion, photos, and invoicing without a signal, then sync on reconnect.
- Custom wins when you have 20+ technicians, franchise operations needing white-label software, or workflows ServiceTitan cannot accommodate.
ServiceTitan is an excellent product for most field service companies. That is exactly why the pricing is what it is. A 30-technician HVAC company on the Essentials plan pays $7,176 per year in base fees. Add marketing automation, payroll, and financing modules and the total reaches $12,000-$20,000 per year. Every year, forever.
At some point the math changes. A custom field service platform built to your exact workflow costs $80,000-$140,000 once. You own it. No per-user fees. No module upsells. No pricing increases tied to your growth.
This guide covers what that build actually involves: the modules, the tech stack, the timeline, the hardest engineering problems, and the point at which building your own platform makes financial sense.
What "an app like ServiceTitan" actually means to build
ServiceTitan is not one app. It is a set of connected modules that cover the full lifecycle of a service job: from the phone call that books it, to the technician arriving and completing it, to the invoice being paid and the job syncing to your accounting software.
A custom build covers the same lifecycle. You are building a web application for your office staff and dispatchers, a mobile application for your technicians in the field, and the backend that keeps them in sync.
The dispatch web app is the operational center. Dispatchers see all open jobs, all technicians, and all schedules on a single board. They drag and drop to assign work. They see which technician is closest to the next job, which ones are running late, and which jobs have not been assigned yet.
The technician mobile app is the field-side interface. Technicians see their jobs for the day, get turn-by-turn navigation to each address, view the customer's service history and installed equipment, complete a job checklist, take before and after photos, and generate an invoice on-site. The customer signs digitally. The invoice goes to their email before the technician leaves the driveway.
The backend connects everything. It handles job creation, status updates, payment processing, SMS reminders, and the sync to QuickBooks.
Core features to build (MVP vs. full)
MVP scope (14-16 weeks, $80,000-$100,000)
The minimum viable field service platform covers eight modules.
Dispatch board. A visual calendar and board showing all open jobs, technician schedules, and job status. Dispatchers drag jobs between technicians. Each job card shows the customer name, address, job type, estimated duration, and current status. This is the operational core. Everything else depends on it.
Job management. Create a job from a phone call or online request. Assign a job type (install, repair, maintenance). Add notes and attach photos from a previous visit. View equipment history for the customer's address.
Technician mobile app. Show assigned jobs for the day. Tap a job to view the customer history. Navigate to the address. Complete a checklist. Take before and after photos. Collect a digital signature. Generate an invoice on-site.
Customer history. Full service history per address: equipment installed, warranties, past invoices, previous technicians. Technicians see this before they arrive. It is one of the features that drives average ticket size, because technicians can see what has not been serviced recently.
Invoicing and payment. Generate an invoice in the field. Accept a credit card via Stripe. Email the receipt to the customer. Sync the transaction to QuickBooks automatically.
Pricing book. Pre-set prices for every service and part. Technicians select items from the book rather than entering prices manually. Pricing stays consistent across your team. This directly affects average ticket size and margin.
Automated reminders. Appointment confirmation SMS when a job is booked. A reminder 24 hours before. A service-due reminder for customers on maintenance agreements. A review request 24 hours after the job closes. All triggered automatically from job status changes.
Reports. Revenue by technician, job type, and customer source. Conversion rate, average ticket size, and job completion rate. This is where owners and managers spend most of their time.
Full scope additions ($120,000-$140,000 total)
The full build adds features that matter at larger scale: customer self-booking through a web portal, maintenance agreement billing and renewals, multi-location support for franchise operations, technician performance dashboards with commission calculations, and a customer-facing portal to view history and pay invoices online.
The tech stack
Dispatch web app: React. The dispatch board is a heavily interactive interface with real-time updates, drag-and-drop scheduling, and filtered views. React handles this well with a good state management approach.
Technician mobile app: React Native. Building one codebase for both iOS and Android cuts development cost significantly versus native. Field service apps do not require the rendering performance of a game or camera-heavy social app. React Native is the right trade-off.
Backend API: Node.js. Fast to build with, well-supported for WebSocket connections, and easy to find engineers for.
Database: PostgreSQL. Job records, customer history, equipment records, invoices, and pricing data are relational. PostgreSQL handles this well and keeps your data consistent with proper transactions.
Maps and routing: Google Maps API. Routing technicians to job addresses, calculating drive time for dispatch estimates, and displaying service area coverage on the dispatch board.
SMS and phone: Twilio. Appointment reminders, service-due notifications, and review requests. Twilio has the best deliverability and the cleanest API for programmatic SMS.
Payments: Stripe. Card processing, saved payment methods, and receipt emails. The QuickBooks sync uses Stripe's webhook events to push invoice data automatically.
Push notifications: Firebase Cloud Messaging. New job assignments and status changes push to the technician's mobile app instantly.
How long it takes and what it costs
| Scope | Timeline | Cost |
|---|---|---|
| MVP (8 core modules, mobile app) | 14-16 weeks | $80,000-$100,000 |
| Full build (+ portal, agreements, multi-location) | 16-18 weeks | $120,000-$140,000 |
The team for this build is typically: one product engineer leading backend and architecture, two frontend engineers (one web, one mobile), one QA engineer, and a product manager coordinating the build.
The 14-week timeline assumes clean scope, fast feedback cycles, and no major integration surprises with QuickBooks or third-party APIs. Scope creep is the most common timeline risk. Define the MVP feature list before the build starts and protect it.
The hardest technical challenge
Two problems consistently cause the most engineering difficulty on field service platforms.
Real-time dispatch sync is the first. When a dispatcher moves a job from one technician to another on the dispatch board, the technician's mobile app must update within seconds. This requires WebSocket connections from both the web app and each technician's mobile app, with a server-side event bus coordinating changes.
A company with 50 active technicians has 50 simultaneous WebSocket connections. Managing connection state, handling dropped connections, and making sure the mobile app re-syncs correctly when a technician's phone loses and regains signal is the engineering problem that trips up most first-time builds. If you get it wrong, a technician drives to the wrong address or shows up for a job that was reassigned an hour ago.
Offline mode for the technician app is the second hard problem. Technicians work in basements, attics, rural areas, and equipment rooms with no signal. The mobile app must work completely offline. That means viewing job details, completing checklists, capturing photos, and generating invoices, all without an internet connection. When the phone regains connectivity, it syncs all offline activity back to the server without creating duplicate records or overwriting updates made from the dispatch board.
The sync logic for offline-first apps is genuinely difficult to build correctly. Every offline action needs a timestamp and conflict resolution strategy. A technician who completes a job offline while a dispatcher has reassigned it online requires the system to decide which action wins and notify the right people.
Most field service apps that fail in the field fail because of offline handling. Build this correctly from the start. It is not something you retrofit easily.
Build vs. ServiceTitan: when custom wins
ServiceTitan is the right choice for most field service businesses. The product is deep, well-supported, and handles the complexity of running a field service operation. The Starter plan at $398/month is a good deal for a company with 5-10 technicians. Do not build a custom platform to avoid a $398/month bill.
Custom wins in three specific situations.
You are paying $15,000+ per year on ServiceTitan and that number will grow as you add technicians and modules. At $15,000/year, a $120,000 custom build breaks even in 8 years. At $20,000/year, break-even is 6 years. Many companies that reach this level also have enough operational data to know exactly which ServiceTitan features they use and which ones they pay for but ignore.
You run a franchise or multi-brand operation and need a white-labeled platform your franchisees access under your brand. ServiceTitan does not offer a white-label option. If your business model involves selling software access to franchisees, you need your own platform.
Your service workflows are too specific for ServiceTitan to handle cleanly. Commercial service with complex billing, government contracts with compliance reporting, or niche services like pool chemical tracking or elevator maintenance often have workflow requirements that generic field service software forces you to work around constantly. Custom gives you the exact workflow your operations require.
Do not build custom if you have fewer than 10 technicians. Do not build custom if your pain with ServiceTitan is about price, not capability. Do not build custom if you are not ready to maintain a software product long-term. Custom software requires ongoing engineering investment. Plan for it.
How RaftLabs can help
RaftLabs has built dispatch systems, technician mobile apps, and real-time job management platforms for field service and on-demand businesses. We understand the offline sync problem. We understand the WebSocket architecture for real-time dispatch. We have built QuickBooks integrations and Stripe payment flows that handle the edge cases that surface in production.
The first step is a scoping call. We will ask about your current workflow, the features you actually use in ServiceTitan, and the specific pain points driving you to consider a custom build. We will give you a realistic cost range and timeline before you commit to anything.
If ServiceTitan is still the right answer after that conversation, we will tell you. Our job is to solve your problem correctly, not to sell you a build you do not need.
Frequently asked questions
- A custom field service platform costs $80,000-$140,000 to build, depending on feature scope. The core build includes a dispatch board, technician mobile app (iOS + Android), job management, customer history, invoicing with Stripe, pricing book, SMS reminders via Twilio, and QuickBooks sync. Timeline is 14-18 weeks with a team of 5-6 engineers.
- ServiceTitan pricing in 2026: Starter is $398/month for up to 10 users, Essentials is $598/month. The Works plan runs $1,000+ per month. Enterprise pricing is custom and often reaches $2,000-$5,000 per month for large operations. Add-on modules for marketing automation, payroll, and financing can push a 30-technician company to $12,000-$20,000 per year.
- Core features: dispatch board with drag-and-drop scheduling, technician mobile app with offline mode, job creation from call or web request, customer history with equipment records, on-site invoicing with card payments, pre-set pricing book, automated appointment and follow-up reminders, and reporting by technician and job type. The technician app must work offline in low-signal environments.
- React for the dispatch web app, React Native for the technician mobile app, Node.js for the backend API, PostgreSQL for the database, Google Maps API for routing and service area mapping, Twilio for SMS and phone, Stripe for payment processing, Firebase Cloud Messaging for push notifications, and QuickBooks API for accounting sync.
- Build custom when you have 20+ technicians paying $15,000+ per year on ServiceTitan, when you run a franchise and need white-labeled software, or when your service workflows are too specific for ServiceTitan to handle. Keep using ServiceTitan if you have fewer than 10 technicians -- the Starter plan at $398/month is the right tool for small operations.
Ask an AI
Get an instant summary of this post from your preferred AI assistant.



