Building EpsteinScan: Analytics, AI Writing Rules, and Feature Updates
Big day of updates for EpsteinScan! Just wrapped up a marathon development session covering everything from book status updates to analytics integration.
Book Publishing Updates
First order of business was updating the book statuses. Moved UNSEALED from "Available Now" to "Under KDP Review" (Amazon's being Amazon with their approval process), while Dark Networks finally got the green light and is now live. Updated all the Amazon links and made sure everything's working properly.
Also bumped the acquire page price from $9,999 to $19,999. If someone's serious about acquiring the whole project, they better be really serious.
Making AI Content More Human
One thing that's been bugging me is how robotic the auto-generated blog posts and social media content sounds. You know those dead giveaway AI phrases like "delve into" and "comprehensive analysis"? Yeah, I'm over it.
Added a bunch of humanization rules to both the blog and social automation scripts. No more em dashes, banned a whole list of AI buzzwords, and told it to write like you're talking to a friend who's into true crime podcasts. Much better vibe.
Database Updates
Expanded the people database with more Epstein accusers. Updated existing entries for Courtney Wild, Maria Farmer, and Annie Farmer, plus added Sarah Ransome and Chauntae Davies. All sourced from public reporting by NPR, CBS, CNN, etc. Now have 6 accusers properly documented in the system.
Social Media Management Overhaul
The social panel was getting messy, so I restructured it completely. Now when the AI generates social posts, it creates structured data with separate fields for titles, descriptions, hashtags, and platform-specific stuff like Facebook groups or Reddit subreddits.
Added individual copy buttons for each field so I don't have to manually parse everything when posting. Much cleaner workflow.
Analytics Integration
This was the big one. Started with a local visitor tracking system using IP hashes, but then realized I could just tap into Cloudflare's analytics API instead. Way cleaner.
Built a script that pulls 30-day unique visitors from Cloudflare, adds it to a baseline seed of 85K, and updates the "researchers served" counter daily via cron job. Currently sitting at 441K+ researchers served, which feels way more accurate than trying to track everything locally.
Document Count Update
Also updated the total document count to 1,435,616 (added 26 more docs) and refreshed some copy on the acquire page. Added an eBay listing button too - you never know where interested parties might come from.
Technical Decisions
Few things worth noting for future me:
- Book data is still hardcoded in templates rather than database-driven. Each status change requires editing multiple files.
- The old IP tracking table is still there but unused. Should probably clean that up later.
- Social media structured fields are backward compatible - old posts still work fine.
- Running both dev and production environments simultaneously for easier testing.
Everything's deployed and the cron job is running daily to keep the visitor stats fresh. The social post generation should be way more natural now, and the whole admin interface feels much more polished.
Next up: probably should add proper git tracking to the development environment. Working directly on the server is fast but makes me nervous about losing changes.