What it is
Pixevel is a Persian-first, right-to-left, mobile-first online shop for
digital goods: game credit and top-ups, gift cards, keys, and AI and app
subscriptions. The long-term product is a multi-shop platform; today Pixevel
is the one shop that runs on its engine.
The problem it solves
Iranian customers often can't pay a foreign service directly. The usual
workaround is a Telegram channel and a conversation with a human who buys on
your behalf. Pixevel's goal is narrower and measurable: payment to delivered
code or credit with nobody in the loop, on a phone, on the first try.
How it works
- Local payment. Checkout uses Iranian payment gateways through a separate
payments service. The shop never calls a gateway directly.
- Per-product fulfillment. A product is delivered by a direct supplier
integration, from precise per-unit inventory, from an answer the customer
provides (a Steam invite link, for example), or — when a purchase can't be
verified automatically — through an operator queue that shows that state
honestly instead of marking it delivered.
- Prices in Toman. Prices can be authored in USD and rendered in Toman from
a live exchange rate, with public, registered and VIP tiers.
- Phone first. Login is phone number plus one-time code; the main
navigation sits at the bottom of the screen; anonymous baskets merge into the
account at checkout.
Engineering decisions
- Category-agnostic schema. Fulfillment type (digital, physical, domain,
server, service) and inventory policy are properties of the product. Tracked
stock is one database row per unit — a gift-card code is a row, not a
counter — so a code can be traced to exactly one order.
- An append-only money trail. The payments service records every step of a
payment as a new ledger row, and the database itself rejects
UPDATE and
DELETE on that table. A ledger write that fails aborts the request.
- Services where the IO is risky. Authentication, payments, notifications
and each supplier live in their own service, in whichever of Go, TypeScript
or Python fits, with language-neutral contracts between them. The core shop
flow (catalog → pay → fulfil) stays in the Next.js app.
- Search off the hot path. Postgres is the source of truth; Typesense is a
private discovery index fed from an outbox.
Stack
Next.js and TypeScript (Bun) for the storefront and admin, Go services for
auth, payments and identity, Bun/TypeScript services for supplier
integrations, PostgreSQL with Drizzle, Typesense, and Vazirmatn for Persian
type.
Status
Live at pixevel.com. The project is early; there are no
published traffic or sales figures. The source is private.