I'm a Vietnamese software engineer who has lived in Tokyo since 2013. On the side, I run shibaSIM, a small store selling travel eSIMs and SIM plans for foreigners living in Japan. Here is how it's built and what I've learned so far.
The stack
Backend: Medusa v2 (headless commerce)
Storefront: Next.js App Router
Database: PostgreSQL
Hosting: one Linux machine at home, reached through Tailscale
Payments: Stripe for cards, plus a QR bank-transfer flow for Vietnamese customers
Medusa gives me carts, orders, promotions and an admin UI out of the box. Everything specific to eSIM, like QR delivery and multilingual landing pages, I build on top.
Lessons so far
1. Localization is more than translation. The store has pages in Vietnamese, English, Nepali, Sinhala, Bengali, Indonesian, German and more. Each community searches with different words and worries about different things, so each locale gets content written for it, not a translated copy.
2. The delivery channel matters.…