Skip to content
← Back to work
SoulCare

More time for the human side of care.

SoulCare brings scheduling, care records, and team coordination into one connected platform. Built around the people providing care, receiving it, and keeping everything running behind the scenes.

Type
Our own product
Sector
Home & social care
Scope
Design + full-stack build
Platforms
Web · iOS · Android
SoulCare sign-in screen

Why we built it

A change to a care visit affects more than a schedule. Coordinators need to arrange cover, carers need an updated route, and families need to know what’s happening.

We designed SoulCare around that shared picture. Carers can check their next visit on the move, coordinators can manage the roster, and families can follow the care of someone close to them. Each provider’s data is kept in its own database, with access and audit tools built into the platform.

A shared picture of care.

Admin dashboard

The command centre: clients, team, roster, payroll, audit and config. Built in React.

Carer app

The person on the visit: today's rounds, clock-in/out with GPS, task checklists, travel times.

Client app

For the person receiving care: their schedule and their carers, in plain language.

Family app

Relatives stay in the loop with read-only access to visits, requests and issues.

Serverless, and isolated by tenant.

Every API route is its own Go Lambda behind API Gateway. Auth is Cognito; the tenant id rides in the JWT, and each tenant's care data lives in its own database. The web apps and file uploads are served from S3 behind CloudFront.

Clients
Admin webCarer appClient appFamily app
Edge
CloudFront CDNS3 · apps & uploadsGoogle Maps · Distance Matrix
API
API GatewayGo Lambdas (per route)Cognito · JWT tenant claim
Data
Admin DBTenant DB · isolatedTenant DB · isolated…per tenant

Engineering highlights

  • Physical tenant isolation

    Each care provider gets its own database, provisioned on demand. Tenant identity travels in the auth token and determines which database a request can access.

  • Recurring schedules that materialise

    A dateless weekly template expands into a rolling 28-day window of concrete visits, with snapshot semantics so edits never rewrite the past.

  • One roster, three lenses

    The same visit data drives the client view, the carer view and the master roster. Change it once and it's right everywhere.

  • Live tracking, real travel times

    Carers clock in and out with GPS. The Google Distance Matrix turns each hop between visits into real drive time and distance, so the roster reflects the road, not a straight line.

  • Care records with accountability

    Retention controls, legal-basis tracking, subject-rights workflows, and audit trails support the handling of sensitive care records.

SoulCare weekly master roster
SoulCare client profile

The thinking behind the build

The complexity belongs in the system, not in someone’s working day. SoulCare brings together recurring schedules, location-aware visits, and isolated provider data in interfaces designed around each person’s role.

Stack

  • Go
  • AWS Lambda
  • API Gateway
  • Cognito
  • S3 + CloudFront
  • PostgreSQL (Neon)
  • React
  • React Native / Expo
  • Google Maps API
  • Terraform