Skip to content
Live — Shipped and running in production2025

Tech lead · Hashlogics

Three readings
Client
The operating system for a Swiss coliving operator running eight communities — intake, booking, contracts, residency and checkout unified in one platform.
Recruiter
Led architecture and delivery. React and TypeScript on Vite over Supabase — Postgres with row-level security, around 45 edge functions and 125 migrations — integrated with Stripe, Skribble, Abacus, Wix, Calendly, VideoAsk, Jira and Google Sheets.
Engineer
The resident lifecycle is a forward-only state machine with server-validated transitions, advanced by a daily multi-pass cron for time-based events, with a dedicated webhook endpoint per integration.

What it does

  • Eight communities running on one system instead of scattered tools
  • Booking fees taken by Stripe, contracts signed through Skribble
  • Recurring invoicing and finance kept in step with Abacus
  • Intake automated across Wix, VideoAsk, Calendly, Jira and Google Sheets

Under the hood

  • Resident lifecycle modelled as a forward-only state machine — applicant, approved, pre-check-in, post-check-in, resident, former resident — validated server-side, so no client can skip a step
  • A daily multi-pass cron advances time-based events: move-in and move-out, room changes, contract extensions
  • One webhook endpoint per integration rather than a shared handler, so a failing partner never takes the others down
  • Passwordless magic-link auth, with roles kept in their own table and enforced by row-level security rather than the UI
  • 125 migrations and 31 test files keep a live platform changeable

Built with

  • React
  • TypeScript
  • Vite
  • Supabase
  • PostgreSQL
  • Row-Level Security
  • Edge Functions
  • Stripe
  • Skribble
  • Abacus (OData)
  • Redux Toolkit
  • React Query
  • Vitest
  • i18n

Signal path

architecture
webhookrpcfilesscheduleeventsIntakeWix · VideoAskReact SPATypeScriptEdge FunctionsSupabaseDaily cronmulti-passPostgresrow-level securityStoragecontractsStripe · SkribbleAbacus (OData)