Vertical SaaSMobile + WebCompliance

Vehicle Daily Check — daily inspections for drivers and fleets

Guided checklist, photo evidence, PDF proof, and a Compliance workspace for operators.

A product of AEK Tech UK Ltd — designed, built, and operated by the same engineering practice we bring to client platforms.

Status
Live
Region
United Kingdom
Timeline
Live July 2026
Team
Built and operated by AEK Tech
  • Django 5
  • Vue 3
  • Expo
  • PostgreSQL
  • Stripe
  • Cloudflare R2
  • Astro
  • Vultr
  • Tailwind CSS
  • TypeScript

Operators and fleet managers expect a daily vehicle condition check before a vehicle goes on the road. In practice, that often means paper forms that are easy to lose, skip, or fill inconsistently — and hard to produce when someone asks for a specific date.

Vehicle Daily Check is AEK Tech's own SaaS product: a twelve-section checklist aligned to council-style requirements, typed photo evidence, an immutable audit trail for every submitted day, and a live Compliance workspace for fleet operators. Drivers get a guided phone check and on-demand PDF proof; operators invite drivers, see who checked today, and browse inspections without chasing WhatsApp photos.

What users are saying

“I used to keep paper checklists in the glovebox and could never find the right week when licensing asked. Now I do the whole thing on my phone in about ten minutes — photos included. Last time they wanted a specific date I just exported the PDF. No panic, no digging through folders.”

David

Private hire driver · West Midlands

“I'll be honest — I used to skip days when I was rushed. Paper just sat in the car. This takes me maybe eight minutes before I head out. The streak thing sounds daft but it actually got me into a habit.”

Sarah

Private hire driver

The problem

Before Vehicle Daily Check, drivers and fleet operators faced predictable friction with paper-based compliance and ad-hoc photo chasing.

AreaProblemImpact
Daily checksPaper forms or skipped checksLicensing risk if checks are missing or inconsistent
Record keepingPaper easy to lose or fill inconsistentlyNo reliable history when an officer asks for a specific date
Audit trailNo centralised record of who checked, when, or what was foundInspectors cannot verify compliance; drivers and operators cannot prove diligence
EvidencePhotos sit in camera rolls, unlinked to the checklistHard to produce coherent proof under time pressure
Inspection visitsSearching paper for one date is slow and stressfulGaps in the daily record surface during audits and compliance visits
Safety cultureNo structured daily messaging for licensed driversMissed professional standards and weak inspection habits
Existing fleet toolsGeneric operator-focused apps at higher price pointsSolo drivers, small operators and councils lack a simple, affordable fit

Product screens

Demo / product UI from the live driver app and fleet Compliance workspace (seeded demo data, no real customer PII).

Tap or click any screen to enlarge. Pinch or use + / − to zoom, then swipe to browse.

What we built

Drivers (web PWA + Expo mobile)

  • Daily inspection wizard — Wolverhampton 12-section checklist with Correct / Faulty flow
  • Photo evidence — up to three photos per check, stored with the record
  • Timestamped submission — records locked and immutable after submit (no driver signature or declaration field yet)
  • Draft resume with grace period; missed-check handling for expired drafts
  • Dashboard with today's status, safety reminder, streak tracking, and fleet-covered badge when invited
  • Inspection history, on-demand PDF export, and Driver Safety Centre
  • 7-day trial, Stripe personal plans from £4.99/month, trial countdown banners

Fleet operators — Compliance workspace (live)

  • Create a fleet, invite drivers by email, and see who checked today
  • Compliance dashboard — org KPIs, done / missing / faults, drivers, vehicles, seats
  • Drivers list with range filters, search, and per-driver completion
  • Browse submitted inspections and download PDF proof
  • Fleet lifecycle — invites, revoke, remove/leave, admin transfer, close fleet, pause/restore
  • Fleet trial + per-seat Stripe billing (e.g. £4.99 / seat / month) with Billing Portal

Web PWA only (not yet on Expo)

  • Stats screen — current streak, monthly totals, faults logged, and 14-day completion heatmap

Compliance & reporting

  • Timestamped PDF with driver details, vehicle registration, mileage, and every section result
  • Immutable audit trail for every submitted day — records locked after submission
  • Council-layout checklist template (Wolverhampton first) — licensing proof via PDF today, not a council portal

Marketing & acquisition

  • Live marketing site — drivers and fleet operators (vehicledailycheck.com)
  • Fleet marketing page and self-serve fleet register
  • Driver pricing with 7-day full-access trial and subscription plans
  • Book-a-demo flow where operators want a walkthrough

Billing & infrastructure

  • Driver registration starts 7-day full-access trial — no credit card required; one trial per driver
  • Stripe Checkout for personal plans — card saved, first charge deferred until trial ends
  • Fleet seat capacity + Stripe Billing Portal for operator subscriptions
  • Computed subscription access — active, expired, or inactive from period end; read-only history when lapsed
  • Progressive trial reminders on web and mobile
  • API-first monorepo — one Django API for web, mobile, fleet, and marketing
  • Cloudflare R2 for private evidence photos with presigned URLs

Internal admin (limited)

  • /admin/safety aggregate safety stats — not a dedicated council inspector portal

Roadmap (next phases)

  • Dedicated council inspector portal as a separate product surface
  • Expo stats screen parity with web PWA
  • Driver signature or declaration attestation at submission
  • Native iOS and Android app store releases
  • Flexible inspection templates for different licensing requirements

Technology choices and outcomes

ComponentTechnologyWhy it matters
Marketing siteAstro 7 + Tailwind CSS 4Driver and fleet acquisition site with pricing, demo booking, and product screenshots.
Web driver appVue 3.5 + Vite 8 + PWAInstallable browser app for drivers — no app-store friction required to start.
Fleet Compliance workspaceVue 3 + same Django APIOperator KPIs, drivers, vehicles, inspection browse, invites, and PDF access.
Mobile appExpo SDK 54 + React NativeCross-platform iOS and Android delivery from one codebase (app stores coming soon).
Backend / APIDjango 5 + DRFOne API for inspections, fleet lifecycle, billing, evidence, PDFs, and mobile clients.
DatabasePostgreSQLRelational audit records tied to authenticated accounts and fleet membership.
HostingVultr VPS, nginx, gunicornSimple production deployment with predictable operating cost.
Evidence storageCloudflare R2Private object storage for evidence photos with time-limited access.
BillingStripe Checkout + Billing PortalPersonal plans and fleet per-seat billing from £4.99 — trials, portal, seat capacity.
PDF exportxhtml2pdfTimestamped inspection records generated on demand for drivers, operators, or licensing asks.

Security model

The product is designed for authenticated access, private evidence storage, and audit integrity. We avoid broad claims like "fully encrypted" or certified security until those controls are independently verified.

  • Production traffic uses HTTPS/TLS; secure cookies, SSL redirect, and HSTS are enabled when deployed with production settings.
  • Web sessions use HttpOnly JWT cookies with CSRF protection; mobile clients use bearer tokens stored in secure device storage.
  • Evidence photos are designed for private object storage with authenticated, time-limited access rather than public file URLs.
  • Submitted inspection records are immutable and tied to authenticated driver accounts.
  • PDFs are generated on demand and access-controlled at download time. Once a driver downloads a PDF, it behaves like a normal shareable document.
  • Passwords are hashed by Django, and login abuse protection locks accounts after repeated failed attempts.

Hardest technical challenges

The hard part was not drawing screens. It was keeping dual clients, immutable compliance records, private evidence, and live Stripe access states aligned under real-world failure modes.

01

Dual-client authentication

The same API serves a Vue PWA (HttpOnly JWT cookies + CSRF) and an Expo app (Bearer tokens). Login, refresh, and logout shapes differ per client — solved with shared JWT utilities and client detection.

02

PDF generation with private R2 evidence

Inspector PDFs must embed photos from a private R2 bucket. Server-side HTML → xhtml2pdf resolves local paths or signed URLs before render — avoiding heavy GTK dependencies on dev machines.

03

Draft grace period and compliance integrity

Drivers may not finish a check same-day. Configurable grace windows, incomplete-draft banners, and auto-abandon for expired drafts — while keeping submitted records immutable.

04

Stripe checkout under real-world failure modes

Users may close the browser after checkout, or webhooks arrive late. Completion retries, status sync, and webhook backup keep subscription access aligned with trial end and renewal periods.

05

Trial access without a separate billing tier

Trial is modelled as subscription_source, not a plan — access_state is computed from current_period_end, not stored flags. trial_used prevents restart, SubscriptionEvent logs audit snapshots, and registration starts the trial in the same database transaction as user creation.

06

Stripe subscription lifecycle

Model A trial behaviour, webhooks, Billing Portal cancellation, auto-renewal state, and payment failure grace all had to map cleanly into one app-facing access model.

Results

Qualitative outcomes — no invented user or revenue metrics.

MetricBeforeAfter
Daily check recordPaper forms or nothingStructured 12-section digital checklist
Audit trailNone / scattered paperTimestamped, immutable submitted records
Photo evidenceCamera roll, unlinkedTyped photos stored with each inspection
Proof on demandManual search through paperTimestamped PDF for any submitted date
Fleet visibilityWhatsApp photos / paper chaseOperator Compliance view of daily checks
Completion trackingNo visibilityStreak, monthly stats, and 14-day heatmap on web PWA
Mobile accessPaper onlyInstallable Vue PWA + Expo mobile app
Check durationVariable, often skippedDesigned to be quick before shift (~5–10 minutes with photos)

Where the platform is now

Vehicle Daily Check is live: marketing at vehicledailycheck.com, driver web PWA and fleet Compliance workspace in production, Stripe billing on AEK Tech UK Ltd (personal plans and per-seat fleet billing from £4.99). Expo mobile shares the same API for core inspection flows; native store releases are still coming. Wolverhampton is the first checklist template. Drivers start a 7-day trial with no card; fleets can register, invite drivers by email, and manage seats through Stripe. Licensing proof today is timestamped PDF export — a dedicated council inspector portal is still on the roadmap. Product support: support@vehicledailycheck.com · AEK: hello@aektech.co.uk

Vehicle Daily Check is a product of AEK Tech UK Ltd. Contact hello@aektech.co.uk · Product support support@vehicledailycheck.com

Need software that ships and stays owned?

Vehicle Daily Check proves we can build and operate real SaaS — drivers, fleets, billing, evidence. Same discipline for client platforms. Book a call or email hello@aektech.co.uk.