What we do

We diagnose operational problems, redesign how work gets done, build the technology where needed, and run the operations you shouldn't have to.

Explore our approach →

Industries

Domains where we've built enough experience to see the problem before it's fully explained.

All industries →

Work

Real problems, real solutions, told from the problem backward.

View all work →

Company

11 years of making businesses work better. Strategy first, technology always.

About Nimblechapps →

CareVisits.

Multi-tenant route optimisation that gives home-care coordinators back the hours they'd spend building rotas by hand.

CareVisits preview
Overview

CareVisits.ai is a multi-tenant SaaS platform that plans the most efficient daily visit routes for home-care carers. Nimblechapps built the platform around the client's optimisation algorithm — and hand-built their CareVisits.ai marketing website alongside it.

The challenge

Home-care agencies run on a scheduling problem that doesn't fit a spreadsheet. A coordinator has to place hundreds of visits a day across a workforce of carers — each with their own home location, a two-week availability pattern, booked leave, overtime limits and maximum weekly hours — while every client has fixed visit windows and preferences such as preferred carer gender, a minimum gap between visits, and an expectation of continuity of care from familiar faces. Get it wrong and carers spend their day in the car instead of with clients. Agencies were doing this by hand inside their existing care-management systems, with the data they needed locked in two different ones — One Touch for some, Access People Planner for others. CareVisits had the optimisation algorithm; what it lacked was a platform to get real agency data into it, run it safely for many agencies at once, and put the results in front of a coordinator.

Our approach
  • Isolate every agency's data properly. Care data is sensitive, so tenancy couldn't be a shared table filtered by org id — we went schema-per-organisation in PostgreSQL, with tenancy resolved from the caller's token and enforced at the gateway.
  • Meet agencies where their data already lives. Rather than force a migration, we built two ingest paths — manual/CSV import for One Touch agencies and a read-only sync from the Access People Planner API for the rest — so an agency adopts the platform without changing its system of record.
  • Wrap the algorithm, don't rebuild it. The solver is a compiled binary; we built the orchestration around it — pre-computing the travel-time matrix, assembling inputs, managing run lifecycle and history, and storing results the coordinator can inspect.
  • Make the coordinator's day the interface. One codebase, three role-specific portals each showing only what that role should see — and results on a Google map, not in a CSV.
What we built
  • An API gateway plus six FastAPI microservices (user, carer, client, settings, optimisation, distance matrix) over one PostgreSQL database.
  • A multi-tenant SaaS layer — schema-per-organisation provisioning in code, a platform schema for cross-tenant data, tenant context propagated as headers, and super-admin organisation management.
  • An Access People Planner integration — encrypted credential storage, validation, full and scoped syncs, terminology mapping, derivations (postcode to lat/lng, inverted availability) and idempotent bulk upsert with soft-delete of records dropped upstream.
  • Optimisation orchestration — travel-time matrix pre-computation via Google Maps, run configuration and execution against the solver, results storage and run history.
  • Three front-end portals from one Next.js codebase, with runtime portal detection and per-portal auth and routing.
  • Carer and client management — filterable, paginated grids with full CRUD, bulk CSV/Excel import with a column-mapping wizard, and availability, leave, overtime, visit windows and preferences.
  • Route visualisation — optimised routes drawn on Google Maps, plus a per-carer scheduled-route viewer.
  • Security and compliance groundwork — MFA, account lockout, password reset flows, a JWT rights model, field-level encryption (pgcrypto), full audit logging with a viewer, and rate limiting.
  • CI/CD on Azure DevOps — a push builds, migrates, deploys and health-checks both repositories on a self-hosted agent, with Sentry monitoring across both halves.
  • A bespoke, fully client-editable CareVisits.ai marketing website — hand-built from Figma as a custom WordPress theme with no page builder, its 19 flexible-content section layouts letting the client reorder and edit any section from the admin.
Team
Backend engineersFrontend engineersDevOps & infrastructureTechnical project managementEngineering lead
Tech stack
Python 3.11 · FastAPIGateway + six microservices
PostgreSQL 16SQLAlchemy 2 · Alembic · schema-per-tenant
pgcryptoField-level encryption
RedisRate limiting (fastapi-limiter)
Next.js 16 · React 19Three portals from one codebase
TypeScript · SCSS · Bootstrap 5
AG GridFilterable, paginated data grids
Google Maps PlatformDistance matrix + geocoding
NextAuth.js · PyJWT · bcryptAuth, MFA, JWT rights model
Compiled solverFronted by a thin FastAPI wrapper
Docker · Azure DevOpsCI/CD on self-hosted agents
SentryMonitoring across backend and frontend
WordPress · ACF Pro · ViteCustom theme for the marketing site
Results
7Microservices + gateway
3Role-specific portals
2Data sources per agency

CareVisits went from an optimisation algorithm without a home to a live multi-tenant platform: agencies connect their existing care-management system, sync their carers and clients, and get an optimised fortnight of visits back — with every organisation's data isolated in its own database schema and every deploy shipped through an automated pipeline. It was delivered across roughly eleven months of continuous delivery, with zero-touch staging deploys that build, migrate, deploy and health-check both halves on a single push.

Have something like this to build?

Tell us the problem. We will tell you the shortest path to solving it.

Book a discovery call