Hola chicos, he estado un poco ausente últimamente, es porque he estado trabajando en la configuración de un proyecto que estoy abordando, un sitio web de comercio electrónico personalizado.
Mi hermana tiene un negocio local en Argentina llamado By Maruja que lleva el nombre de mi abuela. Ella vende accesorios para mujeres como aretes, collares y cosas por el estilo. Por el momento, tiene una tienda de Tienda Nube, este proveedor es como Shopify y otros en el sentido de que le permite crear su propia tienda con una plantilla predefinida y hacer un poco de personalización ligera, agregue sus productos y tenga todo configurado sin contratar a un diseñador, un desarrollador o pagar por separado los costos del servidor.
Desafortunadamente, después de un tiempo llega a un punto en que sitios como este no cubren sus necesidades o simplemente agregan demasiado costo mensual para que sea viable para las pequeñas empresas en condiciones económicas inciertas. Entonces, dado que mi esposa es Diseñadora Gráfica (ella ya diseñó la marca) y yo soy un Desarrollador de Software, decidimos echarle una mano y crear una solución que satisfaga las necesidades de su negocio mientras que nosotros tengamos un proyecto realmente agradable para mostrar en nuestros portfolios.
Ahora, te estarás preguntando qué demonios está pasando, ¿no? Quédate conmigo, voy a dar las presentaciones adecuadas.
Los dos primeros son bastante normales, ¿verdad? ella quiere tener un sitio web/tienda que coincida con la marca de la empresa, que pueda personalizarse fácilmente cuando haya nuevos productos en existencia o cuando entren en juego las promociones.
MercadoPago es el primero que los lectores de EE. UU./UE podrían preguntarse qué demonios es esto. En América Latina, no tenemos ningún sitio web designado para Amazon al que podamos recurrir cuando queremos comprar cosas en línea. La mayoría de las veces los vendedores no envían a América Latina, o si lo hacen, aplican tarifas gigantescas. Incluso si pasas por alto todos estos problemas, algunos países, como Argentina, tienen restricciones muy fuertes sobre los productos importados, debes pagar una multa de hasta el 50% del precio del producto y, a veces, los productos quedan varados en la aduana y pierdes tu dinero.
No se pierde toda esperanza, hay otra opción, una compañía llamada MercadoLibre. Básicamente tienen el monopolio de las compras en línea en muchos países latinoamericanos. Tienen oficinas en 18 países y emplean a unas 8000 personas. Esta compañía tiene su propia plataforma de pago llamada MercadoPago que admite la mayoría de las tarjetas de crédito, transferencias directas e incluso pagos en cuotas mensuales. Al menos en Argentina, la mayoría de las personas usan este servicio para comprar en línea, en su sitio web u otras plataformas (también debido al hecho de que el gobierno cobra una tarifa del 30% sobre los pagos realizados con sistemas de pago extranjeros).
Puedes estar pensando, este tipo se volvió loco, finalmente sucedió. Escúchame, para una pequeña empresa que recién está comenzando, los costos fijos pueden ser mortales, especialmente en un país que tuvo una inflación del 54% en el último año. El costo actual es simplemente demasiado teniendo en cuenta el hecho de que las posibilidades que ofrecen estos sitios son limitadas.
Comencé reduciendo las opciones en función de las limitaciones que tiene el proyecto:
MercadoPago como plataforma de pago.
Por debajo de 5 dolares al mes de mantenimiento.
Estilo y experiencia a medida.
Fácil de agregar nuevos productos y cambiar el texto y las imágenes del sitio.
Después de mirar varias posibilidades, me pareció que mis dos opciones principales eran Wordpress + Woocommerce o crear algo personalizado. Mi principal problema con Wordpress fue que primero no sé nada al respecto. Me iba a llevar mucho tiempo aprender cómo construir un sitio web completamente funcional y desplegarlo de forma segura en un servidor, tampoco estaba seguro de poder mantener los costos por debajo de los 5 dólares.
Decidí ir a un sitio web personalizado. Pero no todo va a ser personalizado, todavía quiero evitar tener que lidiar con la autenticación de administrador, tener un sitio de administración personalizado para mantener o tener un servidor con una base de datos para mantener.
En el último año, he estado construyendo mi propio sitio web/blog con Gatsby y deployando en Netlify, así que aprendí a amar el poder del JAMstack. Pensé que esto podría encajar bien con el patrón, así que comencé a evaluar opciones que cumplirían los requisitos mencionados anteriormente.
Sitio web
Capacidades de comercio electrónico / CMS
API para la integración
Hosting
No importa el camino que tome, me dara un sitio web súper elegante y rápido, con capacidades de administración, implementado en un alojamiento de calidad con prácticamente 0 costos.
Al final, fueron las diferencias entre Gatsby y Next.js las que definieron la decisión, Gatsby es un generador de sitio estático, lo que significa que el sitio se construye cuando se envía un commit al repositorio y luego se sirve como contenido estático cada vez que alguien llama a nuestra URL, esto es excelente para los costos y el rendimiento del servidor, pero se vuelve complicado cuando hay información que puede cambiar a menudo, en nuestro caso, ese cambio es el stock de nuestros productos.
Cada vez que se realiza una compra, el stock se actualiza en nuestro CMS y se debe activar una compilación en el sitio web de Gatsby para mostrar el stock correcto. Next.js, por otro lado, es una navaja suiza, tiene generación de sitios estáticos, pero también tiene renderización del lado del servidor e incluso puede funcionar como una aplicación de normal de React, esto significa que podemos adaptar las páginas a nuestras necesidades específicas y solo usar recursos del servidor cuando sea necesario.
Entonces, aunque Gatsby tiene algunas ventajas bastante buenas, como complementos para la carga de imágenes de manera performante y la integración con Sanity, decidí que Next.js era el más adecuado para lo que queremos construir.
El tech stack completo en el momento de escribir es:
Y fui por la siguiente arquitectura:
Cuando un usuario accede al sitio web, los productos se renderizaran en el servidor desde Sanity y se cargarán en el sitio web. Cuando un usuario quiere comprar algo, una función serverless se pondrá en contacto con la API de MercadoPago y generará el enlace apropiado para pagar en su plataforma. Una vez completado el pago, el hook de la API de MercadoPago notificará a otra función serverless que actualizará el stock en Sanity.
He estado haciendo sesiones de programación en pares de manera semanal con un amigo que durante los últimos 6 meses ha estado tratando de cambiar las carreras de la enseñanza al desarrollo de software, es un tipo increíblemente apasionado y tiene un futuro brillante por delante, pero hemos estado luchando por encontrar ejemplos reales para trabajar. Por el lado de mi esposa, durante los últimos meses, ha estado ayudando a una amiga común, principalmente mejorando su CV como Diseñadora y dando un ojo extra a sus proyectos independientes.
Me sentí muy aliviado cuando nos ofrecieron una mano en este proyecto, ya que tenía dudas de que pudiéramos llevarlo a cabo por nosotros mismos en un tiempo razonable. Entonces nuestro equipo es:
En las próximas semanas, haremos un buen progreso en diseño e implementación. Escribiré una serie de artículos que explicarán cómo creamos la estructura del proyecto, cómo nos integramos con Sanity y MercadoPago, cargamos datos reales en nuestro sitio web, creando el carrito y el pago, y finalmente deployando. Si te gusta a dónde va esto, házmelo saber a continuación en los comentarios. Si tienes alguna sugerencia para el proyecto, soy todo oídos, hágamelo saber a continuación. Como siempre, si te gustó este artículo, comparte y subscribite a mi newsletter 😀
Soy un developer autodidacta Argentino que actualmente vive y trabaja en España. Intento mejorar diariamente, mientras ayudo a otros a hacer lo mismo.
Seguir a @patferraggi