A free, community-curated, Wikipedia-style library of internet resources — in English and Portuguese.
ipl.better-web.org ·
GitHub organization ·
a project of the Better Web Initiative
This repository is the website: Jekyll layouts, plugins, design system, YAML data and the build that generates every category, subcategory, section and wiki page. Page content for each language lives in its own repository, included here as a git submodule.
- A library tree — 8 categories, 106 subcategories and 42 sections per language, generated from
_data/<lang>/menu.yaml, each with an article page, a community wiki page and a discussion. - Curated resources — sites, tools, databases, courses, publications and events per topic
(
_data/<lang>/<category>/<subcategory>/<type>.yaml, see spec 002). - Wikipedia-style reading — main-page portal, article layout with infobox, contents and Article/Talk/Edit tabs, random resource, research panel with live external sources (Wikipedia, OpenAlex, arXiv, ORCID, …).
- Honest contributions — every "Edit" and "Suggest a resource" opens a reviewed change on GitHub; no accounts.
- Accessible by default — WCAG 2.2 AA checked with axe on every reference page, light theme by default and an optional dark mode, keyboard support throughout.
| Repository | Role |
|---|---|
| IPLibrary-website (this) | Site, design system, data and build |
| en-US | English pages (submodule en-US/) |
| pt-BR | Portuguese pages (submodule pt-BR/) |
| contribute | Service: signed-in edits and suggestions as reviewed pull requests (fork of Staticman) |
| discuss | Service: comments with GitHub or ORCID sign-in (fork of giscus) |
_data/<lang>/ menu.yaml (the library tree), translations.yaml, curated resources
_layouts/ language_index (home), topic (category/subcategory), section, wiki, info, random …
_includes/components/ atoms, molecules, organisms, templates (research panel)
_plugins/ page and wiki generators, search index (flat /api/<lang>/search-index.json)
assets/css/ design tokens, Tailwind palette remap, page styles
docs/specs/ specs (ROADMAP.md lists them) · docs/adr/ decisions
test/ e2e/ Minitest build suite · Playwright end-to-end and accessibility suites
Design decisions: spec 001, ADR 0002. Roadmap: docs/specs/ROADMAP.md.
Suggest resources, fix pages, translate or improve the code — see the contribution guide and the org's CONTRIBUTING.md. Issues and pull requests use templates with an ELI5 summary and an AI-use disclosure. Code owners review every change.
Content lives in the en-US and pt-BR git submodules, so initialize them first:
git submodule update --init --recursiveThe site requires Ruby 3.2.2 (see Gemfile). With a matching Ruby:
bundle install
bundle exec jekyll serve # http://localhost:4000Without Ruby 3.2.2 installed, run the same server in Docker:
docker run -d --name iplibrary-dev -p 4000:4000 \
-v "$PWD":/srv/site -v iplibrary-gems:/usr/local/bundle -w /srv/site \
-e BUNDLE_PATH=/usr/local/bundle ruby:3.2.2 \
bash -c "bundle install && bundle exec jekyll serve --host 0.0.0.0 --port 4000"Restart the server after editing anything in _plugins/ or _config.yml; Jekyll only picks those up on startup.
| Suite | Command | What it checks |
|---|---|---|
| Build (Minitest) | yarn test:unit |
Builds the whole site into a temp dir and checks page generation, rendered components and that every internal link resolves. |
| End-to-end (Playwright) | yarn test:e2e |
Drives a real browser (desktop and mobile) against the running server: language redirect, category/section/wiki navigation, language switcher, pt-BR header links, no uncaught script errors. |
| Accessibility (axe) | yarn test:e2e |
WCAG 2.2 AA (no serious/critical issues) on every reference page, light and dark. |
| HTML / links | yarn test:html |
htmlproofer over _site. |
- Minitest lives in
test/and runs throughrake test. With Docker:docker exec iplibrary-dev bundle exec rake test. - Playwright lives in
e2e/, a separate Yarn project withnodeLinker: node-modules, because Playwright does not run under the root Plug'n'Play install. The first time, runyarn test:e2e:installto download Chromium. Tests reuse a server already on port 4000; point them elsewhere withE2E_BASE_URL.
Curated entries link to and credit their publishers in the organization field; IPL writes its own names and
descriptions and does not copy their content. Developer roadmaps are linked from roadmap.sh,
whose roadmaps remain theirs (their licence allows sharing links, not republishing the content).
Code and content are released under the terms in LICENSE. The Source Sans 3 and Source Serif 4 fonts in
assets/fonts/ are under the SIL Open Font License (license files alongside them).
