Live inventory · What I'm building right now

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.

26 active repos 600+ commits in 30 days since March 2026

Public products

Live consumer products anyone can use. Stripe-backed where it makes sense, free where the audience comes first.

Live Launched 2026-05 Open source

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
React 19ViteExpress 5SQLiteResendStripeOpenRouterWeb PushPWA
Live Launched 2026-02

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)
NodeReactTypeScriptPostgresStripeAmazon Creators APILevantaDrizzle
Live Launched 2026-05

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)
Vanilla JSPWAWeb Crypto APIFlaskSQLiteDocker
Live

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
FlaskJavaScriptPWAESPN APIWeb Push
Live

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
HTMLCSSNginxPythonSystemD timersGit

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.

openpx
Live Internal · open to discuss

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)
Chrome MV3JavaScriptFlaskSQLiteNginx
WillDo
Live Internal · open to discuss

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
FlaskSQLitePythonNginx
Justin Job Search Portal
Live Internal · open to discuss

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)
FlaskSQLitehtmxPlaywrightJobSpyOpenRouterSearXNG

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.

Prowler + Refinery + Professor (creator stack)
Sunsetting Internal · open to discuss

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
PythonSQLiteOpenRouterCamofoxApifyEnsembleDataSystemD
Meridian
Live Internal · open to discuss

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
FlaskSQLitePlaywrightOpenRouterSearXNGMCP
WSGiQ Chrome Extension
Sunsetting Internal · open to discuss

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
Chrome MV3JavaScriptFlask backendiframe bridge
Sam + Hermes
Live Internal · open to discuss

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
PythonTelegram Bot APIClaude Agent SDKSystemD
CommQuest Inbox Agent
Live Internal · open to discuss

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
PythonGmail APIOpenRouterResendTelegram

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.

Sentinel
Live Internal · open to discuss

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
FlaskSQLitePlaywrightSerpBearOpenRouter
WSG Multi-Tenant CMS (Payload)
Live Internal · open to discuss

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
Payload v3PostgresAstroNodeDocker
WSG Client Kit
Live Internal · open to discuss

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)
FlaskSQLiteResendHTTP Basic authPython
Scribe (auto-content stack)
Building Internal · open to discuss

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
FlaskNocoDBpgvectorSveltiaOpenRouter

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.

wsg-infra-audit
Live Internal · open to discuss

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
BashPythonGit
Self-hosted communication stack
Live Internal · open to discuss

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
DockerMattermostPlankaNocoDBKarakeepNginxCertbot