CASE 02 · FEEDPULSE CONSOLEThe platform thatpowers the platform.The internal SaaS console behind the FeedPulse Pulse-suite — queue-driven workers, 312 active integrations across UK retailers, and the 99.97% uptime number that lets us put the rest of the studio to sleep.
YEAR2024PLATFORMInternal · LaravelCATEGORYSaaS DashboardSTATUSLIVE · PRODUCTIONVisit site
FEEDPULSE · CONSOLE
SECTION 01THE BRIEF · WHAT IT NEEDED TO BE
01 / BRIEF

One client's feed problem. Then sixty.

FeedPulse started as a single-client tool for one of our longest-running retail accounts. As soon as it shipped, three more clients asked for the same. The brief became: build the platform that could run feed transformation, channel sync, anomaly detection and performance reporting for sixty retailers without forcing the studio to scale into a 30-person agency we didn't want to be.

SECTION 02THE APPROACH · HOW WE BUILT IT
02 / APPROACH

Boring monolith. Loud about it.

We're unfashionable on purpose. Microservices, edge databases and serverless workers all had a turn at being suggested — we said no, and we'd say no again. A founder-led studio can't operate twelve-component infrastructure on call across timezones. So we don't.

01

Boring monolith on purpose

Single Laravel app, single Postgres, Redis for caching and queues. Microservices were available; we deliberately chose the opposite. One repo, one deploy, one place to look when something breaks.

02

Queue-driven everything

Every channel sync, anomaly check, and report generation is a queued job. Failures retry with exponential back-off. The dashboard never blocks waiting on Google Merchant Center.

03

Per-tenant isolation

Each retailer gets schema-isolated data and per-tenant config, but everyone runs on the same code path. Adding a 60th tenant is a config change, not a deploy.

04

On-call without on-call

Sentry + a dedicated alerts channel that pages us only on customer-affecting issues. The platform has run unattended for stretches of weeks because the boring choices upstream caught the obvious problems.

SECTION 03THE STACK · WHAT POWERS IT
Application
LARAVELPHP 8.3BLADETAILWIND
Data
POSTGRESREDISS3
Workers
HORIZONQUEUESCRON
Channel adapters
GMCMETATIKTOKPINTERESTAMAZON
AI
OPENAIANTHROPICEMBEDDINGS
Observability
SENTRYGRAFANALOGTAIL
SECTION 04THE OUTCOME · LIVE METRICS
04 / OUTCOME

99.97% uptime. 312 active integrations. Founder-led.

The numbers on the homepage Stats section are pulled from this same FeedPulse console — they're ours, lagged a few minutes so we don't embarrass ourselves on a bad afternoon.

FeedPulse Console is the canonical example of what Stackpulse can ship: a full SaaS platform run by two people, sustained for years without growing the team. Every Pulse-suite product (FeedPulse, SendPulse, SearchPulse, ReviewsPulse) shares this monolith. Adding a new module is a folder and a route, not a new repo.

The console powers the public marketing site at feedpulse.co.uk, the customer dashboards inside it, and the operations panels that only the studio sees. One application, three audiences.

09 / WORK WITH US

Show us your stack.
We’ll tell you exactly what we’d ship.

One call. We'll dig into what you've got, where it's friction, and whether we're the right people to help. No deck, no pitch.

Currently booked out 14 days · we reply within 4 working hours