diff --git a/Makefile b/Makefile
index 741bc7bfbb8..765305b6111 100644
--- a/Makefile
+++ b/Makefile
@@ -33,9 +33,15 @@ requirements: ## install ci requirements
# Instead of having this directly in the build-docs script
# in the top-level package.json, put it here so we can have
# a single source of truth and get proper error codes in CI
+#
+# ✨ For our prototype, we're overriding the docs build so we can see the new storybook on Netlify
.PHONY: build-docs
build-docs:
- npm run build --workspace=www
+ cd prototype && npm install
+ cd prototype && npm run build
+ cd prototype && npm run build-storybook
+ rm -rf www/public
+ cp -r prototype/storybook-static www/public
# npm swallows errors
# see https://github.com/openedx/paragon/issues/3329
diff --git a/docs/decisions/0022-modernization-remove-bootstrap.rst b/docs/decisions/0022-modernization-remove-bootstrap.rst
new file mode 100644
index 00000000000..a7e3b63bde5
--- /dev/null
+++ b/docs/decisions/0022-modernization-remove-bootstrap.rst
@@ -0,0 +1,201 @@
+22. Modernization: Removing Bootstrap and Modernizing the Toolchain
+-------------------------------------------------------------------
+
+Status
+------
+
+Proposed
+
+Context
+-------
+
+Paragon is a mature, accessibility-focused React component library. Its public
+surface has two stable, widely-depended-upon contracts:
+
+1. The **React component API** — ~99 exports whose props are consumed by dozens
+ of Open edX micro-frontends (MFEs).
+2. The **design-tokens theming API** — a ``style-dictionary`` pipeline that
+ compiles DTCG-style token JSON into CSS custom properties, shipped as
+ ``core.css`` / ``light.css`` and overridden by ``@edx/brand`` packages.
+
+Underneath those contracts, however, Paragon rests on aging foundations:
+
+- **Bootstrap 4** provides both a *behavior* layer (34 components wrap
+ ``react-bootstrap`` sub-components) and a *style* layer (``core.scss`` imports
+ ``~bootstrap/scss/{reboot,root,mixins,transitions,grid,...}``). Bootstrap 4 is
+ no longer actively developed, is built on legacy SCSS, and blocks adoption of
+ modern CSS and tooling. ``react-bootstrap`` v1 targets Bootstrap 4 and is
+ effectively frozen for our purposes.
+- The **build** relies on Babel + ``tsc`` + a hand-written ``Makefile``.
+- **Tests** run on Jest with ``ts-jest`` / ``babel-jest``.
+- The **documentation site** runs on Gatsby 5 with
+ ``gatsby-transformer-react-docgen`` and ``react-docgen`` v5, which parses
+ JavaScript rather than our TypeScript types. This makes props tables
+ unreliable and the doc pipeline difficult to maintain.
+
+Two properties of the current codebase make modernization tractable rather than
+requiring a hard fork:
+
+- Paragon components are already **thin adapters**: Paragon owns the public prop
+ API and delegates internals to ``react-bootstrap``. Swapping the internal
+ engine does not, by itself, change the public API.
+- The **theming/token pipeline is already Bootstrap-independent**. Components
+ reference token-derived CSS custom properties; the ``source: $scss-var`` field
+ on each token is only a back-compat bridge to Bootstrap SCSS variables. The
+ emitted ``core.css`` / ``light.css`` contract does not depend on Bootstrap.
+
+A TypeScript migration is also already ~half complete (roughly 31 ``index.tsx``
+vs. 27 ``index.jsx`` at time of writing).
+
+This ADR supersedes the direction of:
+
+- **ADR 0004** (Usage of Bootstrap) and **ADR 0009** (Usage of React-Bootstrap),
+ which established Bootstrap and ``react-bootstrap`` as foundations.
+
+It also revisits **ADR 0006** (Removal of CSS Module Support). ADR 0006 removed
+CSS Modules for one specific reason: component SCSS files imported Bootstrap
+*partials* (mixins/variables) that drifted between Bootstrap minor versions and
+caused compile errors in consuming apps. Once Bootstrap SCSS is removed
+entirely, that objection no longer applies — the CSS Modules reintroduced here
+consume only Paragon's own token CSS custom properties, never Bootstrap
+partials.
+
+Decision
+--------
+
+We will re-implement Paragon on modern, fully-typed foundations while preserving
+both public contracts (the React component API and the design-tokens theming
+API). The change is delivered **incrementally** — swapping engines behind stable
+APIs — not as a big-bang rewrite.
+
+Concretely:
+
+1. **Behavior layer → React Aria Components.** Replace ``react-bootstrap`` with
+ `React Aria Components
Your stuff goes here.
+ +); + +export const defaultOpen = ( +Your stuff goes here.
+See the console.
+Your stuff goes here
+The content
+ +Your stuff goes here.
+ +Your stuff goes here.
+ +Body content
+Body content
+Body content
+Body content
+Body content
+Body content
+Panel body
+Body