Saltar al contingut principal

Les dues setmanes abans d'obrir les portes

Producte i plataforma

A finals de febrer teníem una beta funcionant bé amb vuit restaurants i una decisió presa: el 19 de març obríem al públic. Això ens deixava unes dues setmanes i mitja. Se sentien curtes. I, efectivament, ho van ser.

No volíem llançar a la gran, amb plats i timbals. Volíem llançar tranquils: que qualsevol hostaler pogués entrar, registrar-se, pagar i començar a treballar sense sorpreses. Sona modest. Implica una llista de tasques llarga.

El que vam tancar en aquelles dues setmanes

Aquestes són les coses grans que van entrar a la recta final:

  • Smoke tests HTTP automatitzats. Un script (npm run smoke:http) que comprova que les rutes crítiques tornen el codi correcte després de cada desplegament. Res sofisticat, però suficient per detectar caigudes òbvies.
  • Cobertura E2E mínima. Tres fluxos crítics verificats manualment abans de cada release: registre complet, creació de reserva pública, edició i publicació de carta.
  • Pàgina legal completa. Termes de servei, política de privadesa, avís de galetes. Vam treballar amb un advocat especialitzat en SaaS per no copiar plantilles dubtoses. Passar-ho per alt no era opció.
  • Billing amb Stripe portal. No vam reinventar la roda: el portal de client de Stripe gestiona subscripcions, mètodes de pagament, factures. Nosaltres ens vam limitar a integrar checkout i webhooks.
  • Hardening de seguretat. Auditoria de polítiques RLS, revisió de rols de servei, rotació de secrets, alertes en errors 500. L'avorrit però imprescindible.

El dia que gairebé trenquem la base de dades

Hi va haver un ensurt, és clar. A quatre dies del llançament, una migració va tocar una taula gran i va bloquejar les consultes durant 90 segons. En producció real això és una eternitat. La beta ho va notar però ningú no estava fent res crític en aquell moment. Decisió immediata: a partir d'aquí, cap migració s'aplica sense un pla de rollback escrit i revisat per dues persones.

Aquesta norma continua vigent avui.

El que vam deixar fora expressament

La temptació d'afegir "una funcionalitat més" abans de llançar és enorme. Vam haver de dir que no a unes quantes coses:

  • Mode fosc complet. Els estils estaven a punt però no provats a fons.
  • Integració amb TheFork. Sabíem que la faríem, però no el dia 1.
  • App nativa mòbil. El web responsive cobria el 95% dels casos.
  • Màrqueting automatitzat per SMS. Correu primer, SMS després.

Tot això va acabar sortint les setmanes següents, com pots veure a les entrades posteriors d'aquest blog.

El dia anterior

La nit del 18 de març vam activar els pagaments en producció, vam fer un últim desplegament i vam deixar córrer els smoke tests. Zero errors. Vam apagar el portàtil amb aquella sensació rara que has arribat a la línia de sortida després d'haver corregut mitja marató. El llançament real, amb les seves pròpies històries, l'explica la primera entrada d'aquest blog: "Hola món".

A partir d'aquell dia, RestaPro va deixar de ser un projecte i va començar a ser una eina feta servir per gent real cada nit.

ESENCA