Family wealth management platform. GCP Cloud Run + Alpaca Broker API + Go monolith. Solo dev, ~$50K budget, 9 weeks to App Store.
Go monolith, lean GCP services, Alpaca as the financial backbone. Everything chosen to scale without rework.
Single Cloud Run service orchestrating Alpaca Broker API. Webhook-driven state machine for all financial events.
Alpaca replaces 3 mock providers at once: KYC, Custodian, and Payment. Single adapter layer in your codebase.
FINRA member, SEC registered. You operate under their umbrella. SIPC insured up to $500K.
Built-in CIP verification. Submit user data, Alpaca runs identity checks. Webhook on approval/rejection.
Link bank accounts, initiate transfers. Real money movement with webhook confirmations.
Stocks, ETFs, fractional shares. Market/limit orders. Real-time positions and P&L.
Automatic tax lot tracking (FIFO, LIFO). 1099 generation. Monthly/yearly statements.
Individual + Custodial (UGMA/UTMA). MVP ships with UGMA/UTMA only — the core value prop.
JWT auth, user profiles, preferences. Your database, your sessions. Alpaca doesn't handle app auth.
Family member CRUD, SSN encryption, UGMA/UTMA state rules, relationship tracking.
Create fund → Alpaca custodial account. Allocation profiles, auto-invest logic, rebalancing.
Unified family view across all Alpaca accounts. Portfolio history, performance charts.
Log to DB at MVP. Push (APNs), email (SendGrid), SMS (Twilio) come in Phase 2.
Append-only logging via middleware on every request. Regulatory compliance from day 1.
11 modules total. Alpaca adapter is the single integration layer — every module talks through it.
Down from 50+ in the full architecture. Alpaca handles KYC, custody, funding, and trading.
POST /auth/register — Create user + Alpaca accountPOST /auth/login — JWT access + refresh tokensPOST /auth/refresh — Rotate refresh tokenPOST /auth/logout — Invalidate sessionGET /users/me — ProfilePUT /users/me — Update profilePUT /users/me/financial-profile — Suitability (synced to Alpaca)GET /beneficiaries — ListPOST /beneficiaries — CreateGET /beneficiaries/:id — DetailPUT /beneficiaries/:id — UpdateDELETE /beneficiaries/:id — Soft-deleteGET /funds — List Alpaca accountsPOST /funds — Create → Alpaca custodial accountGET /funds/:id — Real balance from AlpacaPUT /funds/:id/allocations — Rebalance tradesPOST /banking/link — Alpaca ACH relationshipGET /banking/accounts — Linked bank accountsPOST /transactions/deposit — Alpaca ACH transferGET /transactions — List (Alpaca + ledger)GET /funds/:id/allocations — Allocation targetsGET /dashboard/summary — Aggregate all accountsGET /dashboard/chart — Alpaca portfolio historyPOST /webhooks/alpaca — Webhook receiverGET /health — DB + Alpaca connectivityDeposit triggers ACH transfer via Alpaca. On completion webhook, auto-invest splits across allocation targets.
Every table that touches money links to an Alpaca account ID. Ledger tracks funding events only — Alpaca tracks trades.
6 phases. Each builds on the previous. Alpaca sandbox for all development, flip to production at launch.
GCP costs scale from ~$10/mo at launch to ~$200/mo at 10K users. Most budget goes to legal and marketing.
| Category | Cost |
|---|---|
| GCP infra (12 months) | $120 – $170 |
| Apple Developer Program | $99 |
| Domain + Google Workspace | ~$50 |
| Compliance attorney | $5,000 – $10,000 |
| State registrations | $1,000 – $3,000 |
| Alpaca partnership | $0 (rev share) |
| Legal (terms, privacy) | $2,000 – $5,000 |
| Marketing (Instagram/TikTok) | $5,000 – $10,000 |
| Contingency | $15,000 – $30,000 |
| Total Year 1 | ~$30,000 – $55,000 |
Every risk has a concrete mitigation. Biggest blocker: Alpaca partnership approval.
Apply early (week 1). Backup: DriveWealth, Tradier. Partnership review takes 1-2 weeks.
Follow Apple's financial app guidelines. Have disclaimers, compliance disclosures, attorney review before submission.
9 weeks is aggressive. Scope cut: ship without auto-invest first, add later. Core value prop still works with manual deposits.
Use sandbox for all testing. Expect minor differences. Budget 1 week for production cutover issues.
Good UX for data collection. Clear error messages on what to fix. Alpaca provides rejection reasons via webhook.
Handle transfer.RETURNED webhook. Reverse ledger entry. Notify user. Standard banking behavior.
Apply for Broker API at alpaca.markets/broker-api
All development against sandbox environment
Attorney reviews disclosures, terms, privacy
Alpaca reviews your app for compliance
Flip ALPACA_BASE_URL env var to production
First real user with real money movement
Everything in the MVP is designed to scale without rework. Phase 2 features add on top — nothing gets thrown away.
State-administered, not brokerage. Partner with Ascensus or state plan provider. Add fivetwonine/ adapter package.
Requires IRA custodian. Partner with Forge Trust, Equity Trust. Contribution limit tracking, income eligibility.
Limited Alpaca support. May need enterprise tier or separate custodian. Manual onboarding possible.
Cloud Scheduler → Alpaca ACH transfers. Weekly/biweekly/monthly. Dollar-cost averaging built in.
After TestFlight feedback. Deposit settled, order filled, rebalance needed, KYC approved.
Migrate gcloud commands to Terraform modules. Add Memorystore Redis, Cloud Armor WAF, Cloud KMS.