maximus Posted 6 hours ago Posted 6 hours ago Hi everyone, I’m happy to share the first public release of Kontor, an open-source modular ERP, CRM and business operations platform built natively for ProcessWire. Kontor is not intended to turn ProcessWire into one rigid business application. The goal is to provide reusable business components that can be combined according to the needs of a particular website or organization. Business software should become part of the ProcessWire site, rather than forcing the site to become part of a separate business platform. Kontor 1.0.0 contains 35 components. They share one audited core, one organization model and one permission-aware admin workspace, while remaining separately installable. Customers and revenue Contacts — contacts, companies, addresses, company memberships, tags, duplicate detection and import/export foundations. CRM Intake — configurable qualification forms for contacts, leads and deals, including required fields, validation rules and field bindings. CRM — leads, pipelines, stages, deals, lead-to-deal conversion, Kanban data and pipeline reporting. Catalog — products and services, categories, price lists, price entries, units of measure and tax-code references. Sales — quotations, orders, shared document lines, status workflows and quotation-to-order conversion. Invoices — invoices, numbering, issue workflow, overdue state, credit-note foundations and order-to-invoice conversion. Payments — payments, invoice allocations, partial payments, reversals and idempotent provider-integration boundaries. Finance and localization Ledger — double-entry accounting foundations, chart of accounts, journal entries, ledger lines and balances. Germany — German localization contracts, chart-of-accounts support and country-specific business-document formatting. Operations and project work Inventory — warehouses, balances, stock movements, reservations, transfers and barcode support. Purchasing — suppliers, purchase orders, receipts, receipt lines and inventory integration for received goods. Expenses — expense categories, expenses, receipt associations and approval workflows. Projects — projects, milestones, time tracking, billable items and invoice integration. Tasks — tasks, reminders, recurrence, calendar-oriented data and links to business entities. Collaboration, content and customer access Collaboration — notes, threaded comments, mentions, followers, notifications and unread state. Dashboard — widget registry, personal dashboards, role dashboards and configurable layouts. Reports — report-provider registry, report builder, charts, exports, scheduled reports and queued delivery. Documents — versioned document templates, HTML/PDF rendering, multilingual output and immutable issued-document snapshots. Files — private local storage, file metadata, signed temporary URLs, versions and a provider contract for external storage adapters. Mail — outbound history, inbound adapter contracts, shared mailboxes and links between messages and business entities. Portal — customer authentication, quotations, invoices, payments, files, signed downloads and profile access for self-service workflows. Platform, extensibility and integrations SDK — shared contracts, DTOs, event envelopes and value objects, plus conventions and scaffolding tools for new components. Workflow — a reusable state-machine engine with definitions, transitions, permissions, approvals and immutable history. Automation — event-driven rules with triggers, conditions, actions, dry runs, execution logs and recursion protection. Queue — asynchronous and delayed jobs, priorities, retries, progress, a dead-letter queue, handler registry and CLI worker. Cache — namespaced cache access, tag-based invalidation, an in-memory implementation, a ProcessWire adapter and an optional Redis adapter. Search — federated global search, provider and indexer registries, SQL full-text support and asynchronous indexing. Settings — versioned, secret-free workspace settings export, validation, preview and controlled import. Custom Entities — an entity builder with configurable fields, relations, views, permissions and optional API exposure. Marketplace — official and custom component registries, package metadata, publisher trust, security advisories and installability checks. API — bearer-token authentication, organization-scoped CRUD resources, filtering, field projection, OpenAPI, webhooks and idempotency at /api/kontor/v1/. GraphQL — a component-aware schema registry, query execution, permission enforcement and complexity limits at /graphql. MCP — 13 scoped tools for status, discovery, search, record operations, settings migration and API description, with permission and idempotency boundaries. AI — a provider-neutral layer for summaries, drafting and structured extraction, with previews and approval boundaries before sensitive actions. Demo — a connected order-to-cash reference scenario spanning Contacts, CRM, Catalog, Workflow, Sales, Projects, Files, Mail, Invoices, Ledger and Payments. Core and admin workspace The root Kontor module provides the shared service container, organization model, component and capability registries, migrations, audit log, backup and recovery, health checks, import/export and dependency management. ProcessKontor provides the unified ProcessWire admin workspace. Navigation is assembled from the components that are actually installed and the permissions available to the current user. Kontor uses ProcessWire modules, permissions, hooks and the admin interface. It does not replace ProcessWire’s frontend model. The site profile remains responsible for public templates, presentation, routing choices and project-specific composition. A project can install only the components required by its Blueprint. Supported public PHP methods and integration boundaries are documented in API.md; internal ProcessKontor admin handlers are not treated as a public site API. Current status This is version 1.0.0 and the first public release. I still recommend treating it as a testing release until it has received feedback from more ProcessWire installations, database configurations and hosting environments. The release-candidate programme currently includes: all 35 components installed and enabled together on a real ProcessWire site; 1,279 automated tests and 4,939 assertions in the documented release-candidate run; package-level unit, integration, migration and contract coverage; installation, historical upgrade, uninstall and reinstall testing; verification that ordinary uninstall preserves business data; permission, role and organization-boundary testing; browser journeys for CRM qualification and order-to-cash workflows; desktop and mobile responsive checks; accessibility, keyboard, browser-console and failed-network checks; REST, GraphQL, Settings and MCP contract coverage; deterministic local substitutes for mail, payment, webhook, AI and object-storage providers. Kontor is not presented as a certified accounting, tax or regulatory-compliance product. Country-specific rules, production-scale performance and real external providers must still be verified for each project. Please install it first on a development or staging copy. Make a backup before installing it into an existing site, assigning new permissions or enabling integrations. Requirements ProcessWire 3.0.240 or newer PHP 8.2 or newer DOM, JSON and ZIP PHP extensions A ProcessWire-supported database Installation Download or clone the repository into site/modules/Kontor/. Run composer install --no-dev inside that directory. In ProcessWire Admin, open Modules and run Refresh. Install Kontor first. Install only the business components required by the project. Assign the smallest required kontor-* permissions to each role. Repository and documentation GitHub: https://github.com/mxmsmnv/Kontor README: https://github.com/mxmsmnv/Kontor#readme Public PHP API: https://github.com/mxmsmnv/Kontor/blob/main/API.md Integration examples: https://github.com/mxmsmnv/Kontor/blob/main/EXAMPLES.md Components and dependencies: https://github.com/mxmsmnv/Kontor/blob/main/docs/PACKAGES.md Testing plan: https://github.com/mxmsmnv/Kontor/blob/main/TESTING.md Release-candidate evidence: https://github.com/mxmsmnv/Kontor/blob/main/E2E_STATUS.md License: MIT Feedback I would especially appreciate feedback about: installation on different ProcessWire, PHP and database environments; admin UX, naming and navigation; permissions and organization boundaries; missing hooks, services or extension points; real-world CRM, sales, finance and operations workflows; REST, GraphQL, webhook and MCP integration; component boundaries or unnecessary coupling; documentation gaps; scenarios that deserve an additional deterministic regression test. This is a large project and a significant personal milestone. My goal is to give ProcessWire developers a flexible foundation for building business applications while preserving the freedom to compose each website in the ProcessWire way. Testing, issues, architectural feedback and ideas are very welcome. 3
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now