Skip to content
← All case studies

Ecommerce platform · 2024 — present

Colombiatodo CI SAS

Shipped an ecommerce platform end to end: storefront, CMS, payments, shipping and auth.

Next.jsReactStrapiSupabaseFirebaseFastifyMercadoPago
−25%page load time in production
Visit the live site ↗

Context

Colombiatodo needed to sell online without an existing storefront or a backend team. The catalog, pricing and content had to be editable by non-technical staff, and checkout had to integrate Colombian payment and shipping providers.

I led the build as developer and designer: information architecture, storefront, headless CMS, checkout services and the integrations behind them.

Colombiatodo ecommerce storefront on desktop
Colombiatodo CI SAS

My role

Web Developer & Designer — end-to-end ownership of the platform.

  • Designed the storefront and its information architecture.
  • Built the frontend in Next.js and React on top of a Strapi content model.
  • Integrated payments, shipping, authentication and realtime data.

Decisions

01

Headless CMS over a custom admin

Constraint
The product team needed to edit catalog, pricing and content without waiting on a deploy.
Options
  • Build an admin panel from scratch
  • Use a hosted commerce platform
  • Model content in Strapi and expose it through an API
Choice
Model the catalog in Strapi and consume it from Next.js.
Why
Content modeling is a solved problem. Building an admin panel would have consumed the schedule and still been worse for the people who use it daily.
02

One API service instead of scattered functions

Constraint
Checkout needed payment webhooks, shipping quotes and auth without a backend engineer on the team.
Options
  • Serverless functions per integration
  • A single Fastify service
  • A no-code integration layer
Choice
A single Fastify service with typed contracts, backed by Supabase and Firebase.
Why
One deployable service kept the integration logic in one place, which matters when one person owns the whole path from cart to confirmation.
03

A performance budget, not a rewrite

Constraint
Catalog pages loaded slowly on mobile networks, and the stack was already shipped.
Options
  • Move everything to a CDN and hope
  • Rewrite the storefront
  • Set a budget and audit images, fonts and JavaScript
Choice
Set a load budget and fix the largest contributors: image sizes, font loading and JavaScript on catalog pages.
Why
Load time dropped roughly 25% without changing the framework or the team's release rhythm.

Outcome

The platform launched with catalog, checkout, payments, shipping and authentication working together. Sales stopped depending on manual channels, and the catalog is maintained by the business team.

−25%
page load time in production
1
platform delivered end to end
5
integrations shipped: payments, shipping, auth, CMS, realtime

Lessons

  • Owning design and implementation at the same time removes handoff cost, but it also removes the person who catches your assumptions. I started writing decisions down before building them.
  • A performance budget survives future features; a one-time optimization does not.