Saber elegir entre localStorage y una API real puede marcar la diferencia entre una aplicación rápida y práctica o una vulnerable y difícil de mantener. A continuación se explican las características, ventajas y limitaciones de cada enfoque, junto con las buenas prácticas que debes tener en cuenta antes de implementar cualquiera de las dos opciones en tus proyectos de frontend.
¿Qué es localStorage y por qué es tan rápido?
localStorage es una herramienta que ofrecen todos los navegadores modernos —Google Chrome, Firefox, Safari, entre otros— para guardar información directamente en el dispositivo del usuario [0:20]. A diferencia de una API Rest, no necesitas conexión a Internet, no dependes de que el backend responda rápido ni de bases de datos externas. La información se almacena tal cual en el navegador y carga prácticamente al instante [1:02].
Al depender del navegador, tienes control completo desde el frontend sobre cómo se guarda, se consulta y se estructura la información [3:08]. No sigues las reglas, nomenclaturas ni endpoints que define un equipo de backend. Esa independencia es útil, aunque implica que tú mismo diseñas las convenciones de almacenamiento.
Una práctica recomendable es mantener tu código desacoplado: que la capa que recibe los datos no distinga si provienen de localStorage o de una API Rest [2:48]. Así, si más adelante migras a un backend, el cambio será mínimo.
¿Se puede evitar la autenticación con localStorage?
Sí. Cuando guardas datos en localStorage, la información pertenece automáticamente al navegador de cada persona [3:55]. No necesitas saber si el usuario es "Fulanito" o "Juana María" porque cada navegador aísla sus propios datos. Esto permite implementar funcionalidades —como una lista de películas favoritas— sin flujos de autenticación [3:38].
Sin embargo, esa ventaja tiene un límite importante: no puedes recuperar la sesión entre dispositivos [4:38]. Si guardas películas favoritas en tu computador y luego abres la aplicación desde tu celular, la información no estará ahí. Cada dispositivo tiene su propio navegador y, por lo tanto, su propio localStorage independiente.
¿Qué datos nunca debes guardar en localStorage?
Este es uno de esos casos donde las buenas prácticas casi no dependen del contexto: jamás guardes información privada en localStorage [5:14]. Nada de tokens, API keys ni contraseñas. Todo lo que esté en el navegador es visible desde el inspector de elementos o herramientas más avanzadas.
Si necesitas almacenamiento temporal y algo más seguro, puedes usar sessionStorage [5:44], que borra la información en cuanto se cierra el navegador. Pero para datos realmente sensibles, la respuesta siempre es un backend con autenticación adecuada.
¿Cuándo es mejor usar una API real?
Una API Rest es más lenta porque depende de la conexión a Internet, la velocidad del backend y las bases de datos [6:20]. Además, ese rendimiento está fuera de tu control como desarrollador frontend. Mientras la petición tarda, tu responsabilidad es ofrecer una experiencia tolerable al usuario: loading states, skeletons o animaciones.
¿Por qué la autenticación exige un backend?
Cuando una funcionalidad requiere saber quién es el usuario, necesitas un flujo completo de autenticación. Protocolos como OAuth 2.0 [6:55] implican que el backend genera un token, el frontend lo envía en cada petición y se refresca periódicamente. Es un trabajo compartido entre ambos equipos.
A cambio, una API real te ofrece dos ventajas cruciales:
- Recuperación de sesión entre dispositivos. No importa si entras desde tu laptop o tu celular; el backend siempre devuelve tu información [7:17].
- Seguridad para datos privados. La información sensible vive en el servidor y solo llega al frontend después de validar la identidad del usuario [7:40].
¿Cómo aplicar localStorage en un proyecto real?
Un ejemplo práctico es la funcionalidad de películas favoritas usando la API de The Movie DB [8:12]. Aunque esa API permite guardar favoritos, requiere tanto application based authentication como user based authentication [8:30]. Para evitar esa complejidad, se puede usar localStorage: cada usuario marca sus películas favoritas y estas se guardan directamente en su navegador.
Esta decisión ilustra perfectamente el criterio de cuándo usar cada herramienta:
- La información no es privada.
- No se necesita compartir entre dispositivos.
- Se evita un flujo de autenticación completo.
Si en tu próximo proyecto te enfrentas a una decisión similar, pregúntate: ¿los datos son sensibles?, ¿el usuario necesita acceder desde varios dispositivos?, ¿puedo prescindir de autenticación? Las respuestas te indicarán si localStorage es suficiente o si necesitas una API real. Comparte en los comentarios cómo has resuelto este dilema en tus propias aplicaciones.