A fast web interface for extracting the main content from web pages and HTML into clean Markdown. Powered by the feyninc/pulpie-orange-small 210M EuroBERT encoder model.
You can try the in-browser WebGPU version with no local setup required:
- Live Demo: pulpie.pinkpixel.dev
- WebGPU Space Repository: huggingface.co/spaces/sizzlebop/pulpie-webgpu
Most modern content extractors either use brittle heuristics (regular expressions and readability rules) or heavy generative models (decoders) that generate text token by token.
Pulpie takes a different path:
- Single-pass encoder: Instead of generating text from scratch, it tokenizes the page into blocks and classifies every block as content or boilerplate in a single forward pass.
- Fast and light: The recommended 210M model matches state-of-the-art extractors while running up to 20x faster. On an RTX 4090 GPU, extractions take around 15 to 40 milliseconds.
- Clean Markdown with images: It keeps headlines, paragraphs, code, and images while stripping navigation bars, sidebars, cookie banners, tracking pixels, and footers.
- Live URL and Raw HTML modes: Paste any webpage URL or raw HTML string.
- Automatic image link resolution: Relative image URLs are resolved to absolute URLs against the page origin so images render in Markdown previews.
- Hardware accelerated: Auto-detects NVIDIA CUDA and Apple Silicon MPS, with CPU fallback.
- Reader Preview & Raw Markdown: Instant side-by-side or tabbed inspection of formatted reader view, syntax-colored Markdown, and reconstructed HTML.
- Block statistics: Inspect kept blocks versus dropped boilerplate, retention rate, and GPU inference latency.
- Copy & Export: One-click copy for Markdown or clean HTML, and one-click
.mdfile download. - Mobile friendly: Full touch and tap support, responsive layouts down to 320px, and keyboard shortcuts (
Enterto extract).
- Python 3.10+
uv(recommended) or standardpip- NVIDIA GPU with CUDA (optional, CPU mode is supported automatically)
-
Clone or navigate to the project directory:
git clone https://github.com/pinkpixel-dev/pulpie.git cd pulpie -
Run the startup script:
./run.sh
run.shwill set up the virtual environment, install the required packages, and launch the server. -
Open your browser to:
http://localhost:8000
uv venv .venv
source .venv/bin/activate
uv pip install -r requirements.txt
python app.pyThe backend exposes a clean REST API:
curl http://localhost:8000/api/healthResponse:
{
"status": "ok",
"model": "feyninc/pulpie-orange-small (210M EuroBERT)",
"device": "cuda",
"device_name": "NVIDIA GeForce RTX 4090 Laptop GPU",
"cuda_available": true,
"vram_allocated_mb": 412.79
}curl -X POST http://localhost:8000/api/extract \
-H "Content-Type: application/json" \
-d '{"url": "https://usefeyn.com/blog/pulpie-pareto-optimal-models-for-cleaning-the-web/"}'curl -X POST http://localhost:8000/api/extract \
-H "Content-Type: application/json" \
-d '{"html": "<html><body><main><h1>Sample</h1><p>Main content text.</p></main></body></html>"}'Apache 2.0. See LICENSE for details.