Skip to main content
Tech Stack progress
intermediatePage 19 of 27

Payments, Email, Files & Other Services

The boring-but-essential third-party services every app needs — payments (Stripe), email (Resend), files (R2), video (Mux), maps, push notifications, analytics.

Payments, Email, Files & Other Services

In one line: Buy, don't build. Every modern app stitches together best-in-class services for payments, email, files, video, and more.

In plain English

You're not going to build your own payment processor. Or your own globally-distributed file storage. Or your own email-deliverability system. These are enormously hard problems already solved by specialized companies. Pay them and move on. This page is the catalog of which services to pay.

Payments

ServiceNotes
StripeDefault for almost everyone. Excellent API and docs.
Paddle / Lemon SqueezyMerchant of Record (they handle global tax compliance). Great for indie SaaS.
AdyenLarge enterprises.

Email (transactional)

ServiceNotes
ResendModern, developer-friendly, React Email integration.
PostmarkHigh deliverability, focused on transactional.
AWS SESCheap at scale, more setup.
SendGridLegacy choice, still widely used.

Email (marketing)

  • Loops — Modern, developer-friendly.
  • Customer.io — Event-driven sequences.
  • Mailchimp — Classic, broad features.

File storage

ServiceNotes
Cloudflare R2S3-compatible, no egress fees (major cost win). Increasingly the default.
AWS S3The original. Mature, integrated with everything AWS.
Backblaze B2Cheap, S3-compatible.

Image optimization & CDN

  • Cloudflare Images — Bundled with Cloudflare.
  • Imgix / Cloudinary — Image transformation as a service.
  • Framework built-ins — Next.js <Image>, Astro <Image> handle most needs.

Video

  • Mux — Best DX for video. Upload → get adaptive streaming.
  • Cloudflare Stream — Bundled with Cloudflare.

SMS

  • Twilio — Default.
  • MessageBird / Plivo — Alternatives.

Maps

  • Google Maps — Most familiar, expensive at scale.
  • Mapbox — Customizable, designer-friendly.
  • MapTiler / MapLibre — Open-source alternatives.

Push notifications

  • OneSignal — Most popular.
  • Knock — Multi-channel notifications.

Analytics

ServiceNotes
PostHogOpen-source, all-in-one (analytics, replay, flags, experiments).
Mixpanel / AmplitudeMature product analytics.
Plausible / FathomPrivacy-friendly, simple website analytics.
Vercel AnalyticsBuilt-in for Vercel sites.
Highlight: the "buy" decision tree

Before building any of the categories on this page, ask:

  1. Is this our core product? No → buy.
  2. Are there 3+ mature competitors offering this as a service? Yes → buy.
  3. Would I be embarrassed if a real company saw my version next to theirs? Yes → buy.

The math almost always favors buying these services. Stripe charges 2.9% + 30¢ per transaction; building a global compliant payments system would cost ~$10M and 18 months. A weekend cost-benefit analysis isn't even close.

Common mistakes

Where people commonly trip up
  • Building your own payment flow because Stripe "is just an API." Stripe handles SCA, 3DS, dispute mediation, tax-ID validation, fraud signals, and a hundred jurisdictions. Six weeks into your homegrown version, you'll wish you'd used Stripe Checkout from the start.
  • Sending transactional email from your own SMTP server or from Gmail. Deliverability is the entire game in email, and you don't get to opt out of SPF/DKIM/DMARC, IP warming, and reputation scoring. Use Resend, Postmark, or SES — they spend full-time engineering hours on the inbox-vs-spam fight you can't win solo.
  • Storing files in your application server's filesystem. Works on one box, breaks the instant you scale to two, and dies on any serverless platform (ephemeral disk). Put files in R2 / S3 from day one — the API is barely more code, and you'll never have to migrate.
  • Paying S3 egress without realizing. S3 egress is the silent killer of cloud bills. R2 (no egress fees), Backblaze B2, or putting Cloudflare in front of S3 can drop your bill by an order of magnitude if you're shipping a lot of bytes to users.
  • Skipping webhook signature verification on Stripe / GitHub / Slack endpoints. Webhooks are public URLs; without signature checks, anyone can forge events. Every provider ships a verify helper — use it before you do anything with the payload.
  • Letting one provider's outage take down your whole product. When Stripe (or Resend, or Twilio) has a bad afternoon, your "Send invite email" button shouldn't kill the signup flow. Push side-effects through a queue with retries so a third-party hiccup is invisible to users.

Page checkpoint

Checkpoint Quiz

Did third-party services stick?

Required

What's next

→ Continue to AI Infrastructure — the model providers, SDKs, and observability tools for the AI layer.