---
title: "Santo & Seña Case Study | Mattriz Studio"
description: "A new site for a Bogotá bookshop and record store with three locations and 3,538 products, launched in twelve days without disrupting the store."
lang: en
url: https://mattriz.com/project/santo-y-sena/
---

> A new site for a Bogotá bookshop and record store with three locations and 3,538 products, launched in twelve days without disrupting the store.

Case study 2026

# Santo & Seña

A bookshop with three locations, 3,538 products and a till that couldn’t stop.

Twelve days from the first line of code to launch, without migrating the operation. Santo & Seña got a site that looks like the house, while WordPress kept running the shop, the invoicing and the point of sale.

[Visit the site](https://casasantoysena.com/)

## At a glance

- **Client**: Santo & Seña
- **Location**: Bogotá, Colombia
- **Live since**: September 10, 2026
- **Services**: E-commerce, UI/UX Design, Web Development, SEO

**Results**

- **12**: Days from first commit to launch
- **6,115**: Indexed addresses preserved
- **13/13**: Health checks passing

![Santo & Seña home page: search, sections and the event of the week](https://mattriz.com/media/projects/santo-y-sena/ss-home-1600.webp)

The home page recomposes itself every day with what arrives at the shop.

The brief

## A new site, without touching the operation.

Santo & Seña is a bookshop and record store in Bogotá with three locations and a catalogue of 3,538 products. Its operation (inventory, invoicing, point of sale) lived on WordPress and WooCommerce, and it worked. What didn’t work was the face: the site was the usual WordPress theme, slow to load and foreign to what the house is.

The brief wasn’t “rebuild the shop”. It was harder: **make a new site without touching the operation**. The till couldn’t stop invoicing for a single day, and the 6,115 addresses Google had already indexed couldn’t be lost.

Home, instant search, the turntable, the shop and the cart, all served by the new site.

![Santo & Seña shop with category filters and sorting](https://mattriz.com/media/projects/santo-y-sena/ss-libros-1600.webp)

The shop, served by the new site. Checkout still runs on WordPress, on the same domain.

![Instant search results for “cortázar”](https://mattriz.com/media/projects/santo-y-sena/ss-buscar-1600.webp)

Search answers without the network: the index ships to the browser.

The central constraint

## There was no maintenance window.

WordPress wasn’t migrated, switched off or frozen. It stayed as the engine. On top of it we built a bridge: the new site serves what it knows (catalogue, product pages, events, blog, search) and asks WordPress for the rest behind the scenes. Checkout, customer accounts and the admin keep coming from WordPress, on the same domain, with no visible redirect.

1. **Launch with no risk to the till**: On launch day invoicing stayed exactly the same, because nobody touched the system that invoices.
2. **Roll back in five minutes**: The rollback plan was a DNS record with a 300-second TTL, with the previous alias and CNAME written down, name and value, next to the rest of the launch.
3. **Keep the SEO**: The 6,115 live addresses are honoured with permanent 301 redirects, which pass the old page’s authority to the new one instead of leaving them to compete.

Six decisions

## Six decisions and what they cost.

A case study without trade-offs is a brochure. These are the decisions that carry the most weight, with what they cost.

- **Music is precomputed, not resolved live**: WooCommerce doesn’t know which artist each record is. Matching every product against Discogs, MusicBrainz and iTunes happens overnight and is versioned in the repository. Cost: a generated file Git can’t merge. Result: 102 records resolved, 48 vinyls playing on the site’s turntable.
- **Search runs in the browser**: Searching 3,538 products live meant one request per keystroke against a shared server. The index is built at compile time instead. Cost: 830 KB downloaded once, weighed against a search box that sometimes doesn’t answer.
- **In-house analytics that identify nobody**: A counter on Upstash Redis, no cookies, no personal data, and a private panel. No funnels or attribution, but it shows what no third-party tool can: what people searched for and didn’t find.
- **The shop iPad is its own piece**: The iPad where customers listen to records isn’t a smaller screen, it’s another problem: no links, everything by touch, and it resets itself for the next customer. Cost: code duplicated on purpose.
- **Everything rotates by the day, not at random**: Categories, new arrivals, the record of the day and the featured location rotate by the day number in Bogotá. Everyone sees the same thing the same day; whoever comes back tomorrow finds something else.
- **Three scheduled jobs, one allowed to fail**: Catalogue (daily), monthly report (daily) and health (13 checks, eight times a day). A fourth one ends in red on purpose when a hand-written list points to something sold out.

Escucha, the listening page: pick a record, the turntable spins and 30 seconds play. The iPad in the shop has its own version, made for touch.

![Listening page with a turntable and the latest vinyl records](https://mattriz.com/media/projects/santo-y-sena/ss-escucha-1600.webp)

Pick a record, hear 30 seconds, take it home.

![Record page for Happy Today by Jeff Parker ETA IVtet, with a preview player](https://mattriz.com/media/projects/santo-y-sena/ss-disco-1600.webp)

Artist and album resolved against Discogs, MusicBrainz and iTunes, overnight.

![Santo & Seña home on a phone](https://mattriz.com/media/projects/santo-y-sena/ss-m-home-900.webp)

![Record page on a phone](https://mattriz.com/media/projects/santo-y-sena/ss-m-disco-900.webp)

![Turntable page on a phone](https://mattriz.com/media/projects/santo-y-sena/ss-m-escucha-900.webp)

What went wrong

## Three hard weeks, documented with the measurement that closed them.

1. **The hosting mistook our own traffic for an attack**: Product pages started failing, and so did the point of sale. A temporary diagnostic route proved the block depended on where the request came from; with that, the provider found our requests in its own logs and lifted the protection. What stayed: a direct door for the team, a smarter health check and a one-page runbook.
2. **The network budget was longer than the function’s deadline**: One in 25 product pages failed on first visit, always at 15 seconds: the code gave each query 20 seconds, the platform killed the function at 15\. Fix: six seconds per query and a 30-second deadline on the busiest routes. Twelve random cold pages afterwards: all between 0.17 and 1.87 seconds.
3. **The bill doubled, and the culprit wasn’t the obvious one**: Image optimisation was 82 cents out of 23 dollars. 88% of the bill was 117 production deploys in thirteen days, plus link prefetching that rendered the uncached shop page once per filter option. Prefetching is now off where it costs and on where it’s free: from 35 prefetches on the home page, 9 uncached, down to 24, none uncached.
4. **Three regressions, reverted the same day**: Trimming image widths broke pages already cached in browsers, measuring too hard tripped the build twice, and the publish guard kept a bad version for two hours. The health check now verifies the home page’s sections, not just that it answers.

The method

## A directed AI agent, not an automatic one.

Of 343 commits, 239 were written by an AI agent and 80 by the studio. That explains the pace, and also the limits. Every decision is documented in the code itself, and every diagnosis was closed by measuring, not by opinion.

What didn’t work: verification needs the same discipline as development. And human direction isn’t optional: the most valuable decisions (not migrating, the bridge, in-house analytics, the iPad as its own piece) came from the business, not from the code.

Where it is today

## Sixteen days in production.

The music catalogue regenerates every night, the monthly report builds itself, the home page recomposes with what arrives at the shop, and health is checked eight times a day.

- **12**: Days from first commit to launch
- **6,115**: Indexed addresses preserved
- **13/13**: Health checks passing

> Pages respond in 0.18 to 0.66 seconds. Cold product pages load in 0.17 to 1.87 seconds, with no failures. Across nine pages, 1,755 of 1,755 images verified.

![Reading recommendations page for Fernanda Melchor](https://mattriz.com/media/projects/santo-y-sena/ss-lecturas-1600.webp)

What’s next

## The work isn’t closed, and the case doesn’t pretend it is.

1. **Degraded catalogue mode**: Serve yesterday’s data, with a notice, when the back-office doesn’t respond. It’s the root of most incidents in this period.
2. **Cache the shop page**: It’s the only purchase page that is drawn from scratch on every visit.
3. **Turn the data into action**: The panel already shows what people searched for and didn’t find, and what they left in the cart. Next: a mailing list of their own and a “back in stock” alert.

## Front end

Next.js 16, React 19, Tailwind CSS 4, TypeScript on Vercel. Eight direct dependencies: no component library, state manager or ORM.

## Back office

WooCommerce on WordPress (Hostinger), not migrated. Point of sale: Pliego, the client’s own plugin, invoicing to Siigo.

## Data & automation

Upstash Redis for sessions and analytics. Discogs, MusicBrainz and iTunes for the catalogue. GitHub Actions for three scheduled jobs.

## Your operation works, but your site doesn’t look like you?

We can build the new face without touching what keeps the business running. That’s what Mattriz does.

[Tell us about your project](https://mattriz.com/contact/)

[Visit the live site casasantoysena.com](https://casasantoysena.com/)

---

## About Mattriz

Mattriz is a design and development studio based in Bogotá, Colombia, working with businesses across the US and Latin America. We design the brand, build the website, the online store or the booking and payment system, and keep it running every month. AI speeds up the work; the decisions stay with us.

- What we build: booking and operations systems, payment integration (Square, Stripe, Wompi), custom admin dashboards, automation and follow-up, websites that convert.
- How we work: a monthly plan to build, maintain and keep improving. No one-off projects.
- Capacity: three active clients at a time, a deliberate limit.
- Languages: English and Spanish.
- Contact: contacto@mattriz.com · https://mattriz.com/contact/
- Book a free 30-minute call: https://calendly.com/contacto-mattriz/30min
- Free website scanner: https://mattriz.com/scan/
- Everything about the studio for AI assistants: https://mattriz.com/llms.txt
