Problem
Your startup is building a developer productivity platform. For each major capability, you need to decide whether to build it in-house or use a third-party service. Each decision has cost, control, time, and risk implications.
Capabilities to Evaluate
- Authentication: User registration, login, SSO, MFA, password reset
- Build: Custom auth with bcrypt, JWT, TOTP library
- Buy: Auth0, Clerk, Supabase Auth
- Email Sending: Transactional emails, marketing campaigns, templates
- Build: Self-hosted email server (Postfix + DKIM)
- Buy: SendGrid, Postmark, AWS SES
- Full-Text Search: Search across documents, code snippets, and user content
- Build: Self-hosted Elasticsearch/OpenSearch cluster
- Buy: Algolia, Typesense Cloud, Meilisearch Cloud
- Payment Processing: Subscriptions, usage-based billing, invoices
- Build: Custom payment integration with bank APIs
- Buy: Stripe, Paddle, LemonSqueezy
- File Storage & CDN: User uploads, generated assets, global delivery
- Build: Self-hosted MinIO with custom CDN
- Buy: AWS S3 + CloudFront, Cloudflare R2
- Monitoring & Observability: Logs, metrics, traces, alerting
- Build: Self-hosted Grafana + Prometheus + Loki + Tempo
- Buy: Datadog, New Relic, Sentry
Decision Framework
For each capability, evaluate:
- Core vs Context: Is this a core differentiator for your product, or operational context?
- Engineering Cost: How many engineer-months to build and maintain?
- Vendor Cost: Monthly cost at current scale AND projected 10x scale.
- Vendor Lock-in Risk: How hard is it to switch providers later?
- Control: Do you need to customize behavior beyond what the vendor supports?
- Compliance: Are there data residency or security requirements that affect the decision?
- Time-to-Market: How does each option affect your launch timeline?
Your Task
- Evaluate each capability using the framework.
- Recommend build or buy for each with detailed justification.
- Identify the total engineering cost (in months) of building everything vs. buying everything.
- Design an abstraction layer that reduces lock-in for "buy" decisions.
- Create a decision matrix that future capabilities can be evaluated against.
Constraints
- 6-person engineering team, launching in 5 months.
- Annual recurring revenue (ARR): $0 (pre-revenue). Runway: 18 months.
- Expected users at launch: 500. Target at month 12: 10,000.
- Located in the US, some customers will be in EU (GDPR applies).