app · 2026

Mediaciones Steffen

Institutional landing page and online appointment system for a mediation law firm, with bank-transfer payment, receipt upload, and a custom admin panel.

Mediaciones Steffen
steffenmediaciones.com.ar ↗
  • Next.js
  • TypeScript
  • PocketBase
  • Vercel Blob
  • Brevo
  • Docker
  • Caddy
The problem

Appointments were arranged by hand and there was no way to charge up front or track who had paid. The firm also did not want to manage GitHub or Vercel accounts: they asked for a panel and nothing else. Pricing depends on the type of procedure and the number of parties, so costs could not be hardcoded.

Decisions

A three-step appointment wizard with bank-transfer payment and receipt upload to Vercel Blob, plus a panel where the firm manages appointments, costs, and availability without touching code. PocketBase backend on a VPS with Caddy in Docker. Panel authorization is role-based over the users collection, with create, update, and delete rules restricted to superuser and versioned in an idempotent script. Transactional email signed from the firm's own domain (DKIM and DMARC verified) with reply-to pointing at the firm.

Result

Live on its own domain, with the firm operating the panel under its own account and the service account kept separate. Appointments, receipts, and notifications working end to end, with the backend access configuration versioned so it can be reapplied without guesswork.

Numbers
3pieces: landing, booking, admin
Links
What it is

The firm needed to stop coordinating mediations over phone and WhatsApp. The result is a self-service flow end to end, with the firm as the only operator of the panel.

My role

End-to-end development and delivery, infrastructure included: self-hosted backend on a VPS, domain, authenticated transactional email, and handover of admin access to the firm.