TL;DR
Smart meters, Raspberry Pis, prepaid wallets, and the moment vibe-coding got hardware
CalendarGenie turns screenshots into calendar events. Post-er generates social media content. Both are web apps that talk to APIs.
Smart meters, Raspberry Pis, prepaid wallets, and the moment vibe-coding got hardware
CalendarGenie turns screenshots into calendar events. Post-er generates social media content. Both are web apps that talk to APIs. Complicated? Sure. But at the end of the day, it’s software talking to software.
Energy Backbone is different. Energy Backbone talks to physical hardware. Smart meters screwed onto power outlets in marinas along the Rhine. Meters that measure real electricity flowing to real boats. Meters that can be switched on and off remotely. Meters that need to work when the internet doesn’t.
This is the project that made me think: okay, I might actually be building a real company here.
The Problem: How Marinas Handle Electricity
If you’ve ever kept a boat in a European marina, you know the electricity situation is… vintage. Most marinas handle power in one of two ways:
Option A: Flat rate. You pay a fixed monthly fee regardless of consumption. Marina operators lose money on heavy users and overcharge light users. Nobody’s happy.
Option B: Manual meter reading. Someone walks around with a clipboard, reads analog meters, calculates consumption, sends invoices. In 2025. With a clipboard.
Both approaches have the same core problem: no real-time visibility. The marina operator doesn’t know who’s consuming what until it’s too late. The boat owner gets a surprise bill. And when someone doesn’t pay, the operator has no way to cut off power without physically visiting the meter.
I knew this problem intimately — because I keep my houseboat „PARIS“ in a marina on the Rhine. I watched the marina operator struggle with exactly these issues. And I thought: this is solvable.
The Architecture: Cloud + Gateway + Smart Meters
Energy Backbone has three layers, and honestly, designing this architecture was the most complex thing I’ve done as a vibe-coder:

The hardware layer: Raspberry Pi gateway paired with a Tuya KWS-303 smart meter — the physical heart of Energy Backbone.
Smart Meters (Tuya KWS-303)
The physical layer. These are WiFi-enabled smart meters from Tuya — specifically the KWS-303 model. Each meter measures:
- Voltage (V × 10)
- Current (mA)
- Power (W × 10)
- Energy consumption (kWh × 100)
- Relay state (on/off — this is the kill switch)
They’re affordable, reliable, and speak the Tuya protocol. That last part matters because it means we can communicate with them locally, without going through Tuya’s cloud.
The Gateway (Raspberry Pi)
This is where it gets interesting. Each marina has a gateway — a small device (Raspberry Pi, mini PC, or VM) that sits on the local network and communicates directly with the smart meters via TuyAPI.
Why not just have the meters talk to the cloud directly? Two reasons:
Reliability. Marina internet is unreliable. Boats have metal hulls that eat WiFi signals. Storms knock out connections. If the meters depended on cloud connectivity, you’d lose data every time the internet hiccupped.
Latency. When a prepaid wallet runs out and you need to cut power, you can’t wait for a cloud round-trip. The gateway handles this locally and syncs with the cloud when connectivity returns.
The gateway runs Node.js with SQLite for local storage. It polls meters, stores readings locally, syncs to the cloud when connected, and executes relay commands (on/off) instantly. It’s the backbone’s backbone.
The Cloud (Next.js + Fastify + PostgreSQL)
The brain. Built with:
- Backend: Fastify + TypeScript + Prisma ORM
- Frontend: Next.js 14 + TailwindCSS + shadcn/ui
- Database: PostgreSQL 16
- Cache: Redis 7
- Payments: Mollie
The cloud layer handles everything the gateway can’t: user management, billing, dashboards, analytics, payment processing, notifications. Marina operators get a real-time overview of every meter. Boat owners get a dashboard showing their consumption and wallet balance.
The Prepaid System: Where It Gets Real
The killer feature — the one that marina operators actually care about — is prepaid billing with automatic cutoff.
Here’s how it works:
1. Boat owner tops up their wallet. Via Mollie, or even bank transfer with an EPC QR code (very European, very practical).
2. The meter runs. Every few seconds, the gateway reads consumption data and calculates cost based on the marina’s pricing.
3. The wallet balance decreases in real-time. The boat owner can see this on their dashboard.
4. Low balance warning. Email notification when the wallet drops below a threshold.
5. Zero balance: relay off. The gateway sends the kill command to the meter. Power cuts. No human intervention needed.
6. Top up again, power returns. Automatically.
This replaces the entire billing cycle — no more readings, no invoices, no chasing payments, no awkward conversations. The system is self-service from end to end.
For marina operators, this is transformative. One operator told me he was spending 20 hours a month on electricity management. With Energy Backbone, it’s zero.

The marina operator dashboard: real-time consumption, wallet balances, and remote relay control — all in one view.
Pricing: Building a Real Business Model
This is the part where vibe-coding meets business reality. I spent a lot of time thinking about pricing — and my years in product management at CRIF and DATAlovers actually mattered here more than any coding skill.
Starter: €19/month
- Up to 20 meters
- Real-time monitoring
- Prepaid wallet system
- Email notifications
- Perfect for small marinas and boat clubs
Professional: €49/month
- Up to 100 meters
- Everything in Starter
- Advanced analytics
- API access
- Webhook integrations
- Multi-user management
Enterprise: Custom pricing
- Unlimited meters
- Multi-marina support
- Custom gateway configuration
- SLA guarantees
- Dedicated support
The pricing is designed to make the decision easy. A small marina with 15 berths pays €19/month and saves 20+ hours of manual work. The ROI is obvious within the first month.
What I Learned Building Hardware-Adjacent Software
Energy Backbone pushed me into territory that purely software projects never did:
Physical devices have physical problems
A meter that works perfectly on my desk might lose WiFi connectivity when installed inside a metal power cabinet at a marina. Temperature affects performance. Humidity corrodes connections. The gap between „works in testing“ and „works in a wet marina on the Rhine in February“ is vast.
Offline-first is a completely different paradigm
Most web apps assume connectivity. Energy Backbone assumes disconnection. The gateway needs to work for hours or days without internet, accumulate data, and sync cleanly when connectivity returns. Conflict resolution, data integrity, sync ordering — these are problems I never encountered building Post-er.
IoT security is serious
Every smart meter is a potential attack surface. Every gateway is a computer on someone else’s network. I spent more time on security — encrypted credentials, API key management, audit logging — than on any previous project. And I’m still not confident enough. This is an area where I know I need professional security review before scaling.
Hardware means support
When CalendarGenie breaks, I fix the code. When an Energy Backbone meter stops responding, the problem could be software, firmware, WiFi, physical installation, power supply, or the boat owner accidentally unplugging it. The support complexity is an order of magnitude higher.
The Vibe-Coding Reality Check
I’ll be direct: Energy Backbone is the project that most clearly shows both the power and the limits of vibe-coding.
The power: A single person with no engineering degree designed and built a multi-layer IoT system with real-time monitoring, prepaid billing, payment integration, and offline-capable gateways. Two years ago, this would have required a team of five and six months of development.
The limits: I know there are things in this codebase that a senior embedded systems engineer would cringe at. The gateway’s error recovery could be more robust. The sync protocol could be more efficient. The meter communication could be more resilient.
These aren’t hypothetical concerns — they’re real technical debt that I’ll need to address as the system scales. And addressing them might require actual engineering expertise, not just vibe-coding.
That’s okay. The point of vibe-coding was never to replace engineers entirely. It was to get from zero to one. Energy Backbone exists. It works. It has real meters monitoring real consumption at real marinas. And when it’s time to go from one to a hundred, I’ll bring in the specialists.
But they’ll be improving a working system, not building from scratch. And that changes the conversation — and the cost — entirely.
What’s Next
Energy Backbone is live at [energy-backbone.bigdataheaven-software.de](https://energy-backbone.bigdataheaven-software.de). The first marina is running. The system is stable. And I’m actively onboarding the next ones.
But while I was building Energy Backbone’s IoT layer, I was simultaneously building something even more complex on the software side. A system with 35+ features, AI-powered contract processing, WhatsApp integration, and multi-marina management.
Marina Master is the most ambitious thing I’ve ever built. And it started with a digital logbook for my boat.
This is Part 5 of a 7-part series about my journey from zero coding experience to building production applications with AI. In Part 6, I’ll talk about Marina Master and my Paperless-ngx RAG integration — enterprise-grade software, vibe-coded.
Try what I’ve built:
- 🧞 [CalendarGenie](https://calendargenie.replit.app) — Turn any screenshot into calendar events
- ✍️ [Post-er](https://post-er.replit.app) — AI-powered content creation
- ⚡ [Energy Backbone](https://energy-backbone.bigdataheaven-software.de) — Smart energy management with IoT
- ⚓ [Marina Master](https://marina-master.bigdataheaven-software.de) — AI-powered marina management