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
web/Website and server using Astro and Fastifyserver/Fastify server (serves Astro as middleware)src/pages/All website pages and routes (Astro)
You must have Node.js (>= 22) and pnpm installed before proceeding.
Set up an OAuth application in your YNAB Developer Settings. Then, in both the extension/ and web/ directories, copy the .env.example file to .env and fill in the values.
The server and website is created with Astro. Pages and API routes are located in the web/src/pages/ folder. You can run the development server via:
cd web
pnpm install
pnpm devThis extension is developed using the WXT framework. To run the extension's development server, make sure the Astro 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 backend and website will be built as an Express-compatible middleware to the web/dist/ folder. You can then run the Fastify server via:
pnpm start