What I've shipped.
Consumer products, internal AI platforms, agent systems, client tooling, and personal sites — built by directing AI agents as a non-technical founder. Public projects link out. Internal ones show enough detail to talk about; the rest stay private.
Public products
Live consumer products anyone can use. Stripe-backed where it makes sense, free where the audience comes first.
A daily AI learning PWA for curious non-technical adults. Seven cards in five minutes — definitions, core concepts, bleeding-edge stories, and a tool spotlight — generated each morning via live web search. Free tier or $4.99/mo premium for topic personalization, email digest, and deeper cards.
- Live web search via OpenRouter (Gemini 2.5 Flash free / Claude Haiku 4.5 premium)
- Magic-link auth (Resend), no passwords; Stripe Checkout + Customer Portal for billing
- PWA with installable home-screen app, web-push reminders, deck archive (premium)
- Mascot-led UI (Deckie) with custom artwork across login, home, quiz, share, push
- MIT licensed, self-hostable runbook ships with the repo
Price-per-unit Amazon shopping engine with 50-page SEO landing network and a B2B brand marketplace (Stripe-subscribed sponsored placement). Includes a referral-partner system that swaps Amazon tracking IDs dynamically per traffic source.
- 1,694-brand Levanta integration for deal-badge cross-referencing
- JSON-LD FAQ schema on all 50 category pages
- Two-tier unit parser (regex + Gemini AI fallback) for accurate price-per-oz/count
- Stripe-subscribed B2B marketplace ($2.50-$6.50 / product / mo)
Privacy-first GLP-1 and peptide injection tracker. PWA with end-to-end encrypted cloud sync. All crypto runs in the browser, the server only sees opaque ciphertext.
- PBKDF2-SHA-256 (600k iterations) + AES-GCM 256 encryption in-browser
- Body-diagram injection mapping, dose heatmap, weight + mood tracking
- Reconstitution calculator + doctor share links + PDF export
- Free tier + $1.99/mo Premium ($19.99/yr)
UFC + USL League One schedule with countdowns. Daily Telegram alerts and web-push browser notifications. Installable PWA.
- VAPID/P-256 web-push for iOS Safari support
- ESPN public scoreboard API
- Daily 09:00 PT alert digest via the Sam ops agent
The site you're on. Static HTML on nginx, hand-rolled, no framework. Live homepage stats (shipped repos, commits in the last 30 days, current streak, last ship) refresh every 2 hours from a systemd-timer-driven Python script that walks the local git repos and writes a JSON file the page fetches on load.
- Four pages (home, about, work, resume), unified nav and design system
- Schema.org Person + AboutPage markup
- Bronze + slate design system, custom typography
- Every-2h stats refresh: scans /root, /var/www, /opt for git repos, dedupes by normalized remote URL, never writes credentials to the JSON
Tools I built for myself
Personal productivity stack. Each one replaced a paid SaaS I was tired of renting. Private repos, but I'm happy to walk anyone through how they work.
Gmail open tracker. Chrome MV3 extension plus self-hosted Flask backend. Replaces Mailtrack and Mailsuite for my personal email, and shows me which prospects actually open my outreach.
- Self-view filtering so my own opens don't pollute the data
- Per-thread first-open + repeat-open timestamps
- Desktop notifications + dashboard UI
- Tracking pixel served from my own infrastructure (no third-party trust)
Custom task manager that replaced Vikunja (which replaced Todoist). Flask + SQLite, Bearer-token auth so my agents can hit it via REST, session cookies for me in the browser.
- 50 tasks migrated from Todoist on launch day
- REST API my Claude agents call to create + complete tasks
- Project + tag + due-date model, no calendar bloat
- Lives on the same VPS as the rest of the stack, $0/mo
The dashboard I use to run my own job hunt. Tracks applications, contacts at target companies, follow-ups, AI-drafted outreach, and a daily learning loop that scores newly-discovered roles against my apply history and rejection reasons.
- JobSpy multi-board scraper (LinkedIn, Indeed, Glassdoor, Google Jobs, ZipRecruiter)
- Playwright Chromium for JS-rendered JD pages (Greenhouse, Ashby, Workday)
- OpenRouter cheap-first cascade (Gemini Flash to Haiku to Sonnet) for cost discipline
- 175-line decision framework that scores every role APPLY / LEAN / REJECT
- Two-stage LinkedIn outreach (200-char connect note + post-accept intro)
Internal AI systems
Agents and platforms I run across the business — a Telegram-ops EA, web-design lead engine, brand-pitch parser, and the creator-vetting stack that powered the influencer-marketing agency (now sunsetting as I refocus on consumer products and web design). Components are private but real, and the patterns transfer.
Three connected systems that together run a 467,000-creator CRM. Prowler discovers new creators across TikTok, Instagram, and YouTube. Refinery enriches and scores them. Professor is a decision-learning service that mirrors every approve/decline/skip and trains a ranker on the patterns.
- 467K creator records, multi-platform discovery
- Multi-stage AI scoring (quality + brand safety + engagement)
- Professor baseline regression now, LightGBM upgrade at ~500 decisions
- Camofox + free-stack discovery is replacing a paid Apify pipeline
Discovery + triage + AI-scoring engine for local web-design and real-estate leads. Scrapes business listings, fetches each candidate site, extracts signal, then LLM-scores via an OpenRouter cascade.
- DeepSeek to Llama to Gemini to GPT-4o-mini fallback chain
- Banned-word voice guard on AI-drafted outreach (no fake deliverables, no filler closers)
- Mobile-friendly admin UI with auto-saving CC field and preview tokens
- MCP server exposes 10 tools so Claude can query the lead pool directly
Iframe-bridge Chrome extension that overlays my creator vetting UI directly onto creator pages on TikTok, Instagram, and YouTube. The scan-grid view lets me vet a dozen profiles in one screen.
- Multi-creator scan grid (12 profiles at once)
- Service worker + content scripts + same-origin iframe pattern
- Hooks into Professor so every decision feeds the ranker
- v1.2 in production daily use
Telegram-bot ops EA plus notification dispatcher across the entire stack. Sam takes commands and runs Claude Code on the server. Hermes pushes alerts with quiet-hours and category routing.
- Bidirectional Claude Code bridge via Telegram
- Quiet-hours + category-routed notification dispatcher
- Backs all infra timers, system health monitors, morning digests
- Replaced a paid Slack workspace
Hourly Gmail monitor that auto-classifies inbound brand pitches and drafts replies in my voice. Threads stay in Gmail, drafts wait for me to approve, summaries land in Telegram via Sam.
- Per-thread state machine (new to classified to drafted to sent)
- Resend API for outbound sends
- Drafts respect my style guide (no em dashes, no filler closers)
- Webdesign-inbox-agent sibling routes Bonnie + Elvin client mail to WillDo
Client-facing systems
Multi-tenant infrastructure that powers client websites and recurring engagements. Built so onboarding a new client is a config change, not a copy-paste of the last one.
Daily SEO and AI-search monitoring for client websites. Tracks rank changes on Google and mention frequency across ChatGPT, Claude, Perplexity, and Gemini. Per-client isolated tenants.
- GEO + AEO + SEO tracking in one dashboard
- Daily snapshots stored for trend analysis
- Webhook alerts on rank drops or mention spikes
- SerpBear for Google rank, custom LLM-mention harvesters for AI search
One Payload v3 instance hosting every client's CMS as an isolated tenant. Replaces Sveltia for all future client builds. Native auth, no GitHub accounts required for clients.
- Isolated tenants per client (E Studio first, more on deck)
- Client logs in with their work email, edits their own site copy
- Astro front-ends fetch at build time, no runtime CMS dependency
- Single instance scales to dozens of clients on one VPS
Reusable kit (~1,500 LOC) that drops into any client site to add lead capture, admin dashboard, segments, and Resend-backed campaigns with a per-client SQLite database. First deployed for GB Contractors.
- Two Flask blueprints (public_bp + admin_bp) drop into any client app
- Per-client SQLite (data/marketing.db) keeps tenants isolated
- Resend email + token-auth admin out of the box
- End-to-end verified on first client (lead lands in DB, notification fires, dashboard updates)
Multi-tenant auto-blogging service for client websites. Generates, drafts, and queues blog posts for human review in a portal that already exists. Targeting ~$1-2/mo per client vs the $300/mo human writer it replaces.
- Flask backend on VPS2 + NocoDB + pgvector for retrieval
- Sveltia review portal (already deployed) doubles as the editor
- Build kicks off after the E Studio cutover
- 100x cost reduction vs the freelance baseline
Infrastructure I run
The supporting cast. Each one replaced a paid SaaS or made the rest of the stack possible. Most of these aren't products, but I built or operate them.
A self-auditing repo that snapshots my infrastructure (services, timers, nginx, DNS, certs, ports) and logs every change in a CHANGELOG. Mandatory update on every infra touch. The reason I can still explain what's running six months in.
- Snapshot tooling per VPS (services, ports, certs, cron, nginx)
- CHANGELOG-driven (50+ entries in five weeks)
- Catches drift before it becomes an outage
Mattermost (chat), Planka (boards), WillDo (tasks), Karakeep (bookmarks), NocoDB (admin DB). Replaced Slack, Plaky, Todoist, Notion, and Airtable respectively. All live on $35/mo of VPS.
- Daily encrypted VPS1 to VPS2 backups
- Each service has its own subdomain, SSL, and entry on the tools portal
- Total monthly cost <5% of the equivalent SaaS stack