CoolkHz/gptibo

Data

A self-hosted storefront for selling digital goods, with admin, reseller workspace and two interchangeable backends.

857
506
TypeScript
MIT
11 days old

GPTibo is a sanitized MIT release of a digital-goods storefront; it suits developers who want a ready-made shop, order-delivery and reseller layer they can run themselves, not a product with paid integrations included.

The problem

Selling digital goods usually means stitching a catalogue, a checkout, delivery of the purchased item, after-sales handling and a reseller/reseller-management layer across separate tools. Without a single system, order status lives in one place, fulfilment in another, and partner pricing or settlement becomes a manual spreadsheet job. GPTibo puts catalogue display, ordering, payment state, order lookup and after-sales in one front end, and adds an admin console plus a separate partner workspace where resellers run their own branded store, custom domain and sub-resellers. The visible change is that an order can be traced from purchase through delivery and refund in the same interface instead of across disconnected services.

What's different

The notable structural choice is two interchangeable backends: a Go + Gin + PostgreSQL implementation split into an API process and a business worker for asynchronous tasks, and a Cloudflare Workers + D1 version that can run locally through Wrangler. Both serve the same storefront, so the choice is deployment-shaped rather than feature-shaped. The front end is React 19 and TypeScript, with React Email templates and a documented test and lint setup. That breadth is also the main trade-off: two backends and a partner layer mean more configuration surfaces to keep aligned, and the repository explicitly does not include the separate supply platform or supplier execution system, only storefront-side supplier adapters.

Payment and supplier integrations are deliberately anonymized: adapters carry generic names, the aggregate payment gateways are gatewaya/gatewayb, and example.invalid is a reserved domain that cannot be used for real connections. To take real money or fulfil real orders, you must verify endpoint addresses, signatures, product mappings, amounts and callbacks against your own service agreements and then enable the corresponding features. This is a working scaffold, not a turnkey shop.

Who should try it

A good fit is a developer or small team that already has payment and supplier accounts and wants a self-hosted base for a digital-goods shop with a reseller tier, and is comfortable wiring adapters and testing a full transaction flow in their own environment. The Go path suits those who want PostgreSQL and a separately scaled API/worker; the Cloudflare path suits those who prefer D1 and Wrangler and want a lighter local setup. A poor fit is anyone expecting an out-of-the-box store with live checkout, a ready admin account or a bundled supply system: the default configuration provides no usable admin login and will not initiate real payment, procurement or notifications.

Requirements and limitations

The setup requires Node.js 24, npm, Git and Python 3; the Go backend additionally needs Docker Compose, or Go 1.26+ and PostgreSQL for native development, while the Cloudflare backend needs Wrangler resources. Admin login requires your own administrator identity, TOTP and email verification service, so there is no shortcut into the back office. Installation must use a fresh database: the anonymized migrations are explicitly incompatible with the original production database, and shipping example products and amounts are demonstration-only. Full database tests need a dedicated test database whose name ends in _test; without it, integration tests are skipped, so a green run does not by itself exercise database behaviour. Automated tests never contact real payment or supplier services, and production deployment requires verifying the complete transaction flow yourself. See the Go backend documentation and the integration example config before committing to the setup.

HotRepo's take

HotRepo first recorded this 11-day-old repository on 2026-10-24; on the 2026-10-25 new-repository board for TypeScript it showed 857 total stars at #11. That is a new-project board placement, not an overall trending rank, and the two-day sample is insufficient to judge whether interest persists. Given the missing supply platform and anonymized adapters, the practical question is whether your own payment and supplier services can be mapped cleanly onto the documented adapter interfaces; check that before investing in a deployment.

Written by AI from the project's README, updated October 25, 2026. The project's own docs are the source of truth.