PayLater Web Bank – Containerised Banking Mock
Banking sandbox for demos and prototyping. Complete with multi-factor auth, double-entry accounting, and partner API mocks, packaged in a Docker setup you can spin up in minutes.
Industry
Fintech / Education
Role
Architect & full-stack developer
Timeframe
2022
Location
Copenhagen, Denmark
Published
Mar 1, 2022
Context
I needed a realistic retail banking sandbox to demonstrate account management, transfers, lending, and partner-bank integrations with proper auditability and security.
Approach
- Built a Django + DRF app for customer and staff portals, backed by a double-entry ledger enforcing balanced debit/credit pairs.
- Added TOTP MFA (
django-otp) for logins and token-auth APIs for partner banks to initiate external transfers. - Used HTMX for responsive staff workflows (search, inline edits, account creation) without heavy SPA overhead.
- Packaged with Docker Compose (app, Postgres, Nginx + Certbot) and seeded demo data via management commands.
Highlights
Ledger.transferensures atomic paired entries; ranks gate loan eligibility and status transitions.- External transfer flow calls partner APIs, tracks pending status, and logs metadata for reconciliation.
- Staff dashboards run on HTMX partials; customers get classic web views for balances, transactions, and loan requests.
- Deployment mirrors production topology: Gunicorn behind Nginx with optional TLS and per-environment configs.
Impact
- Demonstrates a credible banking workflow with MFA and audit-ready ledgers.
- Speeds demos and tests with prebuilt seeds and container parity.
- Highlights emphasis on correctness, security, and practical developer ergonomics.
Related work and writing
Replaced scattered timesheets and manual payroll processes with a single source of truth. Consultants log hours in one system, managers approve in real-time, and exports are audit-ready by default.
Replaced cash handling at the company canteen with NFC tap-to-buy. Employees tap badges, purchases sync to payroll, and the canteen eliminated cash entirely.
How a three-person dev team at a Copenhagen consultancy decided what to build, what to buy, and what to hybridise, and why those decisions weren't really about preferences.
The steps I use to go from a sentence-long idea to a scoped, buildable MVP with realistic trade-offs.