Education
keeplearnin: Learning Platform for Organisations and Instructors
Our learning product that brings courses, live classes, mentoring, certificates and corporate training into one platform. Built on MicroFrame; not live yet.
Bu sayfa Türkçe olarak da mevcut.
One commerce platform that runs B2C, B2B and marketplace models side by side — product, inventory, order, campaign and vendor management with payments and subscriptions built in.
A commerce stack is usually built for one business model. Adding a second — B2B pricing alongside B2C, or opening the catalogue to third-party vendors — means either bending a system that was never designed for it or standing up a parallel one, and either path puts the same primitives (catalogue, inventory, orders, payments, campaigns) under two owners.
We built the platform model-agnostic from the start. B2C, B2B and marketplace are configurations of one catalogue, one inventory ledger and one order lifecycle rather than three implementations, with vendor panels and payment and subscription modules attaching to the same core — so a new business model is a rollout, not a rebuild.
The platform covers the full commerce lifecycle end to end: product and category management with rich attribute definitions, inventory tracking across warehouses, the order and shipping lifecycle from cart to delivery, customer and campaign management, and dedicated vendor panels. Integrated payment and subscription modules sit alongside it, so recurring commerce is part of the same system rather than a bolt-on.
The architecture scales horizontally and the frontend layer is customizable, which is what makes fast time-to-market realistic even in high-traffic scenarios — the storefront can be shaped per brand without forking the commerce core underneath it.
Pontefy is in development. The list below is the capability set we are building toward; it describes the design, not a finished product.
B2C, B2B and marketplace only stay configurations of one system if the things that vary between them are data rather than branches in the code. The one that decides whether this works is pricing. There is no price column: a price is resolved through a context — customer or customer group, contract, quantity break, currency, tax treatment — so a B2B contract rate and a B2C list price are the same lookup with different inputs, and neither is a special case of the other. Tax display follows the same rule: whether prices are shown inclusive or exclusive belongs to the context, not to the storefront, which is why the same catalogue can serve a consumer shop and a business account without two catalogues.
Stock is recorded as movements and reservations rather than as a number that gets decremented. A cart hold, a placed order, a warehouse transfer and a return are four different claims on the same physical quantity, and a single counter cannot represent them or answer why it has the value it does. Available quantity is derived: on hand minus outstanding reservations. Reservations expire, which is what stops abandoned carts from quietly consuming sellable stock.
Overselling is a race, and races have to be settled where the write happens. The reservation is taken in the database with the constraint that makes the conflicting case fail, not in application code that reads a value and then writes one — the read-then-write version is correct in testing and wrong under exactly the traffic the platform is built for.
Payment authorization, warehouse fulfilment and carrier handoff are all external and all asynchronous. The order therefore holds its own state and reconciles theirs, rather than treating a call to any of them as the source of truth. Partial fulfilment is why an order is a parent with per-line-group shipments underneath it — and once that shape exists, a marketplace order split across three vendors is structurally the same thing as a B2C order shipping from two warehouses. That is the concrete reason marketplace did not need its own order system: the split was already in the model for a reason that had nothing to do with vendors.
Vendor panels follow from the same decision. A vendor gets a scoped view over the shared catalogue and the order lines that belong to it, not a separate application with its own store to keep in sync.
Placing an order commits two things: the reservation and the order itself. Everything else — stock movement posting, confirmation notifications, invoicing, vendor notification on a marketplace order — is a consumer of the resulting event. The alternative, holding a database transaction open across a payment call and a carrier API, means checkout availability becomes the product of every external system’s availability, and a slow carrier endpoint takes the shop down.
The event is written in the same transaction as the order and dispatched from there, so a process that dies immediately after commit still produces the downstream work. Consumers are idempotent because they will see the same event more than once; that is a cost of the arrangement, and it is cheaper than the alternative.
Catalogue browsing is overwhelmingly read traffic and tolerates data that is a moment old. Checkout does not: anything that decides money or stock reads the primary. So the replica decision is made per query and made explicitly, rather than being a connection-level setting that quietly routes a stock check to a replica and sells something twice. Being explicit about which reads may be stale is what makes read replicas a scaling tool instead of a source of intermittent, unreproducible bugs.
Per-brand storefronts are separate frontends against the same commerce API rather than forks of the platform, which is what allows a storefront to be shaped for a brand without the core diverging per deployment. The constraint that comes with it: campaign and promotion evaluation stays server-side. A discount computed in the browser is a discount the customer can choose, so the storefront asks what the price is and renders the answer — it never derives it.
Education
Our learning product that brings courses, live classes, mentoring, certificates and corporate training into one platform. Built on MicroFrame; not live yet.
Software Platform
MicroFrame is the ready-made foundation for software teams: identity, tenancy, payments, subscriptions, notifications and audit as ready components, in the cloud or on your own servers.
Consumer and Family
A baby page where memories, the family album, visitor notes and invitations collect, from pregnancy to first steps. Live on web, iOS and Android; built on MicroFrame and live about four months after the first commit.
Let's discuss how we can help bring your ideas to life.