Estúdio Dupla Face
Sitio web y portal de clientes para un estudio de arquitectura

Contexto
Estúdio Dupla Face trabaja en viviendas, interiores y escenografía, y define su oficio a través de dos caras: la visible —luz, materiales, paisaje— y la que la sostiene: planos precisos y documentación que se puede seguir en la obra.
El desafío
Un proyecto de arquitectura se convierte en una pila de archivos dispersos: planos, dibujos técnicos, referencias, fotos de obra y decisiones acordadas por WhatsApp. El cliente no sabe dónde buscar y el estudio repite la misma información durante meses. El problema no era almacenar archivos, sino darles un lugar donde tuvieran sentido juntos.
La arquitectura
El plano se convirtió en la interfaz. El arquitecto coloca un marcador en cada habitación y añade tantos dibujos, imágenes y notas como necesite: el plano deja de ser una imagen y pasa a ser el índice del proyecto. A su alrededor, un portal donde el cliente habla con el estudio y descarga documentos, y un panel donde el estudio publica lo que quiere mostrar en el sitio.
Flujo de la arquitectura
Panel del estudio
- Marcadores sobre el plano
- Publicación en el sitio
Supabase
- PostgreSQL con Row Level Security
- Bucket privado de documentos
- Realtime
Portal de clientes
- Acceso solo tras la aprobación
- Mensajería en tiempo real
- Descargas con URL de 60 segundos
Decisiones de ingeniería
Marcadores que se mantienen en cualquier tamaño
Las coordenadas de cada marcador se guardan como porcentaje de la imagen, no en píxeles. El marcador permanece exactamente sobre la habitación correcta con cualquier ancho de pantalla y nivel de zoom: un pequeño detalle que determina si la funcionalidad resulta útil desde un móvil en la obra.
La protección reside en la base de datos
Todas las tablas tienen seguridad a nivel de fila (Row Level Security), y las políticas se apoyan en tres funciones: is_admin(), is_approved() y la propiedad de cada fila. Un cliente aprobado solo ve sus propios proyectos, conversaciones y documentos, aunque la interfaz se equivoque.
Documentos privados y enlaces con caducidad
Los documentos se guardan en un bucket privado con el identificador del cliente como primer segmento de la ruta. Las descargas pasan por una ruta que vuelve a comprobar la propiedad antes de firmar una URL válida durante 60 segundos. Un enlace filtrado deja de ser un problema un minuto después.
Un fallo puntual de la base de datos no derriba el sitio
Las llamadas a la base de datos tienen un tiempo límite. Si no responde, las lecturas del sitio público muestran un estado vacío y el error queda registrado: la página sigue disponible. Las escrituras, en cambio, muestran el error de forma explícita, porque en ese caso el usuario necesita saberlo.
Acceso mediante aprobación
Cada registro comienza pendiente y solo permite el acceso después de que un administrador lo apruebe: un portal de clientes nunca se abre por sí solo.