Skip to content

Webpage Integration: Learn #2403

@henryajisegiri

Description

@henryajisegiri

Goal

Wire up the Learn page to pull dynamic content from the database and Wagtail, and implement the library category carousel with randomised ordering.

Figma Link


Scope

Full-stack: data fetching for library categories, post cards, and redirect wiring.


Acceptance Criteria

  • Wire the page to the nav bar

Browse our libraries — category carousel

  • Library categories are fetched from the database.
  • The order of categories displayed in the carousel is randomised on each page load.
  • Each category card displays:
    • Category name
    • Short description (managed via Wagtail)
    • Library count (number of libraries in that category, sourced from the database)
  • The "Start here" CTA on each card routes to the library list page pre-filtered by that category (e.g. /libraries?category=algorithms).

Posts from the Boost community

  • The 4 most recent posts are fetched from the database, ordered publish date descending. Note: a separate ticket to implement an algorithm that orders the posts based on a combination of views and recency will be an optimization.
  • Each post card displays: title, publish date, post type, related library tags, author avatar, author name, and author role/badge.
  • The "View all posts" CTA routes to the posts feed page.
  • Dev Note (@julhoang): The Latest Posts Card appears on multiple pages (Homepage, Community, Learn), and several other pages use variants with slightly different query params. Since all variants return the same object shape, we should establish a shared pattern – e.g., a context provider or a reusable data-fetching hook – so the component can consume its data consistently without being redeclared per page.

Static sections

The following sections require no backend integration and are hardcoded:

  • Hero — heading, subheading, and illustration.
  • I want to learn / I want to contribute — both cards including body copy, links, CTAs, and images.
  • Why Boost? — all six feature cards including headings and descriptions.

FE/BE Actions

Description URL
Fetch all library categories with library count and description
Fetch 4 most recent posts
Mailing list submission flow

Redirects

Label Destination URL
Explore common use cases Use cases section in user guide https://www.boost.org/doc/user-guide/common-introduction.html
Build with CMake CMake section in user guide https://www.boost.org/doc/user-guide/building-with-cmake.html
Visit the FAQ FAQ section in user guide https://www.boost.org/doc/user-guide/faq.html
Contribute to an existing library Contributor Guide https://www.boost.org/doc/contributor-guide/contributors-faq.html
Learn about formal reviews Formal review docs https://www.boost.org/doc/formal-reviews/submissions.html
Visit the Contributors FAQ Contributors FAQ page https://www.boost.org/doc/contributor-guide/contributors-faq.html
Get started with Boost Getting started user guide https://www.boost.org/doc/user-guide/getting-started.html
Propose a new library Library proposal page https://www.boost.org/doc/contributor-guide/requirements/library-requirements.html
Start here (per category card) Library list filtered by category https://www.boost.org/doc/user-guide/getting-started.html
Watch now Boost GitHub watch URL https://github.com/boostorg/boost
Join now Slack invite URL https://cppalliance.org/slack/
Get involved GitHub issues page https://github.com/boostorg/boost/issues
Explore the community Community page https://www.boost.org/community/
Explore our history History page https://www.boost.org/doc/user-guide/boost-history.html
View release calendar Release calendar page https://www.boost.org/calendar/
View all posts Posts feed page https://www.boost.org/news/

Note: Confirm destination URLs for all external links and internal routes before implementation.


Out of Scope

  • Mailing list subscription form
  • Release calendar rendering

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions