chargelink
Software platform for Chargelink, a clean-energy infrastructure operator that designs, deploys, and operates EV-charging and clean-energy projects end-to-end — from small EV setups to utility-scale builds.
- client
- Chargelink
- industry
- EV / Cleantech / Mobility
- role
- Dedicated team — 2 fullstack engineers
- timeline
- Started 1 June 2026, ongoing
- team
- 2 fullstack engineers
- status
- live · ongoing
- client
- visit ↗
Chargelink — Case Study
Software platform for Chargelink, a clean-energy infrastructure operator that designs, deploys, and operates EV-charging and clean-energy projects end-to-end. topsweteam builds the software side: driver app, operator back office, OCPP backend, payments. 25+ clients live with 100+ stations connected.
Summary
Chargelink isn't just an EV-charging app. It's a clean-energy infrastructure operator that runs the entire lifecycle of a project — engineering, permits, financing, hardware, installation, warranty, insurance, and ongoing management and maintenance — for property owners, government agencies, businesses, and innovators. The business model is profit-share based: Chargelink shares the electricity-resale revenue with the asset owner, which means the software has to do more than process charging sessions; it has to be the system of record for an operating business.
topsweteam runs the software side. A two-fullstack-engineer team owns the driver-facing surface (find a station, start a session, pay), the operator back office (manage stations, pricing, sessions), and the from-scratch Go backend that speaks OCPP to the charging hardware. 25+ clients are live on the platform with 100+ charge points connected.
- Client: Chargelink (mychargelink.com)
- Industry: Clean energy / EV infrastructure / Cleantech
- Engagement: Dedicated team — 2 fullstack engineers
- Timeline: Started 1 June 2026, ongoing
- Team: 2 fullstack engineers
- Status: Live in production — 25+ clients, 100+ charge points
Challenge
Building the software for a turnkey clean-energy operator is a different problem from building a consumer EV-charging app. The software has to:
- Talk to charging hardware from different manufacturers (typically over OCPP).
- Surface real-time availability, pricing, and session state to drivers.
- Process payments (Stripe) and feed into the profit-share accounting that's core to the business model.
- Give operators tooling to manage stations across heterogeneous deployment contexts — small property installs, larger commercial sites, utility-scale projects.
- Stay cheap to operate at every project size, since Chargelink's economics depend on profit-share, not on subscription fees.
Doing all of that with a two-engineer team means the architecture has to be tight. Every layer that gets added has to earn it.
Approach
We staffed the engagement as a two-person fullstack team rather than splitting frontend and backend into separate roles. With this team size and product surface, the alignment cost of that split would have outweighed the specialization benefit. Both engineers move across the stack, which keeps end-to-end features moving without coordination overhead.
- Go for the backend. Strong fit for a domain that's mostly I/O, lots of integrations, and concurrent session handling. Static typing and a tight binary footprint make ops cheap on a VPS deployment.
- From-scratch OCPP implementation. OCPP (the open standard for charge-point communication) is the core protocol the platform speaks to chargers. We implemented it ourselves in Go rather than depending on an off-the-shelf library — full control over reconnection, error handling, and the message types we actually need across multiple hardware vendors.
- React for the frontend. Standard choice; lets the same engineers move between layers without a context switch.
- Stripe for payments. Standard rails for a consumer-facing payment flow; let us focus engineering effort on the OCPP and operator surfaces, not on bespoke billing.
- Self-hosted on a VPS with Docker Compose rather than a managed cloud — appropriate for the team size, the predictable workload, and the profit-share economics that reward keeping infra costs flat.
- Keycloak for identity. Off-the-shelf SSO/OAuth so we didn't build identity ourselves.
Solution
The platform consists of a driver-facing surface (find stations, start a session, pay), an operator back office (manage stations, pricing, sessions, reporting), and a Go backend that mediates between them while speaking OCPP directly to charge-point hardware. Stripe handles the payment leg. Keycloak handles identity. Everything runs on a single VPS with Docker Compose orchestration.
The software supports the wider business: it's the system of record for sessions and revenue that the profit-share model depends on, the operational surface the Chargelink team uses to manage their growing fleet of installs, and the consumer-facing app that drivers interact with at the charger.
Key features shipped
- Driver-facing app: station discovery, session start/stop, in-app payment
- Operator back office for station, pricing, and session management
- OCPP-driven session control with charge-point hardware (multi-vendor)
- Stripe-backed billing
- Reporting that supports the profit-share accounting
Outcome
The platform is live in production with 25+ clients and 100+ charge points connected — and the lean staffing model has held up. The two-engineer team continues to ship features without scaling up, which fits the unit economics of a profit-share business.
- 25+ clients live, 100+ charge points connected
- Two-engineer team owning both the codebase and operational responsibility
- Software underpins a profit-share business model, not just a charging app
Tech stack
Backend: Go, with a from-scratch OCPP implementation Frontend: React Infrastructure: VPS, Docker Compose Identity: Keycloak Payments: Stripe Integrations: Charge-point hardware over OCPP, Stripe for payments
What we learned
- Two-fullstack-engineer teams beat a 1+1 split at this product size — coordination overhead disappears, end-to-end ownership is clean.
- Go fits the integration-heavy backend. Concurrency primitives map well to the "many sessions, many devices, mostly I/O" shape of the workload.
- Implementing OCPP ourselves was worth it. Off-the-shelf libraries solve the easy 80% of the protocol; the messy 20% — reconnection, real-world charge-point quirks, multi-vendor message-type subsets we actually use — is where they break down.
- VPS + Docker Compose is the right substrate for a profit-share business where flat infra costs matter more than elastic scale. We'd reach for managed cloud / Kubernetes only if the unit economics changed.
- The software doesn't sell itself; it sells the business. Chargelink's customers aren't buying a charging app — they're buying a turnkey clean-energy installation. The software is what makes the business operational; framing it that way changed how we prioritized features.

tech
- backend
- Go, OCPP (from-scratch)
- frontend
- React
- infrastructure
- VPS, Docker Compose, Keycloak
- payments
- Stripe