Source for blogroll.it — a feed aggregator for Italian sites.
- Go 1.25+
- Node.js 24+ (for Astro/npm)
npm install # fetch feeds and write src/data/ (runs go run main.go via postinstall)
npm run build # Astro build → dist/
npm run dev # start Astro dev server at localhost:4321
npm run preview # serve dist/ locallyTo fetch feeds manually without going through npm:
go run main.go # fetch feeds, write src/data/
go run main.go -opml <file> # use a different OPML fileTwo-stage build: Go fetches the RSS/Atom feeds and writes JSON to src/data/; Astro reads that JSON and generates the static site in dist/.
Feed results are cached in cache.json using ETag/Last-Modified headers for efficient conditional GET on subsequent runs.
The easiest way is to open a "Proponi un sito" issue: fill in the site name, URL, and Italian-only feed URL. An automation parses the issue and opens a PR that adds the entry to public/ita.opml for review — a separate Validate submitted feed check fetches the added feed and fails the PR if it's unreachable or unparseable.
blogroll.it lists Italian-language sites only; sites with English content aren't published, so submit a feed that contains only Italian posts.
You can also edit public/ita.opml directly and open a PR yourself. Either way, the next build picks up the change.
To report a site for removal, open a "Segnala un sito per la rimozione" issue with the URL and reason. Removals are reviewed manually — no automated PR is opened.
main.go is a fork of peterc/engblogs by Peter Cooper.