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 (OAuth flow, API routes, and Astro static files)routes/API routes
src/pages/All website pages (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 Fastify and Astro. The server is located in the /web/server folder, and the web pages are located in the web/src/pages folder. You can run the server via:
cd web
pnpm install
pnpm build
pnpm startThis 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