How a deindexing forced me to rethink programmatic SEO, rebrand fast, and ship a release tracking tool that costs less than lunch
The Gut Punch
One morning I opened analytics expecting the same slow climb I’d seen all week. Instead: a flat line. In Search Console my site was completely deindexed - every page gone except the homepage. It felt like the results of my work had evaporated overnight. That gut punch became the unexpected start of Bingebase.
The Problem
The project began as DigitalReleaseDates, born from a very personal problem. I love watching movies at home, but I kept forgetting what I wanted to watch. I’d see a trailer on YouTube or a poster on the street and think, I’ll watch that when it hits streaming. Weeks later, I couldn’t remember the title or whether it was even out.
My “system” was clumsy: Google the digital release date (if it existed), open my phone’s Reminders app, set a notification for the date or the following weekend, and hope I didn’t miss it. Often the date wasn’t announced yet, so I wouldn’t set the reminder, which meant I’d forget the movie and discover it months after it released.
For a while, Kinopoisk (a Russian database and streaming service) had a digital release calendar that solved this for me. Every week or two I’d scan the calendar, see what was out or coming soon, and set reminders. It felt like a chore - but it worked. Then the one feature I relied on disappeared. The alternatives I found either had outdated UIs, weren’t updated as frequently as release dates change, or focused only on the main (hyped) releases. Nothing showed everything or was showing too much (like new releases of older movies). So I built the tool I wanted.
Before building, I tried a handful of services. JustWatch is excellent for “where to watch” by region and platform. Reelgood shines at cross-app discovery. TV Time is a strong mobile tracker. Next Episode and Simkl both cover tracking and calendars well. In other words, the ingredients existed - I just couldn’t get the specific mix and flow I wanted: a single place that combined accurate digital release dates, a clean calendar, and true set-and-forget email notifications. So I built the version that fit how I watch.
Rise, Crash, Rebrand
Fast-forward to April 2025: I shipped the first version of my digital-release calendar. I also had an older, mostly abandoned idea called Bingebase for tracking TV shows, but it never clicked and I’d stopped touching it. DigitalReleaseDates, though, had some traction. The traffic numbers were small but moving in the right direction. People were signing up and starting to receive release notifications. For the first time, I was using my own web project every day and other people found it useful too. That felt incredible.
Two weeks later the euphoria ended. Google nuked the site: every page except the homepage disappeared from the index, impressions dropped to zero, and clicks with them. I couldn’t find a single change that explained it. I was shipping regularly, but nothing that should have caused this.
The traffic graph stayed flat on Google. Nothing I tried helped. I read SEO threads, case studies, and long explainers. Eventually I found the most plausible answer: I’d tripped programmatic SEO / “scaled content abuse” by launching thousands of similar pages all at once - movies, TV shows, and seasons. I know movies and tv shows pages might be considered thin content, but calendars pages are definitely not thin and are exactly what some users want. But given the nature of the site, page counts grew daily from day one and probably Google algo considered all pages of the site to be useless. (See: Google’s policy on scaled content abuse and a primer on programmatic SEO.)
Google was gone, but I still had Reddit, X, and a few other communities. Bing and DuckDuckGo indexed my pages and were perfectly happy to send a trickle of traffic. Growth was slow, sometimes stagnant, but people kept signing up and adding titles to watchlists to get release day emails. That was enough to keep me building.
As I shipped more features, the name DigitalReleaseDates stopped fitting. The product was turning into a home base for everything people watch: digital release dates for new movies, watch progress, watchlists, episode guides, ratings, reviews, and comments. The old name had SEO potential because of the exact-match domain, but the scope had outgrown it. I rebranded to Bingebase, moved DRD to a more suitable domain, and retired a chunk of the old code along the way.
The next hit came from the domain change. I followed the documented steps for a site move, but you should expect some traffic drop anyway. For a couple of months I thought I’d made a mistake and should’ve stayed on the old domain. Then things settled. Search traffic not only recovered - it doubled. If you have massive traffic, a domain move is a different risk calculation. I didn’t. With almost nothing to lose on Google, the rebrand was worth it.
A $36/Month Stack That Ships
I’m a full-stack engineer, so I optimized for shipping speed and price.
- Ruby on Rails + PostgreSQL - the stack I know best, which meant v1 shipped in roughly two weeks.
- Dokku - an open source PaaS. There’s some setup, but once it’s in place deployment is painless and free
- Hetzner VPS for app and infra
- Cloudflare for images and CDN (around $0.30/mo at my scale)
- Resend for email notifications
- TMDB and TVDB for metadata
I followed this excellent step-by-step guide for deploying Rails with Dokku on Hetzner (Redis, Sidekiq, ARM Docker, domains, and Let’s Encrypt): Deploying Ruby on Rails with Dokku on Hetzner
Monthly costs: 2 Hetzner VPS: $16, Resend: $20 → $36/month total.
Keeping Release Dates Accurate
One of the Hetzner instances runs infra that supports Bingebase: Umami for analytics and a Crawl4AI instance, all managed with Coolify - a self-hosted, open-source PaaS I’ve liked.
Release dates change constantly. Rumors spread. Some sites publish incorrect dates. APIs can lag. I want Bingebase to be the best source for streaming release dates, so I built a small pipeline to keep data accurate:
- Rails background jobs trigger Crawl4AI to fetch pages.
- Scraped content goes to an LLM for normalization (I use DeepSeek right now).
- The service compares fields, flags changes, and updates the database when a date moves.
That way, Bingebase is processing data from APIs and from other sources across internet also, helping to keep dates as accurate as possible.
Set It and Forget It
Even when a date isn’t announced yet, you can search a movie and add it to your watchlist. Then forget it. When streaming day arrives, an email shows up. No more calendar hacks. No more “was that out already?”
If you’re planning cinema nights - or tracking what’s next on streaming - the new movies in theaters calendar helps with that. When a title has no digital date yet, add it to your watchlist and you’ll get an email the day it goes live.
Beyond films, Bingebase keeps up with new tv shows, seasons and episodes, so it’s easy to follow what’s starting this month and keep track of what you are watching now.
Where We Are, What’s Next
As I write this, Bingebase is about six months old. I’ve worked on it almost every day - some days for hours, some days for half an hour. Google still doesn’t index my pages (the homepage appears only on exact match searches like “bingebase”), but users keep returning, which is what matters.
Right now I’m seeing around 500-600 daily visits and 2 - 8 signups per day. Next up: custom shareable lists, per episode notifications, data export/import, scrobbling, mobile apps. Some of that might become revenue. But all of it should make Bingebase more useful for users and for me.
A Note to Indie Hackers
If you love the work, keep going. Build for real people, including yourself. Algorithms change. Momentum compounds. Grind a little every day - and keep shipping until the first dollar arrives.