CMS / Shopify / Stripe

Disponible - Remoto - UTC-6

CMS a la medida, Shopify y Stripe para negocios que ya venden y se quedaron sin plantilla.

Soy Angel Mora, desarrollador senior de Ruby on Rails. Construyo tres cosas: el back office que administra tu contenido y tu catalogo, la tienda Shopify que se comporta como tu operacion real, y el cobro con Stripe con webhooks idempotentes y conciliacion contra tu base de datos. No un boton de pago pegado con cinta.

Para quien
Negocios que ya facturan
Como entrego
Alcance cerrado o retainer
Dueno del codigo
Tuyo desde el commit uno
01 El problema

El problema no es tu producto. Es la capa de software que lo vende.

Shopify que no se adapta

El tema aguanto hasta que el catalogo crecio. Hoy tienes seis apps que se pisan entre si, un descuento que solo funciona a medias y un checkout al que nadie puede tocarle nada.

CMS generico que estorba

El modelo de contenido lo definio un plugin, no tu negocio. Publicar toma quince clics y nadie del equipo entra al admin sin supervision.

Checkout que no convierte

Pasos de mas, errores de tarjeta sin mensaje, 3D Secure que rompe el flujo en movil y pagos que quedan cobrados en Stripe pero sin registrar en tu base de datos.

Headless mal implementado

Cambiaron un monolito por tres servicios. Ahora mover un texto exige un deploy, la fuente de verdad vive en dos lugares y el costo de mantenimiento se duplico.

Casi nunca es un problema de plataforma. Es que la plataforma nunca supo como funciona tu negocio.

Con esto empieza cada discovery

02 Servicios

Tres frentes. Se contratan por separado o como una sola pieza: catalogo, tienda y cobro suelen ser el mismo problema visto desde tres lados.

01

CMS a la medida

Un back office que se parece a tu operacion, no a un blog de 2009.

Rails 8 / Hotwire / PostgreSQL / Active Storage

Que incluye

  • Modelo de contenido construido sobre tus entidades reales: productos, colecciones, sucursales, autores, lo que de verdad mueve el negocio.
  • Admin en Rails 8 + Hotwire: navegacion con Turbo Frames y formularios que responden sin recargar, sin cargar un framework de runtime en el navegador.
  • Roles y permisos por equipo, borradores, historial de cambios y publicacion programada.
  • Busqueda y filtrado directo en PostgreSQL (full-text y trigram) sin levantar un servicio aparte.
  • Imagenes con Active Storage: variantes, recortes y entrega optimizada.
  • API JSON o feeds cuando el front vive en otro lado: app movil, pantallas en tienda, otro sitio.

Para quien es

Equipos que actualizan catalogo o contenido todos los dias y ya entendieron que el plugin no va a llegar.

Para quien no es

Un sitio de cinco paginas que casi no cambia. Ahi te conviene algo hecho y te lo voy a decir.

02

Shopify

Que la plataforma se comporte como tu negocio, no al reves.

Liquid / Admin GraphQL API / Functions / Storefront API

Que incluye

  • Temas Liquid a la medida: secciones reutilizables, metafields y metaobjects para que el catalogo hable tu idioma.
  • Apps privadas contra la Admin GraphQL API: automatizacion de inventario, precios, etiquetado y flujos internos.
  • Webhooks con firma verificada y procesados en cola: pedidos, reembolsos y fulfillment que si llegan a tu ERP.
  • Shopify Functions para reglas de descuento y de envio; extensiones de checkout hasta donde tu plan lo permita.
  • Migracion de datos: productos, variantes, clientes, pedidos historicos y redirects para no perder SEO.
  • Storefront API o headless solo cuando el caso lo justifica, con la razon escrita antes de escribir codigo.

Para quien es

Tiendas que ya venden y chocan contra el limite del tema o de la app de turno.

Para quien no es

Quien esta validando el producto esta semana: arranca con un tema estandar y vuelve cuando duela.

03

Stripe

Cobrar es facil. Que el dinero y tu base de datos digan lo mismo es el trabajo.

Payment Elements / Billing / Connect / Webhooks

Que incluye

  • Checkout o Payment Elements con SCA y 3D Secure, metodos de pago locales y manejo real de errores de tarjeta.
  • Suscripciones con Billing: planes, prorrateos, periodos de prueba, dunning y portal de cliente.
  • Connect para marketplaces: onboarding de vendedores, comisiones y payouts.
  • Webhooks idempotentes: verificacion de firma, log de eventos, reintentos y cola de trabajo. Un pago no se cobra ni se registra dos veces.
  • Conciliacion contra tu base de datos, para que el estado en Stripe y el estado en tu app dejen de contradecirse.
  • Pruebas con Stripe CLI y fixtures en el pipeline, mas una corrida en vivo con montos chicos antes de abrir la llave.

Para quien es

Quien cobra recurrente, opera un marketplace, o cuyo soporte se la pasa buscando pagos huerfanos.

Para quien no es

Si vendes tres cosas al mes y solo necesitas un boton, Payment Links te alcanza.

03 Quien construye

Un solo desarrollador senior de Rails, con el mismo stack que te propongo.

Llevo mas de seis anos enviando monolitos Rails a produccion: Hotwire, jobs en segundo plano, PostgreSQL a escala e integraciones con APIs de terceros. No subcontrato el trabajo: quien toma el discovery es quien escribe el codigo y quien contestas el dia que algo se cae.

Stack tecnico
Capa Que corre ahi
Framework Ruby on Rails 8.0 sobre Ruby 3.4. Monolito, no microservicios sin razon.
Interfaz Hotwire (Turbo + Stimulus), Tailwind v4 e importmap. Sin build de JavaScript, sin SPA.
Datos PostgreSQL 17, Active Storage, jobs en segundo plano para todo lo que tarda.
Deploy Kamal sobre Docker en servidores Hetzner. Rollback de un comando.
Esta pagina Corre exactamente sobre ese stack. La prueba es el sitio que estas leyendo.

Antecedentes

40% menos tiempo de carga Turbo Frames con lazy loading · Inktavo / Printavo

120 hrs/mes ahorradas 30+ tareas Rake de automatizacion · SEPROBAN

Suite de tests 45 -> 38 min Profiling con TestProf · Info-Tech Research Group

04 Como trabajo

Cuatro fases. Cada una termina con algo que puedes abrir, leer o hacer clic.

Discovery, build, deploy, handoff. Sin sorpresas al final.

  1. 01

    Discovery

    Una llamada y acceso de lectura a lo que ya existe: repositorio, tienda, panel de Stripe, analitica. Reviso el modelo de datos y los puntos donde el dinero cambia de estado.

    Entregable: Documento de alcance: entidades, integraciones, riesgos y que NO entra.

  2. 02

    Build

    Ramas cortas, staging desde la primera semana y una demo funcionando cada semana. Los tests van donde se mueve el dinero: webhooks, totales, impuestos y estados de pedido.

    Entregable: Staging navegable y demo semanal con tu equipo.

  3. 03

    Deploy

    Kamal a tu servidor o al mio. Migraciones revisadas, backups y monitoreo antes de abrir la llave. Los pagos van primero en modo prueba y luego en vivo con montos chicos.

    Entregable: Produccion con rollback de un comando.

  4. 04

    Handoff

    El repositorio es tuyo desde el primer commit, sin dependencias de mi infraestructura. Documento la operacion y grabo la sesion de traspaso.

    Entregable: README de operacion, runbook de incidentes y sesion grabada.

05 Preguntas

Lo que suelen preguntarme antes de firmar.

Por que Rails y no un stack de JavaScript?
Porque un equipo chico mantiene mejor un monolito. Hotwire da la interactividad sin duplicar el modelo de datos en el navegador ni arrastrar un framework de runtime. Si tu caso pide otra cosa, te lo digo en el discovery.
Ya tengo Shopify. Tengo que migrar?
Casi nunca. La mayor parte del trabajo es lograr que Shopify haga lo que tu operacion necesita. Migrar solo tiene sentido cuando el costo de pelear con la plataforma supera el de salir de ella.
De quien es el codigo?
Tuyo. El repositorio va a tu nombre desde el primer commit, sin licencias raras y sin servicios mios de los que dependa para correr.
Trabajas dentro de mi equipo o por fuera?
Ambos. Puedo entrar como contratista en tu repositorio y tu proceso, o entregar el proyecto completo llave en mano.
Zona horaria y disponibilidad?
Ciudad de Mexico, UTC-6. Traslape completo con America y las mananas de Europa.
Cuanto cuesta?
Dos formatos: proyecto con alcance cerrado y precio fijo, o retainer mensual por bloque de horas. El numero sale del documento de discovery. Si tu presupuesto y el alcance no coinciden, te lo digo en la primera llamada.
06 Contacto

Siguiente paso

Cuentame que se esta rompiendo.

Un correo con contexto vale mas que tres llamadas de descubrimiento. El boton abre tu cliente de correo con un formato corto ya escrito: que vendes, que stack tienes y que se esta rompiendo hoy. Si el proyecto no es para mi, te lo digo de una vez.

angelmomaa@gmail.com · linkedin.com/in/angelmoradev

Zona horaria

UTC-6

Ciudad de Mexico

Escribir el correo