Technology
This page explains the technologies powering Drift & Convergence.
Publishing Platform
Ghost is the heart of this site. It's an open-source publishing platform built for modern creators, with:
- Professional newsletter delivery
- Member subscriptions and accounts
- Clean, fast content delivery
Hosting
Magic Pages provides managed Ghost hosting on EU-based infrastructure (Hetzner Germany), keeping the site fast, secure, and reliably online.
Design
The theme ("Flux") is custom-built using:
- Tailwind CSS — A utility-first CSS framework for modern, responsive design
- Custom components — Purpose-built for the newsletter-focused experience
AI Features
The optional AI features (critical thinking questions and related topics) use a multi-layered architecture designed for privacy, speed, and cost efficiency.
Backend: Supabase
Supabase provides the serverless backend, hosted in Canada Central:
- Edge Functions — Fast, globally distributed API endpoints
- PostgreSQL Database — Stores response cache and analytics
- Authentication — Secure token exchange for Ghost members
AI Provider: OpenRouter
OpenRouter provides unified access to multiple AI models (US-based):
| Tier | Models | Access |
|---|---|---|
| Free | Llama 3.3 70B, Qwen 3 4B, GPT-OSS 120B | Everyone |
| Fast | Claude Haiku 4.5, GPT-5 Nano | Everyone |
| Balanced | Claude Sonnet 4.5, GPT-5 Mini | Members only |
| Premium | Claude Opus 4.5, GPT-5.2 | Members only |
OpenRouter routes requests to providers like Anthropic (Claude) and OpenAI while providing:
- Unified API across all models
- Transparent pricing
- Automatic fallbacks
Privacy by Design
- No personal data sent to AI — Only article content is analyzed
- IP addresses are hashed — We store a one-way hash, not your actual IP
- Response caching — Shared cache reduces API calls and speeds up responses
- Rate limiting — Global token buckets ensure fair access for everyone
How It Works
- You click an AI feature button on an article
- If you're a member, Ghost verifies your membership securely
- Our backend checks for a cached response (most requests are served from cache)
- If not cached, the article content is sent to the AI model via OpenRouter
- The response is cached for future users and displayed to you
Contact Form
Supabase handles contact form submissions (Canada Central):
- Messages are stored securely in our database
- IP addresses are hashed for rate limiting (not stored directly)
- Web3Forms sends notification emails (the actual message content stays in our database)
- Members get relaxed rate limits
Security
Authentication Flow
For AI features, we use a secure token exchange:
- Ghost issues a short-lived JWT when you're logged in
- Our backend verifies this token cryptographically
- A new token is issued for API access (1 hour for members, 24 hours for anonymous)
- All subsequent requests use this token
Rate Limiting
Global token buckets prevent abuse:
- Tokens refill hourly
- Each model tier has its own bucket
- Cached responses don't consume tokens
- Members get access to higher-tier models
Data Locations
| Service | Location |
|---|---|
| Magic Pages | EU (Hetzner Germany) |
| Supabase | Canada Central |
| OpenRouter | United States |
Questions?
Curious about how something works? Contact me and I'm happy to explain.