# D017 - Defer External Service Activation

> D017 - Defer External Service Activation: a note from the Obsidian vault behind https://saifsiddiqui.in.

Canonical URL: https://saifsiddiqui.in/kn/brain/d017-defer-external-service-activation/ (this is its markdown representation; the same URL serves HTML to browsers)
Other languages: en: https://saifsiddiqui.in/brain/d017-defer-external-service-activation/ · hi: https://saifsiddiqui.in/hi/brain/d017-defer-external-service-activation/ · ur: https://saifsiddiqui.in/ur/brain/d017-defer-external-service-activation/ · te: https://saifsiddiqui.in/te/brain/d017-defer-external-service-activation/ · ar: https://saifsiddiqui.in/ar/brain/d017-defer-external-service-activation/ · hi-Latn: https://saifsiddiqui.in/hi-latn/brain/d017-defer-external-service-activation/

**Type:** decision  
**Status:** accepted  
**Created:** 2026-07-17  
**Tags:** decision, sequencing, billing

## D017: Defer paid / account-linked service activation to launch

**Context:** Some features need external services tied to Saif's billing/accounts, the [AI demo](/brain/phase-3b-ai-ask-this-site/) needs a credit card on Vercel AI Gateway; the [analytics](/brain/custom-analytics/) pipeline needs a production Postgres + Redis. Saif wants to make billing/account decisions **at the end**, not mid-build.

**Decision:** **Build and verify every feature against local/dev services; defer production activation of paid/account-linked services to launch (Phase 7).**
- AI demo: leave live answers gated (graceful error state shown); add the card + run live grounding checks at launch.
- Analytics: build + verify against a **local Postgres + local/in-memory Redis**; keep the connection **env-driven** so pointing at production storage later is just env vars. (Neon + Upstash have no-card free tiers, so even prod likely needs no card, provisioned at launch.)
- Contact (Phase 5): build the Resend send path **env-driven** (`RESEND_API_KEY`); without a key the form degrades gracefully. Real key + verified sender domain added at launch.

**Why:** avoids committing to billing mid-build; features are fully built + verified now; activation is a fast, reversible env/dashboard step later. Same "do it once, at the end" logic as [D015 - Defer Content Translation](/brain/d015-defer-content-translation/).

**Trade-offs:** deployed previews show empty/seed or error states for these features until launch, acceptable and by design. Everything is reversible in minutes.

## ಇಲ್ಲಿಗೆ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ

- [Custom Analytics](/kn/brain/custom-analytics/)
- [Open Questions](/kn/brain/open-questions/)
- [Phase 4 - Analytics](/kn/brain/phase-4-analytics/)
- [Phase 5 - Contact and Polish](/kn/brain/phase-5-contact-and-polish/)
- [Portfolio Brain](/kn/brain/portfolio-brain/)
- [Roadmap](/kn/brain/roadmap/)

ಎಲ್ಲಾ ಟಿಪ್ಪಣಿಗಳು: [/kn/brain/](/kn/brain/)

---

Mohd Saif, Product Engineer. I build solutions, not dead software.
Email: saifmd238@gmail.com · GitHub: https://github.com/Saif-09 · LinkedIn: https://www.linkedin.com/in/mohd-saif-134076141/ · Résumé (PDF): https://saifsiddiqui.in/resume

More for agents:
- [/llms.txt](/llms.txt): short summary of this site
- [/llms-full.txt](/llms-full.txt): the complete text of every page in one fetch
- [/agents.md](/agents.md): when to use this site, and how to query it
- [/sitemap-index.xml](/sitemap-index.xml): every URL, in seven languages
