πŸ‡°πŸ‡· ν•œκ΅­μ–΄ πŸ‡ΊπŸ‡Έ English

Network Feed Hosting Specification

When a community hosts a news.json-formatted file on its own domain, a Loopback Social bot pulls it every 6 hours and surfaces the items on the banner and public feeds. This document is the operator guide for the self-publishing path (Step 2 Option 1 on the homepage).

End-to-end flow

  1. Publish a JSON array on your domain conforming to news.schema.json. Example: https://forum.example.com/loopback.json. To split by language, run two URLs like loopback.ko.json / loopback.en.json.
  2. Submit a community registration issue with those URL(s) in the "Network news source" field.
  3. After a maintainer merges the registration, aggregate-network.mjs pulls the most recent active items every 6 hours.
  4. From then on you just update your own file; the next cycle reflects the change automatically. No further PRs to us.

The banner always displays the origin as a [Community Name] Message prefix, and the same metadata appears in all public RSS/Atom/JSON Feed outputs.

Minimum requirements

Item selection rules

Source metadata (_source)

Every picked-up item gets the following _source object stamped in automatically. Any _source the community put in the payload is overwritten.

{
  "_source": {
    "community": "kebab-slug",
    "community_name": { "ko": "λ‹·λ„·λ°λΈŒ", "en": ".NET Dev" },
    "community_url": "https://forum.dotnetdev.kr/",
    "source_url": "https://forum.dotnetdev.kr/loopback.json",
    "lang": "ko"
  }
}

The banner runtime reads _source.community_name and prepends a [Community Name] Message prefix automatically. The same info also appears in the _loopback_social extension of the RSS/Atom/JSON Feed outputs so subscribers can identify the origin.

Refresh cadence and caching

Failure behavior

Item lifecycle

Items whose end is in the past stay in docs/news.network.json for 30 days so RSS/Atom/JSON Feed subscribers can catch up on recent changes. They are removed automatically afterwards.

Local validation

Check your JSON against the schema before going live:

npx ajv-cli@5 validate \
  -s https://loopback.social/schemas/news.schema.json \
  -d my-news.json \
  --strict=false --all-errors

To run the aggregator against the registered communities yourself:

git clone https://github.com/loopback-social/community-network-banner
cd community-network-banner
npm install --no-save ajv@8
node .github/scripts/aggregate-network.mjs
# β†’ results are written into docs/news.network.json

Related