One Alap expression can pull data from three completely different sources and merge the results into a single menu. Same grammar, same operators, mixed origins.
allLinks — static, hand-curated · :web: — Open Library JSON API · :atproto: — Bluesky / AT Protocol
For reference — what each source looks like individually.
<a class="alap" data-alap-linkitems=".orgs">Curated orgs</a>
<a class="alap" data-alap-linkitems=":web:books:decentralization:">Books: "decentralization"</a>
<a class="alap" data-alap-linkitems=":atproto:feed:eff.org:limit=3:">EFF — recent posts</a>
Comma-separated scopes — each fetches from a different source, results appear in one menu in order.
Decentralization: orgs + books + EFF posts — static + :web: + :atproto:
Bebop jazz: orgs + books + Internet Archive posts — same pattern, different topic
Architecture: orgs + books + AT Proto people — static orgs, book search, and live people search
Coffee: orgs + books + Nature posts — because why not
// Three data sources in one expression:
// 1. (.orgs *limit:2*) — static allLinks
// 2. (:web:books:decentralization:) — Open Library API
// 3. (:atproto:feed:eff.org:limit=3:) — Bluesky AT Protocol
<a class="alap" data-alap-linkitems="(.orgs *limit:2*), (:web:books:decentralization:), (:atproto:feed:eff.org:limit=3:)">Decentralization</a>
<a class="alap" data-alap-linkitems="(.orgs *limit:2*), (:web:books:bebop:), (:atproto:feed:archive.org:limit=3:)">Bebop jazz</a>
<a class="alap" data-alap-linkitems="(.orgs *limit:2*), (:web:books:architecture:), (:atproto:people:atproto:limit=3:)">Architecture</a>
<a class="alap" data-alap-linkitems="(.orgs *limit:2*), (:web:books:coffee:), (:atproto:feed:nature.com:limit=2:)">Coffee</a>
Union across sources — not just comma separation.
Union: orgs | books | EFF posts
— flat merge with | (OR)
<a class="alap"
data-alap-linkitems=".orgs | :web:books:decentralization: | :atproto:feed:eff.org:limit=2:"
>Union: orgs | books | EFF posts</a>
Uses GitHub search API instead of Open Library. Verifies :web: protocol works when the upstream API is available.
Decentralized protocol repos — GitHub stars
Architecture/design system repos — GitHub stars
Coffee repos — GitHub stars
Mixed: orgs + GitHub repos + EFF posts — three sources, one menu
The config powering this page — all three protocol registrations and the static allLinks entries.