A sales platform we designed, built, and run in-house, and the clearest answer we can give to “can you actually build software, or just pages?”
The board a rep opens in the morning. Every prospect the system has found, scored, mailed and followed up, each card carrying one next action rather than a screen of fields.
Why we built it
A new studio has the same problem as any other small business: the work that wins clients is the work you do instead of billable work. Prospecting is hours of searching, judging whether a business needs help, writing something personal enough to answer, and remembering to follow up six days later. Do it properly and there is no time left to build. Do it badly and nothing comes back.
So we built the thing that does it. StellarReach finds local businesses, judges their current websites, builds each one a personalized demo, sends it, and follows up on its own. We run our own outreach on it. It is now open to other agencies, which means it has to work for people who are not us: the constraint that turns a useful script into an actual product.
The loop
What it does
One pass, start to finish, without anyone watching it.
Scoring: the site a business has now, judged against criteria the agency sets, with the reasons written down, not just a number.Building: a different prospect, rebuilt in their own name, palette and words, finished and waiting on a link before the first email goes out.
Find and score
It pulls candidate businesses from map data, then scores each existing website against criteria the agency sets, not a generic checklist. A vision model looks at the site the way a visitor would and reports what is actually wrong with it.
Build a demo
Every prospect that scores well gets a redesign built for their business, using their own brand, before anyone has spoken to them. The demo is the pitch, which is why it has to be good rather than generic.
Reach out
Outreach goes from the agency’s own inbox (Gmail, Outlook, or SendGrid) rotating across seat mailboxes so no single address carries the whole volume.
Watch and follow up
Opens, demo visits, and replies feed a follow-up sequence that keeps going or stops depending on what the prospect does. A lead that goes quiet is treated differently from one that never opened anything.
Read the replies
Inbound mail is classified before a human sees it: bounces clear the bad address, opt-outs suppress it permanently, out-of-office replies are ignored, and genuine replies escalate the lead and notify the rep.
Hand off
Engaged prospects push into whichever CRM the agency already uses (eight are supported, plus a generic webhook) so the pipeline lands where their team already works.
Where a pass lands: the middle card from the board above, opened. Calls, emails, demo reads, follow-ups and the reply that came back, and one next action, chosen from all of it.Engineering
Decisions worth defending
Anyone can list features. These are the choices that shaped the build, and the reasoning behind them.
One runtime dependency
The whole platform ships with a single third-party package at runtime: the PostgreSQL driver. The payment client, the archive writer, the request signing: all written rather than installed. Every dependency is code you did not write, running with your permissions, that someone else can change. On something handling other people’s billing and mail, that trade is worth the extra work.
Refusing to send
Sending too much, too fast, from a domain that starts bouncing is how a business loses its email reputation, and it takes weeks of careful low-volume sending to earn back. So the system watches its own bounce and block rate and cuts sending off when it spikes, rather than trusting a daily cap to notice. It will stop a campaign to protect an inbox.
Spending real money
Every AI call costs something, and an automated system can spend a great deal of it while nobody is looking. Usage is metered per workspace and drawn from a prepaid balance, with a hard cap that pauses the AI rather than surprising anyone. A budget that can only be exceeded on purpose.
By the numbers
What it adds up to
Counted on 16 August 2026, by a script in the repository rather than from memory: npm run report-public-stats. If you ever find these stale, that command is how to check.
108 serverless functions
Sixty-three answer a request, thirty-two run on their own clock (the sending, the monitoring, the reporting) and thirteen are background workers for jobs too slow to hold a connection open.
7,147 automated tests
Run on every change, with no live database required. The suite is the reason the thing can be changed at all.
1 runtime dependency
PostgreSQL’s driver, and nothing else. Everything the platform does at runtime is code we maintain.
Why this matters if you are hiring us
Most of what a web studio shows you is a finished surface. It tells you the pages look good; it does not tell you whether anyone can run the thing in six months, what happens when a payment fails at two in the morning, or whether the person who built it thought about the bill.
StellarReach is the counter-evidence. It is multi-tenant, it moves money, it sends mail on other people’s behalf, it runs unattended, and it is still being changed, which is the hard part. If your project is a marketing site, none of this is needed, and it is still the reason you can trust the marketing site to be built properly.
If you have a site today, start there: send us the address and we will rebuild your homepage around your own brand and words, back within one business day. If what you need is closer to this, tell us what you are building and we will come back with scope, timeline, and pricing instead.