Live data from Hacker News

Show HN: Draco – A single-binary, self-hostable Firecrawl alternative in Rust

github.com

1–10 of 13 posts

Show HN: Draco – A single-binary, self-hostable Firecrawl alternative in Rust

#1
Scraping modern websites has become a massive headache. You basically have two choices: pay for an expensive API like Firecrawl/Browserbase, or run a fleet of headless Chrome instances that eat 1GB of RAM per page and still get blocked by Cloudflare.

I built Draco to fix this. It’s a fast, single-binary web scraper written in Rust. You point it at a URL, and it spits out perfectly clean Markdown or structured JSON for LLMs.

The secret sauce is that it doesn't just boot a browser for every request. It uses a tiered escalation engine:

Tier 1 (Stealth Fetch): Draco uses a custom TLS/JA4 fingerprint to perfectly mimic a real browser's network signature at the packet level. It turns out a lot of anti-bot walls will let you right through if your handshake looks correct. In my benchmarks against sites like Cloudflare and Target, Playwright ate ~500MB of RAM and timed out. Draco bypassed them in under a second using just 20MB of RAM.

Tier 2 (V8 Isolate): If it hits a React/Next.js SPA that needs rendering, Draco boots an in-process V8 engine in single-digit milliseconds. It hydrates the DOM and intercepts the hidden JSON APIs the page is calling—giving you the raw data without the overhead of a graphical browser.

Tier 3 (Real Browser): If it hits an absolute wall, it seamlessly falls back to detecting and driving a real browser on your machine.

I also built in all the tooling to make it a complete drop-in replacement for the hosted services:

Daemon Mode: Run draco serve and you get a persistent HTTP server with a Firecrawl-compatible REST API. You can swap out your API keys and self-host immediately.

Built-in MCP Server: It natively exposes a Model Context Protocol server so you can plug it directly into Claude Desktop or your AI agents.

Web Search: Built-in parallel multi-engine web search (bypassing the need for a Google Search API key).

Interact Mode: Drive a page statefully like a devtools console, persisting cookies across navigations(for LLM's mainly).

It’s completely open source (MIT/Apache-2.0). I just wanted to put this out there for anyone tired of fighting headless Chromium or paying per-page scraping costs. Grab the binary and throw a difficult URL at it.

Note that it's still a WIP so there might be some unexpected breakages of uncommon sites but for the most part its quite capable, it can handle cf-protected sites and heavy SPA's while everything else fails partially or completely while taking longer or more resources. (tested on example.com, hackernews, cloudflare, glassdoor, bluff.com, target.com, stake.com and thrill.com)

┏━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┓ ┃ Rank ┃ Tool ┃ Score ┃ Pass ┃ Avg Time ┃ Avg RAM ┃ ┡━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━╇━━━━━━━━━━╇━━━━━━━━━┩ │ #1 │ Draco │ 769.7 │ 8/8 │ 3.45 │ 216.50 │ │ #2 │ Obscura │ 384.5 │ 4/8 │ 2.68 │ 87.59 │ │ #3 │ BrowserOxide │ 373.4 │ 4/8 │ 6.42 │ 105.95 │ │ #4 │ Playwright │ 342.2 │ 4/8 │ 1.71 │ 535.07 │ │ #5 │ Bouncy │ 196.6 │ 2/8 │ 0.59 │ 19.38 │ └──────┴────────────────┴───────┴──────┴──────────┴─────────┘

Repo: https://github.com/0xchasercat/draco/

Show HN: Draco – A single-binary, self-hostable Firecrawl alternative in Rust
github.com

Re: Show HN: Draco – A single-binary, self-hostable Firecrawl alternative in Rust

#6
post #2

It being vibe coded aside, does it support screenshots? I noticed the daemon mode has a lot of weird limitations too like not being able to return html.

It is WIP, as OP mentioned, so I wouldn’t expect it in this version…

Re: Show HN: Draco – A single-binary, self-hostable Firecrawl alternative in Rust

#8
post #4

Because we... Need more webpage scraping? It seems the scraping itself is much of the current internet traffic problem.

I think the biggest issue is that cloud providers turned something that's a cheap commodity (bandwidth) into something that needs to be nickel and dimed. There's a reason AWS is Amazon's most profitable division and it's certainly not because they offer the best value towards customers.

Re: Show HN: Draco – A single-binary, self-hostable Firecrawl alternative in Rust

#9
post #8
post #4

Because we... Need more webpage scraping? It seems the scraping itself is much of the current internet traffic problem.

I think the biggest issue is that cloud providers turned something that's a cheap commodity (bandwidth) into something that needs to be nickel and dimed. There's a reason AWS is Amazon's most profitable division and it's certainly not because they offer the best value towards customers.

You used to pay outright for bandwidth usage prior to AWS, too. (Colo facilities, webhosting, etc.)

On mobile and satellite you still have bandwidth caps. Sometimes on cable.

Re: Show HN: Draco – A single-binary, self-hostable Firecrawl alternative in Rust

#10
post #9
post #8

Earlier quoted context omitted.

I think the biggest issue is that cloud providers turned something that's a cheap commodity (bandwidth) into something that needs to be nickel and dimed. There's a reason AWS is Amazon's most profitable division and it's certainly not because they offer the best value towards customers.

You used to pay outright for bandwidth usage prior to AWS, too. (Colo facilities, webhosting, etc.) On mobile and satellite you still have bandwidth caps. Sometimes on cable.

The colo pricing is a fraction of a fraction of what AWS is charging. There's a reason that piracy video and file hosting sites can survive on just ads alone. If you try building something like YouTube on AWS you will go bankrupt in two days. The big cloud bandwidth pricing is the biggest scam ever. They don't want to charge up front for the human cost of running servers so they bake it an exorbitant overhead into the variable consumption cost hoping most web devs are too stupid too worry about it (it's usually Somebody Else's Problem).
Post reply on HN