Live products
ScratchROI scratchroi.com · More info
Calculates the expected value of every state lottery scratch card.
Scraping pipelines across 29 states on self-hosted n8n. Six Claude Agent SDK agents build and maintain the product, splitting research, code review, and site updates.
Python · Playwright · n8n · FastAPI · Astro · Claude Agent SDK
Why
I wanted people to know the best scratchers before they bought them. The sites that do this math charge for it. Mine is free.
How
Scrapers run nightly. SQLite and FastAPI on my own server, static Astro frontend on Vercel. New states are onboarded by an agent pipeline that evaluates the lottery site, writes the scraper, and checks the output.
Result
29 states live and the whole thing runs unattended.
Daily Logic App Store · Play Store
Six word puzzles a day on iOS and Android.
Serverless REST backend I designed and run. GitHub Actions ships each day's puzzles automatically.
React Native · Node.js · Vercel Serverless · REST API · GitHub Actions
Why
The puzzles I played daily went behind a paywall. Mine are free.
How
A generator creates each day's puzzles and GitHub Actions deploys them. The Node API on Vercel handles caching, validation, and multiple response formats.
Result
Live on both app stores. New content ships every day with no manual step.
Automation and AI
AI Feedback Pipeline
Turns feedback submitted inside the Daily Logic app into structured CRM records.
Gemini structures each submission and the pipeline routes it into HubSpot. Runs in production.
Python · Gemini API · HubSpot API
Why
Reading and sorting user feedback by hand does not scale.
How
Gemini parses each in-app submission into structured fields and the pipeline writes them to HubSpot. Same pattern as my CRM integration work, with AI doing the parsing.
Result
Runs in production for Daily Logic. Feedback arrives as records I can act on instead of a pile to read.
Expo GDrive Sync GitHub
Local Expo Android builds without a paid build service.
Builds push to Google Drive with rclone and install straight from the phone.
Bash · JavaScript · React Native · rclone
Why
Expo charges for their cloud build service. I wanted the same loop for free.
How
Builds run locally and upload to Google Drive with rclone. Install straight from the Drive app on the phone.
Result
Replaced the paid service in the Daily Logic workflow. Open sourced for anyone hitting the same wall.
Game plugins
More Bank Fillers Plugin Hub · GitHub
RuneLite plugin with 5K+ installs that adds clean overlays for bank fillers, featured on the official Plugin Hub.
Java · RuneLite API
Why
The default bank fillers are an eyesore and I organize my bank a lot.
How
Overlays drawn through the RuneLite API. Passed the official Plugin Hub review to get listed.
Result
Live on the hub since 2022.
Godwars Protection Overlay Plugin Hub · GitHub
RuneLite plugin with 4K+ installs that highlights God Wars Dungeon protection items in the bank.
Java · RuneLite API
Why
Gearing for God Wars meant checking protection items one by one.
How
The overlay reads the bank and highlights owned items and active protections in place.
Result
Live on the hub since 2022.
Desktop utilities
ShiftAltF4 Download
Force-closes unresponsive programs when Task Manager and standard shortcuts give up.
Rust · Windows 10 and 11 · runs fully offline · 2.3 MB
Why
Some programs hang harder than Task Manager handles well. I wanted one hotkey that always works.
How
Kills the active process and nothing else. Written in Rust to stay ultra lightweight. Alternative to SuperF4.
Auto File Actions Download
Watches folders and runs commands on files as they arrive. Automation rules for your filesystem.
Each rule pairs a folder, a file pattern, and a command. Ships with a preset that fixes the PDF preview break from Windows update KB5066835.
Python · watchdog · PowerShell · Windows 11 · runs fully offline · v1.0
Why
Remote workers download files from company networks all day. Windows marks every one and breaks PDF previews. I built this for someone hitting that wall daily, so the fix happens on its own. Then I made it general.
How
Rules pair a watched folder with a file pattern and a command. Patterns take presets or custom globs. Commands come built in or you write your own with a file path placeholder. The watcher waits for each file to finish writing, runs the matching rule, and reports per-rule errors in a tray app.
Result
The preview fix is one preset rule. Anything else you want done to arriving files is one more rule.