DEV Community

Cover image for I Built a Hosting Comparison Platform with Astro, Svelte 5 & Hono
HostingSift
HostingSift

Posted on

I Built a Hosting Comparison Platform with Astro, Svelte 5 & Hono

I got tired of hosting comparison websites. You know the ones. "Top 10 Best Hosting 2024" articles that haven't been updated since 2022, prices that are completely wrong, and rankings that suspiciously always put the same provider first no matter what.

So I decided to build my own. Not a blog post with affiliate links, but an actual tool where you can filter by hosting type, compare plans side by side, and see prices that are actually current. After about six months of work, HostingSift is live and I figured I'd share what went into it.

Why This Stack

Astro in hybrid SSR mode was the obvious pick. Most pages (hosting profiles, categories, homepage) get prerendered at build time, which means they're fast out of the box. A few routes like the comparison tool need server rendering, and Astro handles that switch per-page which is really convenient.

For interactive bits I went with Svelte 5. I was on React before and honestly the new runes API ($state, $derived, $effect) won me over pretty quickly. No dependency arrays, no stale closures, components feel lighter. It took maybe a week to get comfortable with the mental model shift and after that I didn't look back.

The backend is Hono on Node.js. Think Express but with actual TypeScript support and better performance. It handles auth, the admin panel API, affiliate click tracking, all that stuff. Database is PostgreSQL with Drizzle ORM which has been solid for both queries and migrations.

Everything lives in a monorepo: apps/web, apps/api, packages/db, packages/email. pnpm workspaces glue it together.

Keeping Prices Up to Date

The whole point of the site is showing accurate pricing, so I built an automated pipeline that pulls plan data from each provider on a weekly schedule. Every plan, every billing period, every feature toggle. It compares incoming data against what's already in the database and upserts the differences. Each run also creates a snapshot, so if a provider quietly bumps their renewal price by $2/month, that gets recorded. Over time this builds a price history for every single plan.

Getting the data right for each provider was the biggest time sink. Every provider structures their pricing page differently. Some have clean layouts, others hide plans behind tabs and dropdowns, and a few change their page structure often enough that things break. You end up writing very provider-specific logic and accepting that maintenance is part of the deal.

Things I'd Do Differently

I'd spend more time on data validation early on. I almost "fixed" what looked like a pricing bug for one provider before checking their actual website. Turns out they give their biggest promotional discount to mid-tier plans, not the cheapest ones. Now I always verify against the source before touching anything in the database.

Svelte 5 + Astro is a great combo but the ecosystem is still catching up. Some things that are one-line solutions in React/Next don't have equivalents yet. The tradeoff is worth it though, the output is noticeably lighter and the developer experience is genuinely good.

Try It

HostingSift is live if you want to check it out. You can filter by hosting type, compare providers, see current prices. Still adding more providers and features so if something looks off or you have ideas, I'd love to hear about it in the comments.

Top comments (2)

Collapse
 
apogeewatcher profile image
Apogee Watcher

This looks very nicely done. After you have data for a few months it would be cool to have some historical data for price evolution.

Collapse
 
hostingsift profile image
HostingSift

Thanks for the feedback!
Historical price tracking is definitely on the roadmap, we're already storing price snapshots in the background, so once we have a few months of data, I plan to add price evolution charts for each provider. Stay tuned!