Skip to main content

Architecture Overview

Mimeeq is a cloud-hosted 3D product configurator platform. You embed it on your website, your customers configure products visually, and your code reacts to their choices through events, observers, and APIs.

This page maps the key building blocks and how they connect. Each section links to the detailed documentation.

The Big Picture

  ┌─────────────────────────────────────────────────────────────────┐
│ YOUR WEBSITE │
│ │
│ ┌───────────────┐ ┌───────────────┐ │
│ │ <mmq-embed> │ │ <mmq-auth> │ Web Components │
│ └──────┬────────┘ └──────┬────────┘ │
│ │ │ │
│ ▼ ▼ │
│ window.mimeeqApp window.mimeeqAuth JavaScript API │
│ ├── .observers ├── .authorization │
│ ├── .actions └── .initialize │
│ └── .utils │
│ │ │
│ ┌────┴────────────────────────┐ │
│ │ Events (CustomEvent on │ Browser Communication │
│ │ document) │ │
│ │ ├── outbound: configurator │ │
│ │ │ dispatches to your code│ │
│ │ └── inbound: your code │ │
│ │ dispatches to control │ │
│ │ the configurator │ │
│ └─────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘

│ HTTPS

┌─────────────────────────────────────────────────────────────────┐
│ MIMEEQ CLOUD │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Admin Panel │ │ REST APIs │ │ Webhooks │ │
│ │ (UI for │ │ Admin + Embed│ │ (server → │ │
│ │ products, │ │ (server-side │ │ your server)│ │
│ │ templates, │ │ integration)│ │ │ │
│ │ pricing) │ │ │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ CDN │ │ 3D Engine │ │ Auth │ │
│ │ (assets, │ │ (Babylon.js) │ │ (AWS Cognito) │ │
│ │ embed JS) │ │ │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘

Client-Side Building Blocks

Web Components

Two HTML custom elements are your primary integration surface:

ComponentPurposeDocs
<mmq-embed>Renders configurators, product lists, favourites, and basketComponents
<mmq-auth>Handles login, signup, password reset, and profile UIAuthentication

Both are loaded from a single script tag. The embed code — including the short-code and template attributes — is generated in the admin panel and copy-pasted into your page.

Embed Templates

An embed template is a named set of configuration options that controls appearance, behavior, and integration mode for an <mmq-embed> instance. Templates are created in the admin panel and referenced by ID in your embed code. They control things like which UI elements are visible, whether basket mode is enabled, pricing source, language, and custom CSS/JS.

JavaScript API

When the embed loads, it exposes three global objects:

ObjectAvailable afterPurposeDocs
window.mimeeqAppmimeeq-app-loaded eventConfigurator control: observers, actions, utils, configWeb API Reference
window.mimeeqAuthmimeeq-auth-loaded eventAuthentication: sign in/out, user data, session managementAuth API Reference
window.mimeeqEmbedEnvScript loadEnvironment config: CDN paths, API endpoints, Cognito settingsInternal — used by components automatically

mimeeqApp is the API you'll use most. It has three main branches:

  • Observers — reactive data streams that emit current state and update on every change (pricing, product data, selected options, etc.)
  • Actions — methods to change configuration, take screenshots, trigger finish events, control the 3D camera, etc.
  • Utils — helper functions for cart operations, short code generation, and configurator visibility

Events

Mimeeq communicates through standard DOM CustomEvent objects dispatched on document. Events flow in two directions:

  • Outbound — the configurator tells your code what happened (option selected, price changed, product added to cart). Listen with document.addEventListener().
  • Inbound (host-triggered) — your code tells the configurator what to do (show/hide loader, open summary). Dispatch with document.dispatchEvent().

See Events for the full catalog organized by workflow.

Events vs Observers

Events are point-in-time notifications — "the user just selected option X." Observers are continuous state streams — "here is the complete current configuration." Most integrations use both: events for analytics and triggering side effects, observers for keeping UI in sync. See Observers — Events vs Observers for a comparison.

Server-Side Building Blocks

REST API

Mimeeq provides two REST APIs for server integrations:

APIBase URLAuthenticationUse it for
Admin APIhttps://admin.mimeeqapi.com/v1Admin key in Authorization: Bearer …Overall Mimeeq setup and administrative data: catalog organization, global option sets, pricing data, and customer records; supported operations vary by resource
Embed APIhttps://mimeeqapi.comEmbed API key in X-API-KEYBring products customized by users into business workflows using their full configuration details and calculated prices

The Admin API works with the setup and administrative resources behind the configurator. The Embed API retrieves full configuration details for products customized by users so your systems can use those products in ecommerce, order processing, or other downstream workflows. It works with configured product data rather than managing account settings or product setup. For example, maintain a shared option set through the Admin API, then use the Embed API to retrieve the options selected for a particular configuration and its calculated price.

Manage both key types under Settings → Customer settings → API Management → API Keys. See the Authorization Guide for setup and the live Admin reference for current operations.

Webhooks

Webhooks push notifications from Mimeeq to your server when data changes — product created/updated/deleted, basket submitted, contacts and companies changed. They're configured in the admin panel and include retry logic and optional authentication headers.

Admin Panel

The admin panel is where business users configure everything that drives the developer-facing APIs: products, 3D models, option sets, materials, pricing, rules, embed templates, auth settings, and webhooks. Developers don't typically work in the admin panel directly, but understanding what's configured there helps explain the data you see through the APIs.

For admin panel documentation, see help.mimeeq.com.

Product Types

Mimeeq supports two main product types, each with different API behavior:

TypeDescriptionKey difference
StandardA single product configured by selecting options across blocksselectedOptions has one entry keyed "SINGLE_PRODUCT_ID"
ModularA scene where multiple component products are placed, moved, and configuredselectedOptions has entries per instance ID; modular-specific events and observers

See Product Types for full details.

Data Flow: From Configuration to Cart

A typical integration follows this path:

  1. Page loads → <mmq-embed> renders → mimeeq-app-loaded fires → your code subscribes to observers
  2. User configures the product → observers update continuously → your UI stays in sync
  3. User clicks "Add to Cart" → mimeeq-add-to-cart event fires with full payload → your code creates a cart line item
  4. Optionally, your server calls the Embed API to verify the configuration price
  5. Optionally, webhooks notify your server when basket is submitted

Where to Go Next

I want to…Start here
Embed a configurator on my pageGetting Started
Build a custom UI around the configuratorCustom Configurator Overview
React to user configuration changesEvents · Observers
Control the configurator from my codeProgrammatic Configuration
Integrate pricing from my own systemCustom Pricing Integration
Access product data from my serverAdmin API Quickstart · Authorization Guide
Get notified when data changes server-sideWebhooks
Add user login to my siteAuthentication