Project Structure

Note

This page is a work in progress.

Repository root

Path

Contents

extension/

Extension source code and manifests

docs/

Sphinx documentation source (this site)

build/

Build output — gitignored, generated by npm run build

scripts/

Developer tooling scripts (param-order checker, release helper)

patches/

patch-package patches for npm dependencies

rollup.config.js

Rollup bundler configuration

tsconfig.json

TypeScript compiler configuration

dprint.json

Dprint formatter configuration

eslint.config.js

ESLint configuration

typedoc.json

TypeDoc API documentation configuration

Extension source (extension/data/)

Path

Contents

api/

Reddit API wrappers (resources: comments, flair, wiki, etc.)

background/

Extension background script handlers

css/

Global CSS (base variables, legacy injection styles)

framework/

Core module system: Module, Lifecycle, moduleRegistry

images/

Extension icons and static images

modules/

Individual feature modules (one directory per module)

modules/shared/

Cross-module React components and utilities

util/

Pure utility functions (data, infra, persistence, reddit, ui, wiki)

Module layout

Each module under extension/data/modules/<name>/ follows the layered structure described in Module Architecture.

Utility categories (extension/data/util/)

Subdirectory

Contents

data/

Array, async, color, encoding, string, time helpers

infra/

Build environment, logging, platform detection, version

persistence/

Settings read/write, migrations, portability

reddit/

Page context detection, mod actions, thing info

ui/

DOM helpers, hooks, icons, listener, markdown, React mount

wiki/

Wiki path constants, schema codecs, migration utilities