Vlad Ilie
E-BikeRent — online e-bike rentals with payments, invoices and an admin panel
Next.js · Rental · Payments

E-BikeRent — online e-bike rentals with payments, invoices and an admin panel

e-bikerent.ro ↗
1 month ago
•••
3 min read

Context

E-BikeRent rents electric bikes in Predeluț, Bran. I built the site and the admin panel behind it, and I've been working on it since March 2022 — over 1,700 commits so far.

The problem

Renting a bike online sounds simple until you add everything around it: picking bikes and accessories for a date and duration, paying by card, issuing an invoice, emailing the customer, and later cancelling, refunding or reversing that invoice without leaving the books in a mess. On top of that, the team wanted to manage stock, gift coupons, local trails and SEO themselves.

What I built

Under the hood

A few rules keep the money and the stock honest:

The 2026 v3 rebuild, planned in 15 phases, moved the project from the Pages Router to the App Router on Next.js 16 and React 19, from Tailwind 3 to 4, from next-i18next to next-intl, from Supabase Auth to Better Auth, from nodemailer to Brevo and from next-seo to the Metadata API, with SEO editable from the panel. The panel itself was rebuilt on shadcn/ui and recharts. Public URLs stay translated and unchanged, so pages already indexed keep their rankings.

Status

The live site has been taking bookings for years. The v3 rebuild is complete on its own branch, with Vitest covering money, availability, cart capacity, coupons, bikes and login throttling.

Stack

Next.js 16, React 19, TypeScript, Prisma 7 (PostgreSQL), Better Auth, next-intl, Tailwind CSS 4, shadcn/ui, zustand, zod, react-hook-form, dinero.js, recharts, Leaflet, Redis, EuPlătesc, Oblio, Brevo, Supabase Storage, Google Maps, Cloudflare Turnstile, Vitest.

Technologies:

  • Next.js
  • Prisma
  • Better Auth
  • next-intl
  • EuPlătesc
  • Oblio
  • Brevo
  • Vitest

Share on: