A browser extension that parses and exports card transactions from one of the popular Czech benefit card portals to CSV format.
- Transaction retrieval — calls the portal's authenticated gRPC-Web API directly to fetch all transactions in the selected date range (no scrolling)
- CSV export — generates a downloadable CSV file with date, time, merchant, location, amount, currency, wallet type, and transaction type
- Bilingual UI — supports English and Czech, auto-detected from the portal language
- Exact data — amounts, merchants, and real-year dates come straight from the API response
- React 19 + TypeScript
- Vite with
vite-plugin-web-extension - WebExtension API (Manifest V3)
- Node.js v18+
- Chrome or Firefox v109.0+
npm install
npm run build # builds both targets: dist-chrome/ and dist-firefox/To build a single target:
npm run build:chrome # outputs dist-chrome/
npm run build:firefox # outputs dist-firefox/For development with hot reload:
npm run dev- Go to
chrome://extensions - Enable Developer mode (top-right toggle)
- Click Load unpacked
- Select the
dist-chrome/directory
- Go to
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on
- Select any file from the
dist-firefox/directory
- Navigate to the benefit card portal, log in, and open the transactions page
- Click the extension icon to open the popup
- Select a date range
- Click Export CSV
- Wait for the extension to fetch the transactions from the portal API
- Click the download button to save the CSV file
src/
├── content/ # Content script (gRPC-Web request/response codec)
├── popup/ # Popup UI (React components, hooks, CSV generation, i18n)
├── shared/ # Shared types and constants
activeTab— communicates with the content script on the active tab