Back to projects
app·2026Completed

Mediaciones Steffen

Client: Renna, Steffen y Asociados

Stack

Next.jsTypeScriptPocketBaseVercel BlobBrevoDockerCaddy

Description

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.

The challenge

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.

The solution

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.

Results

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.