A single-page website summarizer. Paste a URL, get a structured brief.
pnpm install
cp .env.example .env.localEdit .env.local:
| Variable | Purpose | Default |
|---|---|---|
API_URL |
OpenAI-compatible base URL | http://localhost:11434/v1 |
API_TOKEN |
API key / bearer token | — |
MODEL_NAME |
Chat model name | llama3.2 |
pnpm devOpen http://localhost:3000.
- The browser posts a URL to
POST /api/summarize. - The route rate-limits by client IP: 10 requests per UTC day, stored in an in-memory map.
- The server fetches the page, strips scripts/styles/links/images, and sends the remaining text to the configured model with the notebook system prompt.
- The model streams a JSON object (
title,summary,sections) and the page renders that fixed layout.
The in-memory limiter is per process. It resets on restart and is not shared across multiple instances.