framed.day

EntrarLog in

Política de privacidadPrivacy policy

En vigor desde el 19 de octubre de 2026In effect since 19 October 2026

Qué es estoWhat this is

framed.day es un diario privado que vive en framed.day y que hoy usa una sola persona, Marc Pérez. Todavía no hay ninguna app publicada ni forma de registrarse: existe una única cuenta, la del titular, y todo lo que se cuenta aquí describe cómo se tratan los datos de esa cuenta. El día que se abra a más gente, este documento cambiará antes.

framed.day is a private daily living at framed.day, used today by one person, Marc Pérez. There is no published app yet and no way to sign up: there is a single account, the owner's, and everything described here concerns how that account's data is handled. The day it opens up to more people, this document will change first.

Para dudas sobre esta política o sobre los datos: hello@framed.day.

Questions about this policy or about the data: hello@framed.day.

Datos de Google que usa la webGoogle user data this site uses

framed.day puede conectarse a Google Photos para enseñar fotos de la biblioteca del propio dueño dentro de la página. Esa conexión es opcional: si no se activa, la web no pide ni recibe absolutamente nada de Google.

framed.day can connect to Google Photos to show photos from the owner's own library inside the page. That connection is optional: if it is never switched on, the site neither requests nor receives anything at all from Google.

Cuando se activa, se piden dos permisos y nada más:

When it is switched on, exactly two permissions are requested and no others:

  • photosambient.mediaitems — para leer las fotos de los álbumes que el propio usuario elige dentro de la app de Google Photos, y solo esos. La web no puede ver el resto de la biblioteca, ni subir, ni borrar, ni modificar nada.
  • userinfo.email — solo para poder enseñar en pantalla qué cuenta de Google está conectada. Sin él no habría forma de saberlo de un vistazo, que es justo lo que piden las guías de Google. Como el marco puede estar en una sala que ve cualquiera, la dirección se enseña enmascarada (por ejemplo, o****@example.com), y el servidor la enmascara antes de mandarla a la página.
  • photosambient.mediaitems — to read the photos in the albums the user themself picks inside the Google Photos app, and only those. The site cannot see the rest of the library, and cannot upload, delete or modify anything.
  • userinfo.email — only so the screen can show which Google Account is connected. Without it there would be no way to tell at a glance, which is exactly what Google's own guidelines require. Because the frame may sit in a room anyone can see, the address is shown masked (for example, o****@example.com), and the server masks it before sending it to the page.

De cada foto se leen su identificador, sus dimensiones, su tipo de archivo y sus píxeles, que se sirven a la pantalla a través del propio dominio. Nada de eso se usa para otra cosa que dibujar la foto.

For each photo the site reads its identifier, its dimensions, its file type and its pixels, which are served to the screen through this same domain. None of that is used for anything other than drawing the photo.

Uso limitadoLimited Use

El uso y la transferencia por parte de framed.day de la información recibida de las API de Google se ajustará a la Política de Datos de Usuario de los Servicios de API de Google, incluidos los requisitos de Uso Limitado.

framed.day's use and transfer of information received from Google APIs to any other app will adhere to the Google API Services User Data Policy, including the Limited Use requirements.

En concreto, y sin excepciones:

Concretely, and without exceptions:

  • Los datos de Google se usan únicamente para la función visible que los pide: enseñar las fotos en la página y decir qué cuenta está conectada.
  • No se transfieren a nadie, salvo lo imprescindible para que la función ocurra o si la ley lo obliga.
  • No se usan para publicidad, ni para perfilar, ni para vender, ni se ceden a plataformas de anuncios, intermediarios de datos o servicios de scoring.
  • Ninguna persona lee esos datos, más allá del propio dueño de la cuenta mirando sus propias fotos en su propia pantalla. No hay equipo, no hay soporte, no hay revisión manual.
  • No se entrenan modelos de inteligencia artificial con ellos.
  • Google user data is used only for the visible feature that asks for it: showing the photos on the page and naming the connected account.
  • It is never transferred to anyone, except as strictly needed for that feature to work or where the law requires it.
  • It is never used for advertising, profiling or sale, and never passed to ad platforms, data brokers or scoring services.
  • No human reads that data, beyond the account owner looking at their own photos on their own screen. There is no team, no support desk, no manual review.
  • It is never used to develop, improve or train generalised AI models.

Dónde se guarda, y cuántoWhere it is kept, and for how long

Esta web no tiene base de datos de usuarios. Lo que hace falta para mantener la conexión con Google vive en cookies del propio dispositivo, no en un servidor:

This site has no user database. What is needed to keep the Google connection alive lives in cookies on the device itself, not on a server:

  • El token de refresco de Google, cifrado con AES-256-GCM con una clave que solo tiene el servidor, en una cookie HttpOnly y Secure que ni el JavaScript de la página puede leer. Por eso la conexión es por dispositivo: conectar en el iPad no conecta el Mac.
  • El identificador del dispositivo que Google crea para este aparato, y su nombre.
  • Google's refresh token, encrypted with AES-256-GCM under a key only the server holds, in an HttpOnly, Secure cookie that not even the page's own JavaScript can read. That is why the connection is per device: connecting on the iPad does not connect the Mac.
  • The device identifier Google creates for this appliance, and its name.

El token de acceso, que dura una hora, no se guarda en ningún sitio: se pide de nuevo cada vez. Los enlaces temporales a las fotos no se escriben nunca en disco: la lista de fotos, con sus enlaces, se guarda solo en la memoria del servidor y como mucho 55 minutos, porque los enlaces caducan solos a los 60. Así lo recomienda Google, para no pedir la lista entera en cada foto. Para pedir cada foto, la página recibe una referencia cifrada (AES-256-GCM) que lleva dentro el enlace: la página no puede leerlo ni cambiarlo, la referencia solo vale para ese dispositivo y caduca a los 55 minutos, y solo se guarda en la memoria de la página mientras está abierta. Los píxeles de una foto no se guardan en el dispositivo: se piden a Google cada vez que se enseñan, se sirven con Cache-Control: no-store y solo viven en la memoria de la página mientras están en pantalla. No hay descarga para verlas sin conexión, y cualquier copia que quedara de versiones anteriores de la app se borra al abrirla.

The access token, which lasts one hour, is stored nowhere: it is requested afresh each time. The temporary photo links are never written to disk: the photo list, links included, is kept only in the server's memory and for at most 55 minutes, since the links expire on their own after 60. Google recommends this so the whole list is not requested again for every photo. To request each photo, the page receives an encrypted reference (AES-256-GCM) that carries the link inside it: the page cannot read or change it, the reference only works for that device and expires after 55 minutes, and it is kept only in the page's memory while the page is open. A photo's pixels are not stored on the device: they are fetched from Google each time they are shown, served with Cache-Control: no-store, and live only in the page's memory while on screen. There is no download for offline viewing, and any copy left over from earlier versions of the app is deleted when it opens.

Ninguna foto, ningún nombre de álbum y ningún correo se escriben en el repositorio del proyecto ni en disco alguno del servidor.

No photo, no album name and no email address is ever written to the project's repository or to any disk on the server.

Cómo se desconecta y se borraHow to disconnect and delete

Dentro de la página, el botón Desconectar hace tres cosas a la vez: borra el dispositivo de la biblioteca de Google Fotos del usuario, le pide a Google que invalide el permiso —la conexión deja de existir también del lado de Google— y borra las cookies del dispositivo. Después de eso no queda nada.

Inside the page, the Disconnect button does three things at once: it removes the device from the user's Google Photos library, it asks Google to revoke the grant — so the connection stops existing on Google's side too — and it deletes the device's cookies. Nothing is left afterwards.

El permiso se puede retirar igualmente desde la página de permisos de la cuenta de Google, sin pasar por aquí. Y los álbumes que se comparten con la web se eligen y se quitan desde la propia app de Google Photos, no desde este sitio.

The grant can equally be withdrawn from the Google Account permissions page, without coming here at all. And the albums shared with the site are chosen and unchosen inside the Google Photos app itself, not here.

El resto de los datosThe rest of the data

Además de lo de Google, la web maneja lo justo para funcionar:

Beyond Google, the site handles only what it takes to work:

  • Una cookie de sesión firmada, de 7 días, que solo dice que alguien acertó la contraseña. No contiene la contraseña.
  • Lo que se marca o se escribe desde el iPad viaja a una cola en una rama privada del repositorio del proyecto, en GitHub, hasta que el ordenador de casa la vacía a la mañana siguiente.
  • Si se conecta Spotify, la web pregunta qué está sonando para dibujar la barra de abajo. Su token de refresco se guarda en esa misma rama privada.
  • El sitio está alojado en Vercel, que registra las peticiones como cualquier servidor web. Las tipografías se piden a Google Fonts, que ve la dirección IP de quien carga la página.
  • A signed session cookie, valid 7 days, which only records that someone got the password right. It does not contain the password.
  • What gets ticked or typed on the iPad travels to a queue in a private branch of the project's repository on GitHub, until the home computer empties it the next morning.
  • If Spotify is connected, the site asks what is playing in order to draw the bar at the bottom. Its refresh token is kept in that same private branch.
  • The site is hosted on Vercel, which logs requests as any web server does. The typefaces are fetched from Google Fonts, which sees the IP address of whoever loads the page.

No hay analítica, ni píxeles de seguimiento, ni cookies de terceros, ni publicidad. Nada de lo que pasa por aquí se vende ni se comparte con nadie.

There is no analytics, no tracking pixel, no third-party cookie and no advertising. Nothing that passes through here is sold or shared with anyone.

SeguridadSecurity

Todo el tráfico va por HTTPS. Salvo la portada y estos dos documentos, cada ruta del dominio —incluidos los datos del día y las fotos— exige la sesión iniciada. Las credenciales de terceros viajan en cookies HttpOnly y Secure, o en un almacén privado al que solo llega el servidor. Aun así, esto es un proyecto personal, no un servicio con garantías: se cuida como se cuida algo propio.

All traffic runs over HTTPS. Apart from the front page and these two documents, every route on the domain — the day's data and the photos included — requires an active session. Third-party credentials travel in HttpOnly, Secure cookies, or sit in a private store only the server can reach. Even so, this is a personal project, not a service with guarantees: it is looked after the way one looks after one's own things.

MenoresChildren

El sitio no está dirigido a menores de 13 años y no recoge datos de nadie más que de su único usuario.

The site is not directed at children under 13 and collects no data from anyone other than its single user.

CambiosChanges

Si cambia lo que se hace con los datos, cambia esta página y con ella la fecha de arriba. No hay lista de correo a la que avisar: hay un lector, y es quien la escribe.

If what is done with the data changes, this page changes with it, and so does the date at the top. There is no mailing list to notify: there is one reader, and he is the one writing it.