Copiar enlace

Desarrollar un proyecto web real lleva mucho más que solo aprender un lenguaje de programación de Backend, un lenguaje de Frontend y una base de datos.

Tipicamente la mayoria de aplicaciones de producción llevan autenticación, notificaciones, correos transaccionales, subida de archivos y una que otra caracteristica en tiempo real (Chats), esto sin considerar sistemas de medicion como analiticas, logging (Registro de actividades), seguridad, o un despliegue que permita a tu aplicacion ser escalable.

Si se es una empresa conformada por varios desarrolladores es normal desarrollar sus propias herramientas o servicios, sin embargo si se es un desarrollador individual o un equipo pequeño de desarrollo (Startup), y se quiere llegar a producir una aplicación real con el mismo nivel o grado de calidad; hacerlo desde cero llevará más tiempo.

Así que hay una opción en la web por parte de Servicios de la nube que estan catalogados como Backend as a Service (BaaS)

Esto son servicios que practicamente te dan un backend ya creado con todo lo que te he mencionado antes, e incluso mucho más, para que puedas conectarte a traves de SDKs o bibliotecas en distintos lenguajes de programación (Javascript, Dart, C++, C#) a tus aplicaciones cliente (Moviles, Web, Desktop, CLI) a cambio de un pago mensual.

Uno de los servicios BaaS más populares durante muchos años ha sido Firebase, un servicio de Google, que tipicamente desarrolladores de apps moviles, web y de videojuegos lo usan, ya que permite:

  • Autenticar usuarios (OAuth con Google, Github, Facebook, Outlook)
  • Bases de datos NoSQL (Firestore, Realtime Database)
  • Subida de Archivo (FireStorage)
  • Funciones Serverless (Cloud Functions)
  • Hosting Web (FireStore)
  • Permite Monitorear tus aplicaciones (Crashlytics, Performance Monitoring)

E incluso permite incluir funcionalidades de Machine learning, por nombrar sus servicios más notorios. Y como Firebase esta desarrollado encima de la nube de Google (Google Cloud Platform), este tambien permite integrase con otros servicios de la empresa (DialogFlow, Google Sheets, Google Ads, etc ) ademas de ofrecer escalado automatico (Añadir más CPU, RAM, Bandwith, Storage, etc)

Alternativas a Firebase

Sin embaro esta no es la unica opcion actualmente asi que en este articulo te daré una lista de otras alternativas a Firebase, y te mencionaré algunas ventajas y desventajas de estos:

empecemos con Supabase.

Supabase

A diferencia de Firebase Supabase tiene muchos modulos que son open Source incluso el mismo código principal del proyecto esta en Github.

Aunque tambien ofrece un servicio en el que te puedes registrar y tener toda tu backend creado en minutos, ofreciendote caracteristicas como:

  • Base de datos con PostgreSQL, a diferencia de Firebase no usa una base de datos NoSQL, sino usa Postgres desplegado automaticamente y listo para producción. Ademas que te permite crear tablas y relacionarlas desde su interfaz grafica, y como es una base de datos más desarrollada, ya tiene incluida funcionalidades como busquedas de texto incluidas.
  • Autenticación, Similar a Firbera permite autenticar usuarios ya sea con correo, OAuth (Facebook, Twitter, Github, Google), numero de telefono o Magic Links
  • Storage, permite almacenar archivos como imagenes, video y demas
  • Edge Functions, el cual es su servicio serverless que te permite subir porciones de código de Javascript/Typescript que se ejecutan en la nube. (Este funciona con Deno)

Aunque a diferencia de Firebase no ofrece Hosting web, asi que tendras que desplegar tu proyecto frontend en algun otro servicio como Heroku, Vercel, Netlify, entre otros.

Tambien ofrece unas bibliotecas cliente o SDKs para conectarte al backend lo que te evita de interactuar directamente con su REST API o GraphQL, ya tambien crea una API de GraphQL de forma automatica.

Tiene bibliotecas para Javascript, lo que te permitiria trabajar con frameworks como React, Angular, Vue, Svelte, Solid, Next, entre otros, ademas de bibliotecas para Dart, para que puedas usarlo en Flutter.

Aunque tambien podrias interactuar directamente con la API sino tu lenguaje no esta soportado, porque no hay bibliotecas para Java, Kotlin o Swift, asi que si vas a desarrollar apps moviles nativas y quieres usar este servicio tendras que hacer tus propias peticiones HTTP guiandote de su documentacion.

Adicionalmente tambien es posible desplegarlo en tu propio servidor con Docker, aunque lleva mucho más trabajao configurar otros servicios como API Gateways, realtime, y demas por ti mismo.

AWS Amplify

Amplify es la respuesta de Amazon Web Services a Google. Amplify permite hacer la mayoria de funcionalidades principales de Firebase solo que usando servicios de AWS como:

  • AWS Cognito, para ofrecer autenticación, que en la pracica es un servicio de autenticación más avanzada (User Groups, Roles, permission) que Firebase Authentication
  • Dynamodb, para ofrecer una base de datos NoSQL
  • AppSync, para poder crear una API de GraphQL
  • S3, para subir archivos y desplegar sitios web
  • Lambda, para crear funciones serverless y REST API

Tambien tiene funcionalidades en tiempo real, analiticas. y posee ofrece la posibilidade integrare con un motor de busquedas de Amazon llamado Open Search que es un fork Open Source de Elastic Search para.

Aunque no es necesario configurar todo esto manualmente, ya que posee un CLI que permite generar código y configura los servicios a traves de archivos de configuraciones. Aunque algo que en la practica si notaras a diferencia de Firebase es que generar estas configuraciones toma su tiempo como 5 minutos aproxidamente.

Otras caracteritica que tambien ofrece son componentes UI similaress a bibliotecas como Material UI, llamada Amplify UI que de momento solo se integran con React, pero tambien estan trabajando en integrar biblitecas como Vue, Angular, React Native y Flutter.

E incluso tambien ofrece una herramienta No Code llamada Amplify Studio, que permite crear esquema de datos y relacionarlos usando interfaces graficas que generarán el código por ti.

Mongodb Realm

Mongodb es conocido por ser una base de datos NoSQL bastante facil de empezar a utilizar, si has llegado a crear proyectos con esta base de datos quizas has escuchado de Mongodb Atlas, que es su sevicio en la nube, para desplegarlo. Bueno Mongodb Realm, es un servicio que se integra con Mongodb Atlas para permitirte crear todo tu backend usando funciones serverless en Javascript y ofreciendote bibliotecas cliente para comunicarse con aplicaciones moviles y web.

Este servicio es un poco más limitado que los anteriores al ofrecerte solo unos cuantos provedores (Email, Facebook, Twitter, Google )

Pero si permite crear REST APIs, y GraphQL APIS de forma automatica basada en tu base de datos.

Y ofrece bibliotecas cliente en distintos lenguajes de programacion.

Aunque este servicio lleva conocer como funciona Mongodb, asi que es más para desarrolladores que ya han trabajado con la base de datos y estan comodos utilizando su forma de modelar datos.

Otros Servicios

Estos no son los unicos otros servicios o proyectos BaaS, entre otras opciones tambien tenemos:

  • nHost, un servicio que esta basado en Hasura, el cual es otro servicio que permite generar a parit de Bases de datos de PostgresSQL en una API de GraphQL, que si bien permite hacer algo similar a Supabase, ofreciendo autenticación, storage, base de datos y funciones serverlesss, su experiencia de desarrollo es más simple aunque require que ya hayas trabajado con bbliotecas de Javascript como Apollo, React Query o similares.
  • appwrite, un proyecto Open source, que tambien ofrece autenticación, funciones serverles, storage y bases de datos ya sea SQL con MySQL o NoSQL con mongodb, ademas tambien ofrece bibliotecas cliente web (Javascript) y moviles, y necesita ser instalado en tu propio servidor porque no tiene un servicio autolojado de momento, aunque ya se esta trabajano uno, lo que le permitira ser una opcion más similar a supabase
  • Pocketbase, esta es un software desarrollada en Go, que a diferencia de las opciones anteriores este no es un servicio sino un progrmaa que descargar y te genera un backend que permite auticar, subir archivos, y usar una base de datos de Sqlite3, lo que significa que es más para proyectos pequeños. Ademas este proyecto tambien ofrece bibliotecas cliente de Javascript y dat, similar a supabase.

Conclusion

En fin si quieres una alternativa a Firebase Sencilla, probablemente irias por Supabase, el servicio es muy sencillo de empezar, es bastante rapido crear un proyecto web usando su biblioteca, y tiene una comunidad bastante activa.

O si ya usas servicios de AWS, y quieres integrarlos rapidamente en nuevos proyectos probablemente Amplify sea una mejor opcion, la experiencia de desarrollo es un poco más dificil al ser AWS una nube con muchas configuraciones y servicios, pero si quieres el servicio más versatil este es la mejor opcion.

Y si eres un desarrollar freelance y quieres opciones simples appwrite o pocketbase son dos opciones bastante simples de desarrollar aunque el trabajo te lo van a dar al desplegarlos.

Actualizado por ultima vez el

Esta es una lista de servicios de Plataformas Backend as a service alternativos a Firebase, en donde podemos encontrar a servicios como Supabase, Pocketbae, nHost, Mongodb Realm, entre otras opciones

¿Quieres Compatir mi Contenido?

Publicado:hace 2 años

Actualizado:hace 2 años