Pasley Hill / Redline Specs
← All projects BIG BUILD — SCOPE CAREFULLY

Replacing Mobiwork (Custom Field-Service CRM)

Redline pays roughly $60,000/year for Mobiwork, the field-service CRM that 100+ Merchandising Specialists rely on every day for routes, check-in status, and client messaging. With AI-assisted development the build is no longer the hard part. The two questions that actually decide this are: which Mobiwork features does Redline truly use, and what does it cost to OWN a mission-critical mobile app for 100+ people — not what does it cost to write the code.

Effort L Value High Risk High Depends on Mobiwork feature audit + Route Optimization

The Problem Today

Redline runs its field operation on Mobiwork (mobiwork.com), a commercial field-service CRM, at a cost of ~$60,000/year. Three jobs ride on it every single day:

The COO's instinct is reasonable: $60k/year is real money, and a custom build could recover much of it. The CEO's instinct is also reasonable — "building a custom Mobiwork could take a hot minute." Both are half right, and the honest principal-engineering answer reframes the whole question.

FRAME THIS CORRECTLY AI-assisted development has made the build dramatically cheaper and faster than the old "could take a hot minute" estimate would suggest. That is genuinely true. But for a system that 100+ reps depend on to do their jobs, the code was never the expensive part. The expensive part is owning it: keeping a mobile app alive on the iOS and Android stores, offline reliability, push notifications, on-call when it breaks at 7am before routes start, and a support desk for 100+ non-technical field users. That's the real $60k question — not "can we write it."
~$60k/yr
current Mobiwork spend
100+
field reps depending on it daily
3
status states reps mark per stop
Daily
mission-critical — no "down for a day"

So before a single line is written, the work is to decompose Mobiwork into the features Redline actually uses, separate core from nice-to-have, and be clear-eyed that we are not saving $60k — we are trading a $60k subscription for a smaller-but-permanent ownership cost. If that trade is favorable, it's a great build. If we accidentally rebuild the whole product, it is not.

How It Works

The right move is not a clone. It's a feature-scoped MVP that replaces the highest-value module first, runs alongside Mobiwork, and proves itself before we cut the cord. Step one is honest feature decomposition.

Mobiwork, decomposed — core vs. nice-to-have for Redline

Mobiwork is a broad field-service suite. Redline almost certainly uses a fraction of it. This is the audit that has to happen first; below is our best-guess starting hypothesis, to be confirmed in discovery.

ModuleWhat it doesFor Redline
Mobile field app — status check-insRep marks In-Transit / On-Site / Completed per stop, on a phone, in the fieldCORE — the heart of the system
Mobile offline supportApp keeps working with no signal; syncs when back onlineCORE — lots are signal-dead spots
Route / day view (for reps)Rep sees their ordered list of stops for the dayCORE
Push notificationsRoute changes, reminders to check in, manager nudgesCORE
Dispatch / route planning (for managers)Assigning stores to reps and ordering stopsCORE-ish — overlaps Route Optimization (see below)
Live status dashboard (managers)Real-time view of who's where, coverage at a glanceCORE-ish — feeds RM updates
GPS / location trackingRep location, geofenced auto check-inNICE-TO-HAVE — confirm if used
Client / dealer messagingIn-app comms tied to accountsNICE-TO-HAVE? — Redline already lives in Slack/email; confirm real usage
Scheduling / calendaringAppointment booking, time windowsCONFIRM — may not apply to lot merchandising
Forms / invoicing / work ordersField data capture, billing docsPROBABLY NOT — billing lives in Predian
Reporting / analyticsBuilt-in dashboards and exportsNICE-TO-HAVE — much already pulled from Predian
Admin / user managementRoles, onboarding, permissionsREQUIRED for any 100+ user system
THE INSIGHT The expensive, broad parts of Mobiwork (forms/invoicing, scheduling, generic CRM) are very likely the parts Redline doesn't lean on — Redline's billing is in Predian, its comms are in Slack/email. What Redline truly depends on is a tight slice: a reliable mobile status-check-in app, a rep day-view, and a manager live-coverage dashboard. That slice is buildable. Cloning the whole suite is not worth it.

Recommended MVP — the status pipeline + mobile app + route view

The minimum viable replacement is the three CORE rows above, wired into one pipeline:

FIELD REP (phone)                       MANAGERS (web)
─────────────────                       ──────────────
[ Today's Route ]                       [ Live Coverage Board ]
  Stop 1  Dealer A   ● Completed          Region East:  18/22 stops done
  Stop 2  Dealer B   ● On-Site            Region West:  11/19 stops done
  Stop 3  Dealer C   ○ In-Transit  ◄──┐   ┌─► who's In-Transit / On-Site / done
  Stop 4  Dealer D   ○ —              │   │   late starts, missed stops flagged
                                      │   │
   tap to advance status ────────────┘   │
   works OFFLINE, syncs when back online  │
        │                                 │
        ▼                                 │
   queued status event (idempotent) ──────┘
        │
        ▼
   API backend  ──►  Postgres (source of truth: stops, status, timestamps)
        │
        ├──► push (FCM/APNs): route changes, check-in reminders
        └──► feeds: RM Slack updates, Route Optimization, reporting

Everything here is plain engineering — no AI magic is required for the CRM itself. The status pipeline is a queue of idempotent events from phones to Postgres, with a real-time read model for managers. The honest reason this is hard is not the data model; it's that it has to work on a dead phone in a back lot and never lose a check-in.

Where this overlaps Route Optimization

The MS Routes project already proposes an AI agent that continuously re-plans 100+ routes from Predian billing, Rippling home addresses, distance and traffic. That agent produces routes; this CRM is what delivers those routes to reps' phones and captures whether each stop actually happened. They are two halves of one loop:

SYNERGY Build these together and the route engine's output has a native home, and the CRM has a route source that isn't Mobiwork. Build the CRM without the route engine and you still need a manual dispatch screen. The two projects should share a backend, a Postgres schema, and a roadmap.

Architecture & Stack

A mobile-first field app, an API backend, one source-of-truth database, and a push pipeline. Deliberately conventional — for a mission-critical system, boring and proven beats clever.

React Native (iOS + Android) — or PWA, see below Offline store (SQLite / WatermelonDB) API backend (Node/TypeScript) PostgreSQL (RDS) — source of truth FCM (Android push) APNs (iOS push) React (manager web dashboard) AWS (RDS, ECS/Lambda, S3, CloudFront) Cognito / auth for 100+ users CloudWatch + alerting / on-call

React Native vs. PWA — the first real decision

A PWA (installable web app) is dramatically cheaper to own: no app-store review, no native build pipeline, instant updates, one codebase. It can do offline and push (Android well; iOS push is workable but historically fiddly). A React Native app gives the most reliable offline, native push, and a "real app" feel field reps expect — at the cost of two store listings, store review cycles, signing certs, and forced-update headaches.

Recommendation: start as a PWA to validate the pipeline cheaply; commit to React Native only if iOS push/offline reliability proves insufficient for 100+ daily users. Decide this in discovery, not by default.

Why Postgres as source of truth

Stops, status transitions, timestamps, and who-did-what are relational and audit-worthy. Postgres on RDS gives durability, point-in-time recovery, and a clean schema the Route Optimization project shares. Status events arrive as an idempotent queue from phones (each event keyed so a retry after a flaky sync can't double-count), and a read model serves the manager dashboard in near-real-time.

The architecture itself is small. The weight is in the non-functional requirements: offline correctness, push delivery, auth for 100+ users, and observability good enough that we know a sync is failing before a Regional Manager does.

Build Plan

Phased deliberately so Redline never bets the daily operation on unproven software. Each phase runs alongside Mobiwork; we don't cancel the subscription until the replacement has earned it. Build time is AI-assisted-fast and honest — but note the calendar is gated by real field piloting and store review, not by typing speed.

Phase 0 — Feature audit & decision
~1 week · the scope document that prevents a $60k mistake

Sit with ops and 2-3 reps. Confirm exactly which Mobiwork modules are used daily, which are ignored, and what "good" looks like for check-in. Decide PWA vs. React Native. Output: a locked MVP scope and a build-vs-keep recommendation. This phase can conclude "keep Mobiwork" — and that's a valid, money-saving outcome.

Phase 1 — Status pipeline + Postgres + manager board
~2-3 weeks · check-ins flowing into a real-time dashboard

The backend, Postgres schema, idempotent status-event API, and the manager live-coverage web dashboard. Seed routes manually (or from the route engine). Provable on a laptop browser before any phone work.

Phase 2 — Mobile field app (rep day-view + status)
~3-4 weeks · reps mark In-Transit / On-Site / Completed offline

The PWA (or RN app): today's route, tap-to-advance status, offline queue with reliable sync, push for route changes and check-in reminders. The hard, non-negotiable work is offline correctness — the app must never silently drop a check-in.

Phase 3 — Shadow pilot (runs alongside Mobiwork)
~3-4 weeks elapsed · one region, both systems live

One region's reps use both the new app and Mobiwork in parallel. Compare check-in completeness, sync failures, and rep friction against Mobiwork as ground truth. Fix what the field reveals. Do not cut Mobiwork yet.

Phase 4 — Admin, hardening & rollout
~3-4 weeks · 100+ users onboarded, support process stood up

User management/auth for 100+, onboarding flow, monitoring/alerting, a support runbook, and (if RN) store listings + review. Roll out region by region. Cancel Mobiwork only after a region has run cleanly on the replacement for a full billing cycle.

ESTIMATE — HONEST Build to a piloted MVP is on the order of 3-4 months of elapsed time, AI-assisted pace — and most of that calendar is field piloting and hardening, not coding. The code for the core slice is genuinely fast now. What you cannot compress is proving an offline mobile app is trustworthy for 100+ people before you remove their existing tool. Going live is not the finish line; it's the start of the ownership cost below.

Data & Access Needed

This build connects to systems Redline already has, plus net-new infrastructure that a custom mobile app requires (the items marked NEW are part of what "owning it" means).

Source / ItemWhat we needUsed for
Mobiwork (current)Read access / export of current routes, stop lists, status history; admin walkthrough of which modules are actually usedFeature audit, migration, shadow-pilot ground truth
Route sourceRoute assignments per rep per day — from Route Optimization engine, or Mobiwork export in the interimThe rep day-view
PredianStore/dealer master data, billing context for coverageLinking stops to accounts & reporting
RipplingRep roster, home addresses (shared with Route Optimization)User accounts, dispatch context
SlackWebhook/app to surface coverage status into regional channelsFeeding RM weekly updates
Apple Developer (NEW)Apple Developer Program account ($99/yr), signing certs — if React NativeiOS app distribution + push (APNs)
Google Play (NEW)Play Console account ($25 one-time) — if React NativeAndroid app distribution + push (FCM)
AWS accountRDS, ECS/Lambda, S3, CloudFront, Cognito, CloudWatchBackend, database, hosting, auth, monitoring
On-call ownership (NEW)Agreement on who responds when it breaks before routes startKeeping a daily-critical system alive

Risks & Open Questions

RISK This is mission-critical and used daily by 100+ people. If the app is down or loses check-ins at 7am, an entire region's coverage tracking goes dark and Regional Managers fly blind. Mobiwork being a vendor means someone else carries that 24/7 reliability burden today. Owning the replacement means Redline (via Pasley Hill) inherits that burden. This single fact is why the tier is "scope carefully," not "quick win."
RISK Offline mobile is genuinely hard to get right. Reps work in signal-dead lots. The app must queue check-ins offline and sync them exactly once when signal returns — no drops, no duplicates. This is the part most likely to bite in the field and is the reason for a real shadow pilot before cutover.
RISK The mobile app you must keep alive. If React Native: iOS/Android store policies change, OS updates break things, certs expire, and you'll periodically be forced to ship updates just to stay in the stores. A PWA dodges most of this but trades away some native reliability. Either way, a phone app is a living dependency, not a one-time deliverable.
RISK — SCOPE CREEP "While we're at it, can it also do…" Every Mobiwork feature someone misses becomes a request. The discipline that makes this project pay off is holding the line on the core slice. Rebuild the whole CRM and the ownership cost balloons past what Mobiwork charges.
OPEN QUESTION Which Mobiwork modules does Redline actually use daily? Specifically: is the in-app client/dealer messaging real workflow or vestigial (given Slack/email already exist)? Is GPS/geofence check-in used? The answer changes scope materially.
OPEN QUESTION What is the true all-in Mobiwork cost — is the ~$60k purely subscription, or does it bundle support/onboarding/integrations we'd also have to provide ourselves? The build-vs-buy math depends on comparing like for like.
OPEN QUESTION Who owns on-call? A daily-critical field app needs a defined human who responds when it breaks before routes start. That role is a real, recurring cost and has to be named before cutover.

Cost to Own

This is the section that actually decides the project — and the reason we lead with it instead of build time. The build is cheap now. Owning a field CRM that 100+ people depend on is not. Saving $60k/yr only counts if the run-plus-maintain-plus-support cost lands well below it.

RUN COST (AWS) Modest and predictable: RDS Postgres, a small always-on API (ECS/Lambda), S3/CloudFront, Cognito for 100+ users, push (FCM is free; APNs is free), and CloudWatch. Realistically on the order of a few hundred dollars a month at this scale. Plus store fees if React Native ($99/yr Apple + $25 one-time Google). This is the small number.
THE REAL COST — MAINTENANCE & SUPPORT
  • On-call / reliability. A daily-critical system needs someone responsible when it breaks at 7am. That's the single largest ongoing cost and it's a people cost, not an AWS line item.
  • Mobile app upkeep. OS updates, store-policy changes, expiring certs, forced updates. A phone app is never "done."
  • End-user support. 100+ non-technical field reps will have login issues, sync questions, lost-phone scenarios. Mobiwork has a support desk today; the replacement needs one too — even if it's lightweight.
  • Source-contract drift. Predian, Rippling, and the route engine change shape over time; integrations need upkeep (shared with other Redline automations).
BUILD vs. BUY — HONEST MATH Don't compare "$60k/yr saved" against "$0." Compare it against the build (one-time, lower than ever with AI-assisted dev) plus the permanent annual cost to own: AWS run + maintenance engineering + on-call + support + mobile-app upkeep. If owning it costs, say, $15-25k/yr all-in, replacing Mobiwork is a clear win that pays back the build quickly. If scope creep pushes it toward $50k+/yr, you've rebuilt the vendor and saved little. The feature audit in Phase 0 is what determines which world you're in.
RECOMMENDATION Worth doing — with discipline. Scope to the core slice (mobile status check-ins + rep route view + manager coverage board), build it shared with Route Optimization, run it alongside Mobiwork through a real shadow pilot, and cut over region by region only after it earns trust. Treat it as a system you'll own forever, not a project you'll finish. Do that, and Redline trades a $60k subscription for a materially smaller annual cost plus a CRM built exactly to its operation. Skip the discipline and you'll quietly rebuild Mobiwork — and pay to own it.