Frontend
Vue 3 (Composition API) Built 40+ reusable components and composables across the dashboards.Nuxt 4 The whole platform — pages, SSR, and server routes — runs on one Nuxt 4 app.TypeScript End-to-end types shared across the frontend, server routes, and data layer.Tailwind CSS v4 Token-based theming so each role’s dashboard has its own consistent look.Nuxt UI Accessible base components for forms, modals, and data tables.Vite Fast HMR in dev and optimized, code-split bundles in production.PWA (Workbox) Offline shell and install prompts via @vite-pwa/nuxt.Service Workers Cache the app shell and assets so dashboards load offline.IndexedDB Pending-queue for GPS fixes so no lesson route is lost on a crash.Geolocation API watchPosition powers live trip tracking in the browser runtime.Wake Lock API Keeps the screen awake while an instructor records a route.SSR / hybrid rendering Server-render marketing pages for SEO; hydrate dashboards behind auth.
Backend
Nitro server routes Every API — auth, payments, document ingest — is a Nitro server route.Node.js Server runtime for APIs, cron jobs, and the IMAP poller.REST APIs Designed the platform’s REST endpoints with role-based guards.Cron jobs Schedule the inbound-email poller and routine maintenance tasks.Webhooks Handle Resend Inbound and Moneris callbacks as server webhooks.Server middleware Adds security headers and CSRF before every request.PL/pgSQL functions & triggers Audit-ledger trigger mirrors every transaction into a tamper-evident table.Realtime / WebSockets Stream live trip playback and notifications to clients.PDF extraction (unpdf) Pull text from forwarded receipts and certificates for ingest.Email parsing (mailparser) Normalise inbound emails into one shape for the pipeline.Image processing (sharp) Resize and compress avatars and uploaded documents.Idempotency keys Stop double-clicks and retries from recording a payment twice.CSV export Admin data exports for reporting and bookkeeping.
Database
Postgres Primary datastore — schema, triggers, indexes, and JSONB columns.Supabase Managed Postgres + Auth + Storage + Realtime backing the platform.Row-Level Security Per-role RLS policies so the database itself enforces access.JWT custom claims A claims hook injects the user’s role into every token for RLS.SQL migrations 60+ versioned migrations run through the Supabase CLI workflow.Postgres triggers Immutable audit trail and derived-balance maintenance.Supabase Storage Holds avatars and student documents with scoped access.Supabase Realtime Publications and channels drive live trip and notification streams.GRANT / least-privilege Revoke anon/authenticated on admin-only tables beyond RLS.node-postgres (pg) Direct Postgres access for scripts and migration tooling.Schema design Modelled enrolments, ledgers, documents, and lesson data.MySQL Data management during my early work at 7th Pixel.
Auth & Security
Supabase Auth Sign-up, login, sessions, and password reset for all roles.CSP + nonce Per-request nonce CSP emitted by nuxt-security.strict-dynamic Only scripts the app loads can execute, even if markup is injected.CSRF Custom double-submit CSRF on every mutating request.Rate-limiting IP + session limits on public and auth endpoints.reCAPTCHA v3 Server-verified bot scoring on public forms.Role-based access Student / parent / instructor / admin enforced in three layers.HSTS / security headers HSTS preload, nosniff, framing, and Permissions-Policy locked down.Honeypot + dwell-time Catch bots that fill hidden fields or submit suspiciously fast.IDOR prevention Ownership checks so an ID can’t be guessed to reach another account.Account lifecycle / soft-delete Archived/deleted accounts are rejected even with a valid token.
Integrations
Moneris Checkout Hosted Checkout with server-to-server verify and an audit ledger.Resend Transactional email for verification, receipts, and notifications.Resend Inbound Webhook transport that feeds the document-ingest pipeline.IMAP (imapflow) Polls a mailbox to ingest forwarded registrations and receipts.Leaflet Live trip map with animated polyline playback over Realtime.OpenStreetMap / CARTO Basemap tiles for the trip map, with OSM as fallback.Interac e-Transfer Claim and reconciliation workflow for non-card payments.
Mobile / Native
Capacitor 6 Wraps the same Nuxt app as an Android GPS lesson tracker.Android Shipped the single codebase as an installable Android APK.Java Native glue for the Android foreground-service integration.Gradle Android build configuration and dependency management.Foreground service Keeps GPS tracking alive with the screen off in a moving car.Background geolocation @capacitor-community/background-geolocation for field recording.Offline-first sync Buffer fixes locally and replay them once the network returns.
DevOps / Quality
Git Version control for everything I ship.Supabase CLI Runs migrations and the local Postgres stack for safe changes.Docker Runs the local Supabase stack for sandboxed development.Playwright (E2E) Regression harness covering auth, role gating, and payments.ESLint Enforces consistent style and catches issues before commit.Sandbox / prod env switching One command flips between local sandbox and cloud, with guard rails.SEO (Schema.org · Sitemaps · OG) Structured data, sitemaps, and social cards for the public site.WebP optimization Compressed, responsive images for fast page loads.
Tooling & WordPress
Elementor Built the original Driving Headquarters WordPress site.Divi Designed Tamil Heritage Month end-to-end in the Divi builder.WP Rocket Caching + CDN for WordPress performance tuning.Wordfence Security hardening and login lockdown on WordPress sites.UpdraftPlus Scheduled backups and restores for WordPress clients.All-in-One SEO On-page SEO, sitemaps, and meta management in WordPress.