DEV Community

Cover image for Qué tecnologías usar en mi aplicación?
Enmanuel Jarquín
Enmanuel Jarquín

Posted on

Qué tecnologías usar en mi aplicación?

English version

Una de las cosas mas complicadas al inicio de un proyecto es decidir que tecnologías usar. Por tal motivo quiero compartir mi experiencia esperando sea de utilidad.

Stack

Aquí el stack en caso de que no quieras leer el post entero o no tienes mucho tiempo:

  • Supabase: Para gestionar mi base de datos en postgres, me evita crear un backend para las APIs ya que te un cliente el cual facilita la interación con la base de datos, puede usarse desde el server o desde app clientes que corren en el browser o móbiles.
  • NextJS: Usando las nuevas versiones de NextJS y ahora con las nuevas formas de gestionar routers y server side components fue mucho mas sencillo crear una app usando componentes de ReactJS que se conectan a la DB directamente junto con supabase, por ejemplo usando la forma nativa de HTML para enviar los actions de un form, cuando lo hize realmente me soprendió lo rápido que es desarrollar.
  • TurboRepo: La configuración es realmente sencilla, venia usando NX en proyectos empresariales y queria darle una oportunidad a esta otra herramienta, consigues lo mismo que NX pero realmente es muy sencillo.
  • Tailwindcss: Para iniciar, no me gusta el CSS, y para enviar crear estilos por mi propia cuenta, me incliné por css.
  • Shadcn: Esta fue una de las mejores decisiones, porque combina la parte de reutilizar componentes, y el crearlos desde cero, esta herramienta te genera el componente desde cero, permitiendote ver todo el código, aprender, y personalizar fácilmente y es totalmente compatible con tailwindcss.
  • Clerk: Para evitar crear la pate de autenticación de cero, te permite gestionar los usuarios, brinda diferentes formas de autenticar, te proporciona una panel para gestion de cuenta, los botones, etc. Tu solo configuras el provider y listo, el problema es que su precio es de 20$ y Supabase ya te permite configurar la autenticación pero tienes que escribir más código, así que basado en tu presupuesto puedes usar supabase tambien.

Image description

Image description

  • Vercel: Para configurar environments, fue muy sencillo poder asociar mi dominio con vercel y configurar subdominios con unos pocos clicks, si hubiera hecho esto desde cero por mi cuenta tendría que configurar https y agregar certificados validos con wildcards para soportar subdominios, aquí te permite crear subdominios con un certificado básico pero funciona para la version inicial de tu app.
  • Namecheap: Ya tengo experiencia configurando las partes de básicas del dominio, subdomini, correo con google, etc.
  • Google
    Para usar los servicios de correo de google, ya lo he configurado con namecheap, y es relativamente barato para iniciar y tener un correo profesional.

  • Docker:
    No fue opcional, ya que es requerida por supabase para poder usarlo localmente.

Motivación

  1. Quería probar nuevas tecnologías.
  2. Quería crear un MVP.
  3. "Repentinamente" me quedé sin proyecto y ahora la idea del MVP no era opcional, pero es lo contaré en otro post.

Aplicación

La aplicación es una web app, la idea inicial seria o es una app para digitalizar los menús en los restaurantes, los restaurantes podrían configurar los productos, sus precios, etc, agregar sucursales y asociar productos a sucursales. Parte de la idea inicial era que los consumidores pudieran ordenar desde la app, pero eso añadía una capa de complejidad que iba a demorar el lanzamiento del MVP, así que eso pasa a una segunda iteración

Image description
Backoffice para restaurantes

Image description
Aplicación de meńu para consumidores

Criterios de decisión

Queria que lo básico o repetitivo estuviera casi que por defecto, y asi poder practicar y aprender cosas nuevas o que casi no hago en mi trabajo regular.

  • Todo parte de la idea del MVP, lo cual de base necesitaba tecnologías que me permitieran iterar rápido.
  • Tecnologías que me exigieran un poco más de conocimiento, en areas que no estoy familiarizado, como real-time, monorepositorios, Github actions, etc y a la vez usar las que ya conozco para no perder tiempo en eso.
  • No queria perder tiempo en configuraciones repetitivas como autenticación, configuración de base de datos, APIs para un CRUD, etc.
  • Necesitaba que el stack me permitiera tener buen performance por defecto.
  • No quería perder tiempo en CSS y escribiendo estilos desde cero, ni crear componentes básicos desde cero, como botones, formularios, etc.

Conclusión

Si hoy alguien me preguntara que tecnologías recomiendo para inciar un MVP, destacaría 2: Supabase y NextJS, el resto puede variar.

Top comments (0)

SurveyJS custom survey software

JavaScript Form Builder UI Component

Generate dynamic JSON-driven forms directly in your JavaScript app (Angular, React, Vue.js, jQuery) with a fully customizable drag-and-drop form builder. Easily integrate with any backend system and retain full ownership over your data, with no user or form submission limits.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay