Hoy quiero hablar del Model Release Form en halle.online/model-release — un sistema legal de consentimiento para fotografía que construí para mi propio portafolio y que ahora estoy convirtiendo en un producto independiente para fotógrafos alemanes y de la UE.
El problema
Quien fotografía personas en Alemania y quiere publicar las imágenes necesita el consentimiento documentado según el § 22 KunstUrhG (Ley alemana de derechos de autor sobre obras artísticas). El RGPD añade el Art. 7: el consentimiento debe ser libre, informado, inequívoco y revocable. Más la información estándar de protección de datos según el Art. 13.
Lo que la mayoría de los fotógrafos efectivamente usan:
- Formularios en papel — se pierden, son difíciles de buscar, el sujeto rara vez recibe una copia
- SaaS genéricos — solo en inglés, orientados al derecho estadounidense, no cubren las particularidades alemanas
- Plantillas PDF de internet — generalmente desactualizadas (pre-RGPD), a menudo legalmente flojas
- Documentos Word propios — sin trazabilidad de quién firmó qué cuándo
Necesitaba para mi portafolio algo que fuera legalmente sólido, firmable digitalmente, automáticamente documentado y disponible en tres idiomas (Halle tiene una escena estudiantil internacional — muchas de mis solicitudes de modelos llegan en inglés o español).
No existía nada que cubriera los cuatro requisitos. Así que lo construí.
Qué hace
Datos personales, contacto, fecha de nacimiento (para regulación de menores), contexto del shoot (fecha, lugar, tipo).
Seleccionables individualmente: portafolio, redes sociales, uso comercial, publicidad. Cada opción es opcional — el modelo decide.
Mundial, región DACH (DE/AT/CH), solo Alemania — escogibles progresivamente.
Indefinido, 10 años, 5 años, o revocable en cualquier momento — explícitamente fijado por modelo.
Para personas menores de 18, aparece automáticamente un segundo bloque para consentimiento de los responsables — sin él no hay consentimiento válido.
Dibujo con dedo/mouse sobre canvas O ingreso del nombre como texto plano como firma electrónica legalmente compliant (eIDAS Nivel 1).
Tras enviar, el modelo recibe inmediatamente una copia PDF por email (vía Brevo). Más una copia para mí. Sin login, sin preguntas de entrega.
Mencionado explícitamente en el PDF y en el texto de confirmación: "Este consentimiento puede ser revocado en cualquier momento." Más dirección de contacto para la revocación.
Anclas de compliance
El formulario no es “probablemente OK legalmente” — está explícitamente construido contra las normas alemanas y de la UE:
Nombre, fecha, firma, contexto. Cumple los requisitos de prueba según jurisprudencia del BGH (Tribunal Federal de Justicia, BGH I ZR 75/05).
Personas de la historia contemporánea, persona accesoria, asambleas — el formulario NO reclama estas excepciones del KUG; en su lugar obtiene consentimiento explícito (la vía más segura).
(a) libre: el modelo puede rechazar cada punto por separado. (b) informado: finalidad, destinatarios, plazo de conservación nombrados en el formulario. (c) inequívoco: confirmación activa por clic + firma, sin pre-check. (d) revocable: explícitamente declarado + contacto.
Responsable (Arnold Wender, Halle.Online), finalidad (portafolio + posiblemente comercial), base legal (Art. 6 (1) (a) RGPD), plazo de conservación, destinatarios (Brevo como encargado de tratamiento), derechos del interesado — todo listado, no solo enlazado.
Bajo 16 solo con consentimiento de responsables legales (específico-DE — más estricto que el default UE de 13). El formulario detecta la fecha de nacimiento y desbloquea el bloque correspondiente automáticamente.
Nivel 1 (firma electrónica simple) es suficiente para consentimiento KUG. El dibujo en canvas o el ingreso de texto plano lo cumplen.
Stack técnico
La implementación es intencionalmente minimalista — sin React, sin backend, todo en Astro con algunas islas vanilla-JS específicas:
Qué corre debajo del capó
- Astro 6 como framework
Todo el sitio halle.online corre en Astro 6.1 + TypeScript estricto. El formulario es un único archivo .astro (ModelReleaseForm.astro) más tres moléculas de formulario (FormFieldset, FormCheckbox, FormRadioGroup).
- i18n trilingüe
src/i18n/model-release.ts contiene todas las cadenas para DE/EN/ES. La ruta del slug no cambia (/model-release/), pero los campos, labels, botones y PDF de confirmación cambian según el locale del navegador.
- Vanilla JS para la firma
Elemento canvas + pointer events para dibujar, fallback a ingreso de texto plano. Sin biblioteca externa. ~80 líneas, incluyendo soporte táctil para tablet/teléfono.
- Brevo para envío de email
POST → /api/model-release recoge datos del formulario, genera el PDF (jspdf), lo envía como adjunto vía Brevo Transactional API al modelo + copia a mí. Idempotente: mismo email en menos de 60s no se envía dos veces.
- Página de éxito renderizada por separado
src/pages/model-release/erfolg.astro muestra confirmación + aviso de email entrante + notas de revocación tras envío. Sin navegación SPA — server-render limpio con URL única para historial del navegador.
- Logging RGPD mínimo
Ningún input se almacena más tiempo del necesario. Envío del PDF completo → los datos no se siguen guardando en el frontend. Los logs de Brevo (para tratamiento de datos) están documentados en el contrato AVV.
Esfuerzo y qué viene después
El formulario está vivo en halle.online desde el 27 de abril de 2026. Desde entonces lo he usado para tres sesiones de fotos. Cada modelo recibió el PDF en segundos, cada nota de revocación estuvo incluida, ningún edge case ha aparecido.
Mientras lo usaba, pensaba repetidamente: “Esto deberían necesitarlo todos los fotógrafos.”
Y especialmente uno: mi hermano Wolf Wender, fotógrafo y post-productor en Ciudad de México. Wolf es un chingón — su portfolio incluye la campaña de los Rolling Stones México 2016, trabajo con Wisin, y una larga lista de comerciales y editorial que no caben en una sola frase. Cada vez que él fotografía a alguien necesita exactamente lo mismo que yo: consentimiento documentado, en el idioma del modelo, con copia para él y para el modelo, sin papeleo perdido.
Su sitio actual corre en WordPress (construido hace años por Werbeagentur Wender Media). El plan: migrarlo a Astro en los próximos meses — y cuando eso suceda, le voy a regalar este componente integrado en su nuevo sitio. Hasta entonces, está en la lista. Pero saber que esta herramienta va a servir a alguien que viaja por el mundo entre shoots y se toma su oficio en serio valida la decisión de construirla bien desde el principio.
Roadmap a un sistema independiente
Otros fotógrafos pueden embeber el formulario vía `<script>` o iframe en su propia página WordPress / Shopify / Squarespace. Logo + colores personalizables. El PDF llega con su logo, su dirección, su dominio en el remitente.
Dominio independiente, login, dashboard con todos los releases firmados. Búsqueda por nombre del modelo, fecha, shoot. Exportación como bulk PDF o CSV.
Cada consentimiento tiene un audit trail inmutable (IP, timestamp, fingerprint del navegador). Defendible en juicio en caso de disputa.
Estudios con varios fotógrafos pueden gestionar releases centralmente — quién usó qué modelos cuándo y cómo, con sistema de permisos.
Por qué ninguna herramienta existente sirve
Investigué antes de construir. Lo que existe:
- EasyRelease — estadounidense, KUG no cubierto, sin alemán
- Releases.app — genérico, sin especificidades RGPD
- PhotoForm by Mylio — herramienta de workflow fotográfico con releases como feature secundario, sin enfoque legal alemán
- Form builders genéricos (Typeform, Tally, Jotform) — no construyen un formulario KUG-compliant sin trabajo manual considerable
Lo que no existe: un sistema legalmente compliant, alemán-céntrico, multilingüe, específico para fotógrafos.
Esa es exactamente la brecha que estoy llenando.
Cómo puedes usarlo
Mientras tanto: el formulario en halle.online está vivo, gratuito para modelos, y lo puedes estudiar como ejemplo funcional.
Enlaces: