Try the summarizer
This is the exact extractive algorithm from briefbot's Go core, ported to JavaScript and running in your browser. Paste an article and watch it pick the key sentences.
Summary
The API
The Go server exposes a small JSON API. Items are created in the pending state and processed by background workers (pending β processing β done).
POST | /items | save a URL {"url": "..."} β scrape + summarize (async) |
GET | /items | list saved items, newest first |
GET | /items/{id} | fetch one item |
PATCH | /items/{id}/read | mark as read |
DELETE | /items/{id} | delete an item |
GET | /digest | today's briefing (?format=md for Markdown) |
GET | /events | Server-Sent Events stream of status changes |
$ go run ./cmd/server &
$ curl -X POST localhost:8080/items -d '{"url":"https://go.dev/doc/"}'
$ curl "localhost:8080/digest?format=md"
How it's built
- Zero dependencies β stdlib
net/http(Go 1.22 routing), regex-based readability, an extractive summarizer. - Pluggable interfaces β
Store,Fetcher, andSummarizerare swappable (drop in Postgres, or an LLM summarizer). - Async job queue β background workers process items and emit events over SSE.
- Tested β
go test ./...covers the summarizer, scraper, store, pipeline, and HTTP handlers.