The stack

Organized by the job, not the logo.

That is a wall of logos below, and I know it. Everyone asks to see it first, so here it is. Under it the same tools are sorted by what each one is actually for, with what I have built against each. Where I have not built anything, it says so.

System of record

The choice people agonize over. It matters less than what gets wired around it. I know two well enough to tell you which one you want. If you are actually choosing right now, here is where these four genuinely differ.

HubSpot
Six years inside it, and years building on it since. Workflows pushed through the automation API, custom properties, lifecycle and deal stage modeling, CMS pushes, private app scoping, contact and deal upsert against live portals.
Attio
Data model design, and the half of a migration Import2 does not carry: the automation, the stage definitions, the reporting.
Day.ai
Built by HubSpot's former Chief Product Officer. The record assembles itself out of the meetings and the email instead of waiting for a rep to type it in. On this page because of where it is going, not because of how many people run it today. What moving from HubSpot to Day.ai costs, and what it covers once you are on it.
Clarify
The autonomous end of the same idea. An agent keeps the record so the people in the deal can stay in the conversation. Newest thing here, and listed deliberately rather than for completeness. What Clarify costs and what a migration moves.

The money

Three numbers: what was quoted, what was invoiced, what was actually paid. Most businesses can produce one of them on demand.

Stripe
Built end to end, running under real money. Checkout, signature verified webhooks, fulfillment made idempotent in SQL so a retry cannot double grant, an entitlement ledger spent atomically, quantity priced subscriptions that sync seat counts from the app, and phased schedules so fixed term work stops billing when it ends.
QuickBooks and Xero
The other side of the same question. What the CRM says closed against what the books say arrived. Joining those two is how a services firm finds the work it delivered and never billed for.

Email and outbound

Deliverability is a systems problem before it is a copy problem. Most of what kills a sending reputation gets decided in the architecture, months before anyone writes a subject line.

Resend
Transactional and marketing on separate paths. RFC 8058 one click unsubscribe, a stateless unsubscribe token, segments and topics, and a physical postal address on every marketing send, because CAN-SPAM requires one.
BrandJet
Outbound across six channels from one sequence. Email, LinkedIn, X, WhatsApp, Instagram and Telegram, with buyer intent pulled out of social listening and every reply landing in one inbox. This row replaced four separate tools that used to be on this page. How we set outbound up.
Lifecycle
Customer.io, HubSpot sequences. Mail to people who already know you, triggered by what they did rather than by a list. A different job from outbound, and the one most firms neglect because nobody owns it.
Domains and authentication
SPF, DKIM, DMARC, and a separate sending domain for cold. A firm that sends outbound from its primary domain is one bad list away from losing its own invoices. The sending domain architecture in full.

The data layer

Every stack has questions that no single tool can answer. They get answered here.

Postgres and Supabase
Row level security, migrations, append only logs. Including policies that grant insert and nothing else, so a public surface can append telemetry and read none of it.

Measurement

Reporting that only produces wins gets read as marketing inside two months. Then nobody opens it. Build it so it can deliver bad news.

GA4 Data API
Scheduled collectors that aggregate at the source. Record level rows never reach a reporting store that does not need them. A part week is never compared against a full one.
Search Console
Daily pulls, folded by page rather than by URL. One page arrives as several rows. Unfolded, a site I work on reported 10,101 impressions against a real 4,462. Position is impression weighted, never averaged.
Product analytics
PostHog, Mixpanel. For a software team, what someone did in the product is a better buying signal than anything they filled in on a form.

The agent layer

Assistants are starting to read and write these systems directly. Whether that works comes down to the data model and to who is allowed to do what. Both get settled long before anyone types a prompt.

MCP server
I have built one, not just connected to them. built here An OAuth 2.0 protected Model Context Protocol server, so an assistant can call a product directly. Streamable HTTP, RFC 9728 protected resource metadata, RS256 verification against a hosted issuer, tool annotations.
Anthropic API
The advisory layer inside Pre-Trip. Prompt caching with the volatile half of the request kept out of the cached prefix, and gating that keeps the rule patterns server side.
Netlify
Where all of it runs. Serverless functions, edge authentication, scheduled and background jobs.

The rest of the board

Tools I select from and connect. None of these are hard, and I am not going to pretend otherwise. Choosing between them, and knowing which two actually need to talk, is where the time goes.

Where the work runs
ConnectWise, Halo, Autotask, Linear, Jira. The PSA or the tracker. Usually the real source of truth about the business, and usually connected to nothing.
Meetings
Cal.com, Calendly, Google Calendar, Fireflies. Booking, and then getting what was said on the call back into the record without anyone retyping it.
Forms and documents
Typeform, Netlify Forms, PandaDoc, DocuSign. The two ends of the same problem: how work comes in, and how it gets agreed.
Glue
Zapier, Make, n8n. Fine for the edges. A firm running its core revenue process through forty Zaps nobody documented has a problem, not a stack.
Where the team already talks
Slack, Notion. A notification nobody sees is the same as no notification. This is usually where the alerting belongs.

The list matters less than the count. Most firms are running eleven of these and have wired two of them together.

Next

Tell me which two of these do not talk to each other

That is usually the whole conversation. If the honest answer is that you need someone in house rather than me, I will say so.