Private code store
Your components are scattered across repos. Nobody can prove which licences you hold.
CodeStore Global is a code store you deploy for your own team. Internal components and third-party kits in one gated catalog, version and changelog on every product, and each purchase written to a per-workspace record you own.
- Subdomain-isolated workspaces
- Self-hosted on your database
- v2.0 β onboarding first teams

There are three ways this goes wrong, and the third one is an audit.
Duplication
Someone asks in #frontend for the button component. It exists three times, in three repos, and the one in the design system is the old one. Nobody knows which, so the new hire copies the version that compiles.
Double purchase
A charting library gets licensed by Platform, then again by Growth six weeks later, because neither team can see the other's receipts. The renewal lands on a card belonging to someone who left.
The audit
You cannot answer which teammate may use this, and until when, without opening Stripe, the vendor portal and three email threads. The only tracking that survives an audit is written at the moment of purchase, against a workspace.
The product
What is in it, and what is not
Everything below exists in the current build. Anything absent is not built yet, and you can check that against the source rather than taking our word for it.
Workspaces are a data boundary, not a filter
One subdomain and slug per workspace. Isolation is enforced in the query, so there is no code path that reads another workspace's rows. New workspaces sit in PENDING_APPROVAL until an admin activates them.
Version and changelog on the product
Both are columns on the product row, so "which release are we on" has an answer you can link to instead of a PDF nobody can find.
Invites that carry a role and an expiry
Marked used once. There is no self-signup into a workspace, so nobody reaches your catalog by guessing a URL. Members are unlimited.
Every sale writes a platform transaction
Order id, capture id, amount, platform fee, seller payout β scoped to the workspace. That table is the licence record finance stops asking about.
An escrow jobs board
Budget ranges, applications, the escrow amount held against the listing and released on completion. Commission is 10% per completed job.
Five languages with real RTL layouts
English, Arabic, French, German and Spanish. Every page ships in all five β not a translation layer added afterwards.
Not in the build: automatic licence-key issuance, SSO/SAML, SCIM, managed hosting, and a usage-based billing model.
How it works
Four screens from the running app
There is no signup form that creates a workspace β we provision it with you on a call, then you invite the team. That is the current onboarding, and it is deliberate at this stage.

The team's components, in one list
Price, version and tags per row, read straight off the product table. This is the gated catalog your members see and nobody else does.

Every workspace on one screen
The platform admin sees all workspaces, their status and their plan β including the ones still sitting in pending approval β plus every user and their role. Row-level access is per workspace, and none of it is visible to a tenant.
Deployment
Self-hosted, because your catalog is none of our business
You run it on your own domain against your own database. That is also the reason nobody else can see your catalog β not a permissions setting, an architecture choice.
- Runtime
- Next.js 14
- Database
- MySQL 8 Β· Prisma
- Payments
- PayPal
- Node
- 20+
git clone https://github.com/docksidedirect/codestoreglobal
cd codestoreglobal && npm install
# .env
DATABASE_URL="mysql://user:pass@localhost:3306/codestoreglobal"
JWT_SECRET="$(openssl rand -hex 32)"
npx prisma migrate deploy
npm run build && npm startMigrations ship in the repository. No proprietary build step, and no lock-in on the data layer.
Proof
v2.0 β onboarding first teams now
We have no customer logos to put here yet, and inventing them is the fastest way to lose the only thing this page has to trade on. So: the changelog, and the repository.
| v2.0 | Rebuilt marketplace and workspace UI; admin earnings reconciliation; PayPal capture fixes on the checkout path. |
|---|---|
| v1.4 | Multi-tenant storefronts: subdomain isolation, workspace membership, pending-approval to active lifecycle. |
| v1.3 | Escrow jobs board: budget ranges, applications, escrow amount and release flag, 10% platform commission of record. |
| v1.2 | Admin earnings view built off raw transaction tables: order id, capture id, platform fee, seller payout. |
| v1.1 | Component marketplace: product CRUD, version and changelog fields per product, image uploads, detail pages. |
Pricing
One plan, priced per workspace
No tiers, no "most popular" badge, no per-seat maths. You are paying for the isolated storefront.
Workspace
$49/ workspace / month
- Members
- Unlimited
- Internal components
- Unlimited
- Completed-job commission
- 10%
- Hosting
- Self-hosted
Workspaces are provisioned with you, not by a signup form.
- Private, gated storefront for your team
- Unlimited internal components
- Licensed third-party kits, beside your own
- Version and changelog on every product
- Email invites with expiring tokens
- Escrow jobs board, 10% per job
- Purchase records per workspace
- PayPal checkout
- Five languages, Arabic RTL
Self-hosted is the supported deployment today. You run it on your own domain and your own database, which is also why nobody else can see your catalog.