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.
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.
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.
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.
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.
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.
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.
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.
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.