Kontor

Open-source modular ERP, CRM and business operations platform.

Kontor — modular business operations for ProcessWire

Kontor is an open-source ERP, CRM and business-operations suite built natively for ProcessWire. Its 35 components share one audited core and one permission-aware admin workspace while remaining independently installable.

Author: Maxim Semenov
Website: smnv.org
Support development: GitHub Sponsors · smnv.org/sponsor

What Kontor Does


  • Customers and revenue: contacts, companies, CRM intake, leads, pipelines, catalog, quotations, orders, invoices, payments and allocations.
  • Operations: inventory, purchasing, expenses, projects, tasks, collaboration, files, documents, mail and customer portal.
  • Finance and localization: double-entry ledger foundations and German business-document support.
  • Platform: queue, cache, search, reports, dashboards, workflows, automation, custom entities and settings migration.
  • Integration: authenticated REST resources, OpenAPI, webhooks, GraphQL and a scoped MCP provider for agent workflows.
  • Optional intelligence: provider-neutral AI summaries, drafting and extraction with approval boundaries.

The root Kontor module owns the service container, migrations, audit, backups, import/export and component registries. ProcessKontor composes the admin experience from domain traits under src/ProcessKontor/Traits/; business rules remain in their owning packages.

Admin Area


After installation, Admin → Kontor provides a single responsive workspace. Navigation only exposes installed components for which the current user has permission. Administrators can inspect component health, audit activity, backups, data exchange and settings migration without bypassing package ownership or organization boundaries.

Public and Integration Surfaces


Kontor does not take over a site's frontend. A site profile composes public pages with documented module services. Optional integration surfaces are:

  • REST: /api/kontor/v1/*
  • GraphQL: /graphql
  • customer portal routes supplied by KontorPortal
  • 13 scoped MCP tools supplied by KontorMCP

Exact PHP calls, stability rules and examples are documented in API.md. Agent and site-building boundaries are documented in AGENTS.md.

Requirements


  • ProcessWire 3.0.240 or newer
  • PHP 8.2 or newer
  • required PHP extensions: DOM, JSON and ZIP
  • a ProcessWire-supported database; the automated suite covers SQLite plus database-gated contracts

Installation


  1. Copy the repository to site/modules/Kontor/.
  2. Run composer install --no-dev in that directory.
  3. In ProcessWire Admin, choose Modules → Refresh and install Kontor.
  4. Install only the component modules required by the approved site Blueprint; ProcessWire enforces declared module dependencies.
  5. Assign the smallest required kontor-* permissions to each role and verify anonymous, member, editor and administrator paths.

Upgrades are migration-driven. Ordinary uninstall removes module wiring but deliberately preserves business tables and stored data. Back up and explicitly plan any later data removal.

Development and Testing


composer install
composer validate --strict
vendor/bin/phpunit

The release-candidate procedure, package matrix, persistent local ProcessWire environment and evidence are in TESTING.md and E2E_STATUS.md. External mail, payment, webhook, AI and storage services must be replaced by deterministic local fakes during tests.

Components


Kontor 1.0.0 contains 35 packages: AI, API, automation, cache, catalog, collaboration, contacts, CRM intake, CRM, dashboard, demo, documents, custom entities, expenses, files, Germany, GraphQL, inventory, invoices, ledger, mail, marketplace, MCP, payments, portal, projects, purchasing, queue, reports, sales, SDK, search, settings, tasks and workflow.

See docs/PACKAGES.md for responsibilities and dependency relationships, and docs/KONTOR-SPECIFICATION.md for the architecture.

Documentation


License


Kontor is released under the MIT License. © 2026 Maxim Semenov.

More modules by Maxim Semenov

  • Context

    Export ProcessWire site context for AI development (JSON + TOON formats)
  • Mercato

    ProcessWire-native commerce toolkit: products, cart, checkout, orders, payments, discounts, fulfilment, inventory, recovery, reports, and demo storefront.
  • Ichiban (SEO control center)

    Comprehensive SEO module: meta/OG/schema, audit, redirects, revisions, email reports.
  • WireWall

    Advanced traffic firewall with VPN/Proxy/Tor detection, rate limiting, and JS challenge
  • Cookie

    Privacy & cookie consent management: banner, category-based async loading of scripts/embeds, consent log, Google Consent Mode v2, visual widget builder.
  • Ally (a11y)

    Self-hosted accessibility widget powered by Sienna (MIT). Adds font, contrast, language, and navigation tools to any page. No external CDN — the JS bundle is served from your own server.
  • Subscribe

    Newsletter subscription handler with lists, double opt-in, honeypot, rate limiting and unsubscribe link.
  • Squad

    AI integration for ProcessWire. Supports Anthropic, OpenAI, Google, xAI, and OpenRouter.
  • Invite Access

    Restricts site access to visitors with a valid invite code. Designed for staging environments with multiple teams.

All modules by Maxim Semenov

Install and use modules at your own risk. Always have a site and database backup before installing new modules.