vøiddo · uses page

what we actually build with.

no affiliate links, no “ultimate stack” bait. the tools and services behind every vøiddo shipment, exactly as they sit in the workflow today. inspired by uses.tech.

updated 2026-04-30

ai & models routing law locked

we run a strict tier-routing law: free users on cheapest model, paid on mid, business-only on top.

toolwhere it runs
Gemini 2.5 Flash Litefree tier across every product. cheapest, good enough.
Gemini 2.5 Flashpaid tier default. balance of cost and quality.
Gemini 2.5 Probusiness-tier only. heavier reasoning, never on free.
Gemini 2.5 Flash Imageall production icons, OG cards, product art. ~$0.039 per image.
Claude (this assistant)execution copilot. plans, ships, audits. heaviest model when context matters.

backend monolith on purpose

Python 3.11+every product backend. typed everywhere, async by default.
FastAPI + Uvicornasync web framework. zero-magic, fast, pydantic-native.
PostgreSQL 16primary store for every product. one engine, multiple databases.
Redis 7rate limiting, cache, celery broker, idempotency keys.
Celerybackground jobs. batch generation, mail send, webhook retries.
SQLAlchemy 2.0async ORM. raw SQL when atomic counters matter.
Alembicmigrations. never edit schema by hand.

frontend no framework lock-in

React 18 + Vitescrb web app, rankd dashboard, jobmeta admin. simple SPAs.
TailwindCSSstyling. dark theme by default.
Static HTML + CSSapex, every landing, every legal page. no framework needed.
Outfit + JetBrains Monohouse typeface pairing. display + mono.
Lucide Reacticons in product UIs.

extensions & mobile vanilla first

Manifest V314 chrome / firefox / edge extensions. vanilla JS, no build step where possible.
React Nativevoid factory mobile (Android, then iOS). single TypeScript codebase.

infrastructure one VPS

Ubuntu 24.04 VPS8 cores, 32 GB. all production lives here. boring on purpose.
nginxreverse proxy, TLS, static. one config per product subdomain.
PM2 + systemdprocess supervision. PM2 for node bits, systemd for everything else.
Let’s Encrypt + certbotfree TLS on every subdomain.
Cloudflare DNSDNS only. no proxy layer. keeps the path direct.

billing & growth paddle is the only processor

Paddlemerchant of record. handles VAT, chargebacks, dunning. israel-blocks ruled out stripe.
Resendtransactional + lifecycle email. all 6 product lifecycles.
IndexNowpush fresh URLs to bing & yandex on ship. zero gsc lag.
Google Search Consolesearch performance audit only. not a growth lever, a mirror.
Plausibleprivacy-respecting analytics. no GA4 ever.

observability cheap by design

Sentryerror tracking, free tier. one project per product.
UptimeRobothealthcheck pings every 5 min. free tier across all subdomains.
structlogstructured json logs. one format across every backend.
PostgreSQL audit tablesai_cost.log, mail_send.log, webhook_logs. never truncated.

dev environment terminal-first

Claude Code (CLI)primary IDE. heavy use of skills + memory.
tmuxlong-running sessions across products.
git + GitHub27 public repos under @voidd0. issues are the to-do list.
npm registry25 packages under @v0idd0. small focused libs.

what we deliberately don’t use

Stripeisrael not a supported business location. paddle covers it.
Google Analyticsheavy, slow, privacy-hostile. plausible covers what we need.
Next.js / SSR frameworkssimple SPAs + static HTML cover every product. no need.
Kubernetesone VPS handles the whole portfolio fine.
microservicessolo studio. monolith per product. boring is fast.
Stripe Atlas / fancy LLCsmall studio, plain registration. paddle is the merchant of record.
this list is honest, not exhaustive. every entry above is in the production path of at least one shipped product. tools we tried and dropped — not listed. tools an indie studio is “supposed to” mention but we don’t actually use — not listed. if it doesn’t ship, it isn’t here.