What I Found Building HN Trends: 18 Years of Comments, Zero External Dependencies

Someone just indexed 18 years of Hacker News comments and made them searchable. While everyone's debating the trends it reveals, I'm stuck on something else entirely: they own their entire stack.
No external APIs. No rate limits. No OAuth flows. They scraped everything, stored it locally, and built their search on top of their own data. In 2024's API-everything landscape, this feels almost radical.
The Architecture That Caught My Attention
Walking through their technical setup, I kept hitting moments where I expected to see the usual suspects—Algolia for search, some cloud database, maybe a third-party analytics service. Instead, they chose the harder path at every decision point.
They built a scraper that methodically worked through HN's API, storing everything in their own database. The search runs on their infrastructure. The visualizations pull from their data store. When someone queries 18 years of comments, no external service gets pinged.
This means no rate limiting during viral traffic spikes. No surprise API pricing changes. No service deprecations that break core functionality. No OAuth flows that mysteriously stop working.
The whole thing just… runs.
What "Owning Your Stack" Actually Means
I've watched too many of my own tools break when dependencies change. That Chrome extension that stopped working when Google shifted their API. The dashboard that went dark when a third-party service pivoted their pricing model. The integration that became unreliable when rate limits tightened.
There's a difference between "it works" and "it keeps working." The HN Trends project sits firmly in the second category.
I started calculating storage costs versus API costs over time. For most projects I build, the math is telling: a few gigabytes of local storage costs less per year than a few thousand API calls per month. Yet I keep defaulting to the API option because it feels faster to get started.
The real constraint isn't usually the API cost—it's the rate limits. You hit them right when your tool gets interesting, right when people want to use it most.
The Uncomfortable Trade-offs I Keep Avoiding
I know this pattern well, but I keep making the same choices. External APIs feel like the pragmatic move. They handle scale, security, updates. Someone else maintains the infrastructure while I focus on the "core product."
But there's an initial complexity tax I've been reluctant to pay. Setting up proper data storage, building reliable scrapers, handling edge cases in my own pipeline—it all takes longer upfront. My default mode optimizes for getting something working quickly, not for building something that stays working.
I've been trading long-term resilience for development speed, and I'm starting to question whether that trade-off makes sense for the kinds of tools I actually want to build.
What This Project Made Me Question
Looking at HN Trends made me uncomfortable about my own technical choices. Most of my recent projects run on serverless functions, pulling data from various APIs, storing minimal state. It feels modern and scalable, but it's also fundamentally fragile.
Each external dependency is a potential failure point. Each API is someone else's business decision away from changing or disappearing. I've optimized for launch speed while accumulating what I'm starting to think of as "dependency debt."
When you own your data pipeline, your relationship with that data changes. You can experiment freely, build custom indexes, correlate across datasets in ways that external APIs don't support. The HN Trends maintainer can slice their dataset however they want, whenever they want.
Most of my tools can only ask the questions their APIs were designed to answer.
The Deeper Pattern Here
There's something here about tools that survive versus tools that scale quickly. The projects I still use from five years ago tend to be the ones that made fewer external dependencies, not more.
Independence has costs—infrastructure complexity, maintenance overhead, upfront development time. But dependence has costs too, and they compound over time in ways that are hard to predict.
I keep noticing that the most interesting technical decisions aren't algorithmic—they're architectural. They're about choosing constraints that let you build the thing you actually want to build, not just the thing that's fastest to ship.
The infrastructure philosophy shapes everything else. When you own your stack, you can optimize for different things: durability over scalability, independence over convenience, long-term capability over short-term speed.
I keep thinking about the HN Trends maintainer making a conscious choice to own their entire pipeline. It's not just about avoiding API rate limits—it's about building something that can't be turned off by someone else's business decisions.
Makes me wonder what my projects would look like if I optimized for durability instead of launch speed.