Axnify
For developers

An ecommerce platform you don't have to fight

Stop bolting workarounds onto a black-box SaaS. Axnify exposes every primitive over REST, ships webhooks for every event, and lets you edit theme code directly. Go on the backend, Next.js on the frontend, open APIs everywhere.

Why most ecommerce SaaS platforms are hostile to developers

Pick any of the top-10 commerce SaaS platforms and look at their API documentation. Then look at their admin UI. The features don't match. The admin can do things the API can't. Worse, the platform vendor knows it — and they consider this a feature, not a bug. Locking capabilities behind the admin is what keeps you on their platform. The moment you can do everything via API, you can also leave.

This is the fundamental tension. The big SaaS platforms (Shopify, BigCommerce, Wix Commerce) optimise for non-technical merchants because that's most of their TAM. When developers ask for a webhook on a specific event, a way to register a custom checkout step, or write access to a previously read-only resource, the answer is usually 'upgrade to the enterprise tier' or 'use Zapier.'

Axnify is built differently because its backend is structured for it. Each domain is a microservice (product, order, cart, theme, billing, asset, customer, payment, shipping, etc.) with its own database schema and its own HTTP API. The admin UI is a frontend that talks to those APIs — exactly the same way your code does. There is no admin-only capability. There is no 'internal endpoint' you can't call. The API surface IS the platform.

That design choice has consequences. It means Axnify is more honest about what it does and doesn't support: if it's not in the API, it doesn't exist. It means breaking changes are caught faster — you can't ship an admin feature without shipping the API too. And it means you, as a developer integrating against the platform, are never in the position of writing a screen-scraper because the admin can do something your code can't.

Why developers leave the big SaaS platforms

Read-only APIs that don't match the admin UI

You can list products but can't update inventory; you can read orders but can't backfill a fulfilment from your ERP. Every workaround becomes a Zapier loop, a manual CSV export, or a screen-scraper that breaks the moment the platform redesigns its admin.

Theme code locked behind enterprise tiers

Shopify locks Liquid + JS theme editing behind the £2,300/mo Plus plan. Want to touch HTML on a £29 plan? Use their drag-and-drop, like everyone else. Wix doesn't expose theme code at all on any tier. BigCommerce sits in the middle but charges per-instance for theme code edits.

Webhooks miss the events you actually need

Generic platforms emit ~15 webhook types. The event you want — checkout step completed, abandoned cart cleared, theme published, custom field updated, app entitlement changed — usually isn't one of them. You end up polling instead, which means rate-limit headaches and stale data.

Headless costs extra and breaks easily

'Headless commerce' on most platforms means a separate enterprise SKU (Shopify Hydrogen, BigCommerce Stencil), a different API surface than the standard admin uses, and zero documentation parity with the admin UI. Often the headless API is months behind the admin in feature coverage.

What developers get with Axnify

REST API for every primitive

Products, variants, inventory, customers, orders, carts, themes, pages, sections, settings, webhooks, apps, files, taxes — all CRUD, all documented, all behind a single Bearer token. Pagination, filtering and sorting follow consistent conventions across every endpoint.

Webhooks for every event, on every plan

Order created, paid, fulfilled, refunded; cart created / abandoned / recovered; product / variant / inventory updated; theme published; staff invited; app installed. Webhook delivery with retries (10 attempts over 48 hours), HMAC signatures and a delivery log in the admin.

Theme code editor built in

Edit theme files (HTML / CSS / JS) directly in the admin's theme editor. Version history per save. Preview before publish. Side-by-side diff against the last published version. Roll back in one click if a deploy breaks something.

Headless-friendly by default

Every storefront endpoint that serves the official commerce-ui returns JSON via the public API. Use Next.js, SvelteKit, Astro, or your own custom frontend pointing at api.axnify.com. The same API powers our default storefront — there's no second-class headless API surface.

Custom apps marketplace

Build an app, list it in the marketplace, take 80% revenue share. OAuth-flow registration, scoped permissions, embedded UI panels in the merchant admin, webhook subscriptions per app install, dedicated app dashboards for usage analytics.

Multi-tenant from day one

Built as a multi-tenant SaaS, not a single-store install with a tenant_id stapled on. Tenant isolation runs through PostgreSQL row-level security policies, per-tenant object-storage buckets, per-tenant Redis namespaces and per-request tenant resolution in shared middleware.

Go backend, modern stack

pgx, sqlc, Gin. PostgreSQL for storage, Redis for caching, S3-compatible object storage for assets, Traefik for routing. No PHP, no Rails monolith, no monolith at all — 20+ microservices, each independently deployable, each with their own migrations and tests.

Stable, versioned public API

Every primitive exposed over REST at api.axnify.com — products, variants, inventory, orders, carts, themes, customers, webhooks. Documented, versioned, and the same surface the official admin and storefronts call. No internal-only endpoints, no second-class headless tier.

How Axnify's architecture differs from monolithic commerce platforms

The classic ecommerce platform architecture — Shopify, Magento, WooCommerce — is a single monolithic codebase running against a single database. This makes the platform fast to build initially and easy to reason about for small stores. It also means every feature shares the same runtime, the same database connection pool and the same release cycle. When the platform team ships a new feature, every merchant gets it (or the bug that came with it) on the same day.

Axnify takes the opposite approach. Each commerce domain lives in its own Go microservice. The product service owns products, variants, options and inventory. The order service owns orders, line items and fulfilments. The cart service owns active carts. The asset service owns file storage. The theme service owns themes, pages, sections and blocks. There are 20+ such services in total, each with their own PostgreSQL schema, their own migrations directory, their own tests, each independently deployable.

Services communicate over HTTP using internal-key authentication for service-to-service calls and JWT/X-Tenant-ID for end-user-originated calls. Shared concerns (auth, tenant resolution, rate limiting, logging, metrics, error tracking) live in a shared middleware package that every service imports. PostgreSQL is shared but schemas are isolated; one service can JOIN against another's tables through views, but writes go through the owning service's API.

For you as a developer integrating against the platform, this architecture has practical implications. APIs are stable per-service: the product API evolves at its own pace, the order API at its own. Webhooks come from the service that owns the event, with rich metadata about which service emitted what. Performance is bounded per-domain: a slow report query in the analytics service can't block your order-create call. And debugging is easier because every request carries a request ID that's logged across every service it touches.

What developers are building on Axnify

Custom checkout flows

Skip the default checkout entirely. Drive a custom React/Vue checkout off the cart and payment APIs while still using Axnify for inventory, tax and fulfilment downstream. The cart API gives you full control over what happens at each step.

ERP / OMS integrations

Two-way sync with NetSuite, SAP B1, Dynamics 365. Webhook-driven incremental updates push new orders to your ERP in real time; bulk REST endpoints handle nightly reconciles. Idempotency keys on every write so retries are safe.

Internal merchant tooling

Build admin panels your CS team actually wants to use. Use staff API tokens with scoped permissions; the merchant admin and your custom tools coexist. Read-only views can be granted to support staff who shouldn't have full admin access.

Multi-frontend deployments

Same product catalog, multiple storefronts (web, mobile app, in-store kiosk, voice assistant). Each consumes the same API; Axnify is the source of truth. Cache invalidation events fire when a product changes so every frontend can re-fetch.

Common questions from developers

Is there a GraphQL API?

REST only today. We weighed GraphQL during architecture and chose REST for cacheability (HTTP semantics, CDN-friendly), simpler client libraries and easier debugging. If GraphQL is a hard requirement for your team, Saleor or Vendure are better fits today.

What are the API rate limits?

1,000 req/min per API token on Starter, 10,000 on Pro, unlimited (fair-use only) on Business+. Bulk endpoints (e.g. product import) are exempt from the per-minute cap and rate-limited by total bytes per hour instead. Rate-limit headers (`X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset`) are returned on every response.

Is Axnify open source or self-hostable?

No — Axnify is a fully managed SaaS. We run and operate the platform so you can focus on building your store and your integrations. Every capability is exposed through the public REST API and webhooks at api.axnify.com, so you don't need server access to extend or integrate with it.

How do app subscriptions get paid?

Customer subscribes via the merchant admin → Stripe handles billing → Axnify takes 20% platform fee → 80% pays out to your connected Stripe account weekly. Refunds and chargebacks flow back through the same path. App developers see their revenue in a dedicated dashboard with payout history.

How do I authenticate against the API?

Create a Personal Access Token in the admin under Developers → API tokens. Pass it as `Authorization: Bearer <token>` on every request. Tokens carry scoped permissions (read-only, read-write, admin), expire on a schedule you choose, and can be revoked instantly from the same screen.

What language/framework are themes written in?

Themes are JSON-defined block trees rendered by a shared TypeScript renderer (commerce-ui). The default block library covers ~40 widget types; you can ship custom widgets by writing a React component and registering it via an app. Theme code is editable per-merchant in the admin's theme editor.

Can you help me move my data from another platform?

Absolutely. Email support@axnify.com with the export file from your current platform — we accept Shopify, WooCommerce, Etsy, Squarespace, Big Cartel, Gumroad, Sellfy and most other common formats. Our team handles the migration of your products, variants, customers and orders end-to-end, free of charge for standard imports.

Stop fighting your ecommerce platform

Sign up free, get an API token in 60 seconds, start integrating.