TeleWorker
https://teleworker.esTeleWorker es una plataforma para publicar y encontrar ofertas de trabajos enfocada a trabajos en remoto del mercado español. Hecho con Next.js, Tailwind, Java, Spring, PostgreSQL, Redis, Docker
Stack:
TeleWorker es una plataforma diseñada para ayudar a encontrar oportunidades de trabajo remoto. Inspirado por sitios como remoteok.com y weworkremotely.com, comencé este idea como mi primer proyecto serio en el desarrollo web utilizando tecnologías y herramientas modernas.
El frontend está desarrollado con Next.js, elegido por sus capacidades de Server Side Rendering (SSR), que es fundamental para un SEO efectivo y un mejor posicionamiento en los motores de búsqueda. Inicialmente, intenté usar la API de routes de Next.js para el backend, pero pronto se volvió complicado de gestionar. Por lo tanto, cambié a Java y Spring Boot, ya que es el stack con el que me siento más cómodo y vengo trabajando desde hace años.
Para la base de datos, opté por PostgreSQL, ya que es muy fácil de configurar y ha sido mi base de datos preferida durante años. Todo el stack lo gestiono utilizando Docker y Docker Compose, lo que simplifica la configuración y la orquestación de los diferentes servicios, incluyendo el frontend, el backend y la base de datos.
El estilo de la interfaz de usuario se realiza con Tailwind CSS y DaisyUI. TailwindCSS facilita el estilo, especialmente en comparación con el uso de archivos .css y la metodología BEM para mantener nombres de clase limpios, lo cual encontré desafiante. DaisyUI es una biblioteca de componentes que incluye varios componentes y temas, lo que facilita el diseño de la interfaz de usuario para alguien como yo, sin formación en diseño.
La aplicación está alojada en AWS EC2 debido a su bajo coste, alta disponibilidad y rendimiento. Para gestionar el tráfico, he configurado Nginx como un proxy inverso.
El despliegue se automatiza a través de una pipeline de CI/CD usando GitHub Actions. Esta pipeline incluye diferentes pasos entre los cuales se incluye uno que usa Docker para construir la aplicación, generar y publicar una imagen de Docker y finalmente desplegarla en el servidor tras conectarse por SSH.
Para el envío de correos electrónicos, he usado la plataforma Brevo que ofrece un paquete gratuito bastante generoso en cuanto a cantidad de emaiils que se pueden enviar al mes.
Una de las características clave que quería probar a integrar era Stripe para gestionar las suscripciones. Aunque la integración con Stripe está activada en modo desarrollo pues para pasar a modo 'producción' es necesario estar dado de alta como autónomo.
Actualmente, el principal desafío al que me estoy enfrentando es generar tráfico inicial y adquirir usuarios a través de SEO. El contenido principal de la página se basa en anuncios creados por los clientes y al no tener tráfico no existe un incentivo para atraer nuevos clientes.