- Create Economist SubmissionTracking package correctly: * mainArticle = full blog post content * coverLetter = 216-word SIR— letter * Links to blog post via blogPostId - Archive 'Letter to The Economist' from blog posts (it's the cover letter) - Fix date display on article cards (use published_at) - Target publication already displaying via blue badge Database changes: - Make blogPostId optional in SubmissionTracking model - Economist package ID: 68fa85ae49d4900e7f2ecd83 - Le Monde package ID: 68fa2abd2e6acd5691932150 Next: Enhanced modal with tabs, validation, export 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
14 KiB
Phase 2 Cost Estimates: Hosting + API Usage
Project: Tractatus AI Safety Framework Website Phase: 2 of 3 Created: 2025-10-07 Currency: USD (approximate NZD conversion: ×1.65) Planning Horizon: 3 months (Phase 2 duration)
Table of Contents
- Executive Summary
- One-Time Costs
- Monthly Recurring Costs
- OVHCloud Hosting Options
- Claude API Pricing
- Usage Scenarios
- Cost Optimization Strategies
- Budget Recommendations
Executive Summary
Total Phase 2 Costs (3 months)
| Scenario | One-Time | Monthly | 3-Month Total | Notes |
|---|---|---|---|---|
| Minimal | $50 | $80 | $290 | Basic VPS, light API usage |
| Standard | $100 | $150 | $550 | Recommended for soft launch |
| High Usage | $200 | $300 | $1,100 | Heavy AI features, peak traffic |
Recommended Budget: $550 USD (~$900 NZD) for 3-month Phase 2
Ongoing Monthly (post-launch): $150-200 USD (~$250-330 NZD)
One-Time Costs
Initial Setup (First Month Only)
| Item | Cost (USD) | Notes |
|---|---|---|
| Domain Registration | $15-30/year | agenticgovernance.digital (if not already owned) |
| SSL Certificate | $0 | Let's Encrypt (free) |
| Development Tools | $0 | Open source (Git, Node.js, MongoDB) |
| Migration Services | $0 | Self-managed deployment |
| Security Audit Tools | $0-50 | Free tier (npm audit, Trivy) or paid scans |
| Load Testing Tools | $0-50 | k6 (free), Artillery (free tier) |
| Email Setup | $0 | ProtonMail existing account |
| Analytics Setup | $0 | Self-hosted Plausible/Matomo |
| Backup Storage | $0-20 | Initial backup storage (if off-server) |
| Contingency | $50 | Unexpected setup costs |
Total One-Time: $50-200 USD
Monthly Recurring Costs
Breakdown by Service
1. Hosting (OVHCloud VPS)
| Tier | Specs | Price/Month | Use Case |
|---|---|---|---|
| VPS Starter | 1 vCore, 2GB RAM, 20GB SSD | $7-10 | Development/testing only |
| VPS Value | 1 vCore, 2GB RAM, 40GB SSD | $10-15 | Light traffic (<1000 visitors/month) |
| VPS Essential | 2 vCore, 4GB RAM, 80GB SSD | $20-30 | Recommended for soft launch |
| VPS Comfort | 2 vCore, 8GB RAM, 160GB SSD | $40-50 | Moderate traffic (1000-5000 visitors/month) |
| VPS Elite | 4 vCore, 16GB RAM, 320GB SSD | $80-100 | High traffic (5000+ visitors/month) |
Recommendation: Start with VPS Essential ($20-30), upgrade if needed.
2. Claude API (Anthropic)
Pricing Model (as of 2025):
- Claude Sonnet 4.5:
- Input: $3.00 per million tokens
- Output: $15.00 per million tokens
- Context: 200K tokens
Estimated Usage:
| Feature | Requests/Month | Tokens/Request (avg) | Monthly Cost |
|---|---|---|---|
| Blog Topic Suggestions | 100 | 5K input + 1K output | $2.00 |
| Blog Outline Generation | 30 | 10K input + 5K output | $3.00 |
| Media Inquiry Triage | 50 | 3K input + 500 output | $0.75 |
| Case Study Analysis | 20 | 15K input + 3K output | $2.00 |
| Moderation Assistance | 50 | 5K input + 1K output | $1.50 |
| Miscellaneous | 50 | 5K input + 1K output | $1.50 |
Total API Cost (Light Usage): $10-15/month Total API Cost (Standard): $30-50/month Total API Cost (Heavy): $100-200/month
3. Additional Services
| Service | Cost/Month | Notes |
|---|---|---|
| Bandwidth | $0-5 | Usually included in VPS, overage rare |
| Backups (Off-site) | $0-10 | OVHCloud Snapshot or Backblaze B2 |
| Domain Renewal | $1-3 | Amortized annual cost |
| Email (ProtonMail) | $0 | Existing account (free tier) |
| Analytics (Self-hosted) | $0 | Plausible/Matomo on same VPS |
| Error Tracking | $0-10 | Sentry free tier (5K events/month) or self-hosted |
| Uptime Monitoring | $0-5 | UptimeRobot free tier or self-hosted |
| CDN (Optional) | $0-20 | Cloudflare Free tier or paid |
Total Additional: $0-50/month
OVHCloud Hosting Options
Recommended Configuration: VPS Essential
Specs:
- 2 vCores (Intel Xeon or AMD EPYC)
- 4GB RAM
- 80GB SSD NVMe
- 500 Mbps bandwidth (unlimited traffic)
- 1 IPv4 + 1 IPv6
- Anti-DDoS protection included
Price: $20-30/month (varies by region)
Justification:
- Handles MongoDB (2GB RAM minimum recommended)
- Supports Node.js application + Nginx
- Room for Plausible Analytics
- Suitable for 1,000-5,000 visitors/month
- Upgrade path available (scale vertically)
Alternative: Hetzner Cloud (European Hosting)
If OVHCloud is unavailable or too expensive:
Hetzner CX21:
- 2 vCPU
- 4GB RAM
- 40GB SSD
- 20TB traffic
- €4.90/month (~$5.30 USD)
Hetzner CX31:
- 2 vCPU
- 8GB RAM
- 80GB SSD
- 20TB traffic
- €8.90/month (~$9.65 USD)
Note: Hetzner has excellent pricing but may have fewer NZ/Oceania users. OVHCloud has better global presence.
Claude API Pricing
Pricing Tiers (Anthropic - 2025)
| Model | Input (per 1M tokens) | Output (per 1M tokens) | Context Window |
|---|---|---|---|
| Claude Haiku 4.0 | $0.25 | $1.25 | 200K |
| Claude Sonnet 4.5 | $3.00 | $15.00 | 200K |
| Claude Opus 4.0 | $15.00 | $75.00 | 200K |
Recommendation: Claude Sonnet 4.5 (best balance of quality and cost)
Token Usage Estimation
Average Request Breakdown:
-
Blog Topic Suggestion:
- Input: 3K tokens (recent news summaries)
- Output: 500 tokens (5-10 topic suggestions)
- Cost per request: $0.02
-
Blog Outline Generation:
- Input: 8K tokens (topic + guidelines + examples)
- Output: 3K tokens (detailed outline)
- Cost per request: $0.07
-
Media Inquiry Triage:
- Input: 2K tokens (inquiry text + classification criteria)
- Output: 300 tokens (classification + priority + draft response)
- Cost per request: $0.01
-
Case Study Analysis:
- Input: 10K tokens (submission + Tractatus framework docs)
- Output: 2K tokens (relevance analysis + categorization)
- Cost per request: $0.06
Monthly Usage Scenarios
Scenario 1: Light Usage (Soft Launch)
- 30 blog topic checks
- 10 blog outlines
- 20 media inquiries
- 10 case study analyses
- Total: ~$5-10/month
Scenario 2: Standard Usage (Active Moderation)
- 100 blog topic checks
- 30 blog outlines
- 50 media inquiries
- 20 case study analyses
- Total: ~$30-50/month
Scenario 3: Heavy Usage (Full Production)
- 300 blog topic checks
- 100 blog outlines
- 150 media inquiries
- 50 case study analyses
- Total: ~$100-200/month
Usage Scenarios
Scenario 1: Minimal (Development/Testing)
Use Case: Low traffic, testing AI features
| Cost Item | Amount |
|---|---|
| VPS (Value tier) | $15 |
| Claude API (light) | $10 |
| Backups | $5 |
| Domain (amortized) | $2 |
| Monthly Total | $32 |
| 3-Month Total | $96 |
Limitations:
- 500-1,000 visitors/month max
- Limited AI usage (testing only)
- Single-server (no redundancy)
Scenario 2: Standard (Recommended for Soft Launch)
Use Case: Soft launch with 20-50 users, moderate AI usage
| Cost Item | Amount |
|---|---|
| VPS (Essential tier) | $30 |
| Claude API (standard) | $50 |
| Backups | $10 |
| Error tracking | $10 |
| Domain (amortized) | $2 |
| Monthly Total | $102 |
| 3-Month Total | $306 |
| With setup costs | $406 |
Capabilities:
- 1,000-5,000 visitors/month
- 30 blog posts/month (AI-assisted)
- 50 media inquiries/month
- 20 case studies/month
- Monitoring and error tracking
Recommendation: This is the sweet spot for Phase 2
Scenario 3: High Usage (Peak Production)
Use Case: High traffic, heavy AI features
| Cost Item | Amount |
|---|---|
| VPS (Comfort tier) | $50 |
| Claude API (heavy) | $200 |
| Backups | $15 |
| Error tracking | $10 |
| CDN | $20 |
| Domain (amortized) | $2 |
| Monthly Total | $297 |
| 3-Month Total | $891 |
| With setup costs | $1,091 |
Capabilities:
- 5,000-10,000 visitors/month
- 100+ blog posts/month
- 150+ media inquiries/month
- 50+ case studies/month
- CDN for global performance
When to use: Phase 3 (public launch) or if soft launch exceeds expectations
Cost Optimization Strategies
1. API Cost Reduction
Techniques:
- Caching: Cache AI responses for identical queries (30-day TTL)
- Batch Processing: Group similar requests (e.g., weekly topic suggestions)
- Haiku for Simple Tasks: Use Claude Haiku for media triage (5x cheaper)
- Rate Limiting: Cap AI requests per user/day
- Human Overrides: Allow admins to skip AI for trivial cases
Savings: 30-50% reduction in API costs
2. Hosting Cost Reduction
Techniques:
- Start Small: Begin with VPS Value, upgrade as needed
- Annual Billing: OVHCloud offers ~20% discount for annual payment
- Resource Optimization: Optimize database queries, enable caching
- Self-Host Everything: Analytics, error tracking, monitoring (no SaaS fees)
- Cloudflare Free Tier: CDN + DDoS protection at no cost
Savings: 20-30% reduction in hosting costs
3. Bandwidth Optimization
Techniques:
- Image Optimization: WebP format, lazy loading
- Compression: Gzip/Brotli for all text assets
- CDN: Offload static assets to Cloudflare
- Minimize Dependencies: No unnecessary JavaScript libraries
Savings: Avoid bandwidth overage fees
Budget Recommendations
Phase 2 Budget Allocation
Total Recommended Budget: $550 USD (~$900 NZD)
Breakdown:
- Setup costs: $100 (one-time)
- Month 1: $150 (infrastructure + initial AI usage)
- Month 2: $150 (AI features rollout)
- Month 3: $150 (soft launch)
Contingency Planning
Recommended Buffer: +20% ($110 USD / ~$180 NZD)
Reasons:
- Unexpected traffic spikes
- API usage higher than estimated
- Additional tools/services needed
- Domain/email issues
Total with Contingency: $660 USD (~$1,090 NZD)
Monthly Budget Template (Post-Launch)
Baseline Monthly Costs (Standard Usage)
Fixed Costs:
VPS Essential (OVHCloud) $30
Domain (amortized annual) $2
Backups (off-site) $10
Error Tracking (Sentry free) $0
Analytics (self-hosted) $0
─────────────────────────────────────
Subtotal Fixed $42
Variable Costs:
Claude API (30-50 requests/day) $50
Bandwidth (if overage) $0
CDN (Cloudflare Free) $0
Support/Maintenance $0
─────────────────────────────────────
Subtotal Variable $50
Total Monthly (Standard) $92
Rounded Budget Recommendation: $100/month
Annual Cost Projection (Year 1)
Phase 2 (3 months): $550
Phase 3 (9 months): $900 (assuming $100/month average)
─────────────────────────────
Year 1 Total: $1,450 USD (~$2,400 NZD)
Cost Comparison: Self-Hosted vs. Cloud Services
Option 1: Self-Hosted (Recommended)
| Service | Provider | Cost |
|---|---|---|
| Hosting | OVHCloud VPS | $30/month |
| Analytics | Plausible (self-hosted) | $0 |
| Error Tracking | GlitchTip (self-hosted) | $0 |
| Monitoring | Self-hosted scripts | $0 |
| Backups | OVHCloud Snapshots | $10/month |
| Total | $40/month |
Option 2: Cloud Services
| Service | Provider | Cost |
|---|---|---|
| Hosting | Vercel/Netlify | $20/month |
| Database | MongoDB Atlas | $25/month |
| Analytics | Plausible (cloud) | $9/month |
| Error Tracking | Sentry (cloud) | $26/month |
| Monitoring | UptimeRobot Pro | $7/month |
| Total | $87/month |
Savings with Self-Hosted: $47/month ($564/year)
Tradeoff: More setup/maintenance effort, but better privacy and cost control.
Payment Methods & Billing
OVHCloud Payment Options
- Credit/Debit Card (Visa, MasterCard)
- PayPal
- Bank Transfer (for annual plans)
- Cryptocurrency (some regions)
Anthropic Claude API
- Credit/Debit Card
- Pay-as-you-go (monthly billing)
- Enterprise plans (prepaid credits)
Billing Schedule
- VPS: Monthly (or annual for discount)
- Claude API: Monthly (arrears)
- Domain: Annual
- Backups: Monthly
Currency Conversion (NZD)
Exchange Rate (as of 2025-10-07): 1 USD = ~1.65 NZD
| USD Amount | NZD Equivalent |
|---|---|
| $50 | ~$83 |
| $100 | ~$165 |
| $150 | ~$248 |
| $300 | ~$495 |
| $550 | ~$908 |
| $1,000 | ~$1,650 |
Note: Exchange rates fluctuate. Add 5-10% buffer for volatility.
Approval Checklist
Before proceeding with Phase 2, confirm:
- Budget approved: $550-660 USD (~$900-1,090 NZD) for 3 months
- Monthly ongoing: $100-150 USD (~$165-250 NZD) acceptable
- Payment method: Credit card or PayPal available
- OVHCloud account: Created and verified
- Anthropic account: API access approved
- Currency: USD or NZD budget confirmed
- Contingency: 20% buffer accepted ($110 USD / ~$180 NZD)
Appendix: Cost Calculator
Interactive Budget Calculator (Conceptual)
// Example usage:
const monthlyBudget = calculateMonthlyCost({
vps: 'essential', // $30
apiRequests: 500, // ~$50
backups: true, // $10
cdn: false, // $0
errorTracking: 'free' // $0
});
console.log(monthlyBudget); // $90
Implementation: Could be added to admin dashboard for real-time cost tracking.
Revision History
| Date | Version | Changes |
|---|---|---|
| 2025-10-07 | 1.0 | Initial cost estimates for Phase 2 |
Document Owner: John Stroh Last Updated: 2025-10-07 Next Review: Monthly (during Phase 2) Contributors: Claude Code (Anthropic Sonnet 4.5)