A browser extension for YNAB that lets users see their category and account balances at a glance, quickly add transactions, setup customizable notifications, and more. See full feature list and installation links on the extension website.
extension/Browser extension using WXT, React, and TypeScriptsrc/components/React componentsentrypoints/Extension popup page, options page, and background scriptlib/Library and utility functionsstyles/Extension CSS / Sass styles
test/Unit tests with Vitest
server/Backend server using Rust and Axumweb/Static website using Astrosrc/pages/All website pages (Astro)
You must have Rust (>= 1.96), Node.js (>= 22), and pnpm installed before proceeding.
Set up an OAuth application in your YNAB Developer Settings. Then, in both the extension/ and server/ directories, copy the .env.example file to .env and fill in the values.
The static website is built with Astro.
cd web
pnpm install
pnpm buildThe backend server uses Rust and axum.
cd server
cargo runThis extension is developed using the WXT framework. To run the extension's development server, make sure the server (see above) is running and then run:
cd extension
pnpm install
pnpm devA development browser should open automatically and load the extension.
cd extension
pnpm buildThe extension will be built to the extension/build/chrome-mv3 folder. This can be loaded into Chrome by navigating to chrome://extensions/ and clicking "Load unpacked".
cd web
pnpm buildThe Astro website will be built into a static site in the web/dist/ folder. You can then build the backend server via:
cd server
cargo build --release