Get set up — what do you need?
Vibe Development works best when you have the right tools ready. Here is everything you need before you start — even if you have never written a line of code.
- Desktop app + terminal
- Works with any editor
- Recommended for beginners
- Free to get started
- In the browser, no install needed
- Codex works via the API
- Handy if you already have ChatGPT Plus
- Free tier available
Either works great with BankBird. Pick what you already know, or try Claude Code if you're starting from scratch.
First create an empty folder on your computer (e.g. on your desktop or in your Documents folder). Then open it in your AI tool.
bankbird. Drag the folder into Claude Code, or open it via File → Open Folder.mkdir ~/bankbird in your terminal, then open the folder in your AI tool.You have an AI tool and an empty project folder. Now follow the installation steps to get BankBird up and running.
What is Vibe Development?
Vibe Development means using AI — like Claude or ChatGPT — to add new features to BankBird yourself, without needing to be a seasoned PHP developer. You describe what you want, the AI writes the code, and you refine it until it works.
- Adding a new bank importer
- Building extra report filters
- Custom export formats
- Integrations with other tools
- Modifying core files
- Changing database schemas
- Touching authentication
- Updates may overwrite your changes
Real-world example: build your own bank importer
Say ABN AMRO isn't supported in BankBird yet, but you have an ABN account. You can build the importer yourself. Here's how to tackle it with AI.
Ik werk met BankBird, een Laravel 11 + Filament 5 applicatie
voor persoonlijke financiële administratie. Ik wil een nieuwe
bankimport toevoegen voor ABN AMRO CSV-bestanden.
Het ABN AMRO CSV-formaat heeft deze kolommen:
[plak hier de eerste 3-5 regels van je CSV-bestand]
De bestaande ING CSV-import staat in:
app/Services/Importers/IngCsvImporter.php
Maak een vergelijkbare klasse AbnAmroCsvImporter die:
- hetzelfde ImporterInterface implementeert
- de ABN AMRO kolomnamen correct mapt
- het bedrag omzet naar een positief/negatief getal
Geef mij de volledige PHP-klasse terug.
Conflicts with future updates
Say you've built AbnAmroCsvImporter.php yourself. After an update we release an official version. You have three options:
MyAbnAmroCsvImporter so there's no clash. Both importers live side by side.Ik heb zelf een ABN AMRO importer gebouwd [plak jouw code].
BankBird heeft nu ook een officiële versie uitgebracht [plak
nieuwe code]. Welke aanpak raad je aan? Zijn er conflicten?
Kun je de beste versie samenvoegen?
Git & updates — how does that work?
BankBird is updated via Git. If you've made a lot of custom changes, a git pull can cause trouble. Here are the three most common approaches:
git merge upstream/main and resolve conflicts in your own branch.git pull, or block the update entirely if there are conflicts. Always back up first.How is your IBAN kept safe in the database?
An IBAN is sensitive financial information. BankBird stores it encrypted using Laravel's built-in encryption. Here's the full picture — from database to PHP code.
-- Wat je ziet als je de database opengooit: id | name | iban ----+-----------------+--------------------------------------------------- 1 | ING Betaalrek. | eyJpdiI6IkZwVXZGME...(lange versleutelde string) 2 | Spaarrekening | eyJpdiI6InhkdDFQQ3...(lange versleutelde string) -- Je echte IBAN (NL59INGB...) is nergens in klare tekst zichtbaar.
protected function casts(): array { return [ 'iban' => 'encrypted', // ← Laravel versleutelt automatisch 'type' => AccountType::class, 'balance' => 'decimal:2', ]; } // Opslaan: Laravel versleutelt automatisch Account::create([ 'iban' => 'NL59INGB0653592555', // jij geeft klare tekst ]); // Uitlezen: Laravel ontsleutelt automatisch $account = Account::find(1); echo $account->iban; // → 'NL59INGB0653592555' (klare tekst)
Encryption is driven by the APP_KEY in your .env file. This is a unique 32-byte key that Laravel generates at installation. Keep it safe — without it you cannot read your own data.
APP_KEY=base64:jouw-unieke-sleutel-hier... # Nieuwe sleutel genereren (bij eerste installatie): php artisan key:generate
Backup as a data source for development
The backup feature (accessible via the user menu → Backup) exports all your data as a structured JSON file. For vibe-developers it's a goldmine: you see exactly how the data structure looks, can test locally with real data, and spin up a new installation in seconds.