The same ERP in the cloud and on your own servers.
Thales ERP is an ERP that behaves identically in the cloud and on-premises, complies with Turkish e-document regulation and allows customisation that survives upgrades. Finance and accounts, inventory and purchasing, sales and CRM, production and MRP work on the same record, in one core.
Product sheet
- Code
- P-THALES
- Owner
- Miletus Digital
- Deployment
- Cloud · on-premises (Linux)
- Modules
- Finance and accounts · Inventory and purchasing · Sales and CRM · Production and MRP
- Phase
- M4
- Updated
- 11 October 2026
Three claims, three mechanisms.
- 01 / 03
Day-one deployment parity.
The cloud install and the install on your own servers run from the same release artefact, with the same API and the same database migration chain. There is no environment-specific code branch, so moving where it runs changes no behaviour, screen or report.
- 02 / 03
Provider-independent e-document compliance.
e-Invoice, e-Archive and e-Waybill sit in a compliance layer kept apart from the sales, inventory and finance schema; a private integrator and a direct GİB connection both attach only to that layer. Changing provider touches neither the data schema nor the workflow.
- 03 / 03
Customisation that survives upgrades.
Customisation is written to five defined rungs, not to the core code: configuration, typed field, versioned API and event, workflow, signed extension. Forking the core and writing to the database directly are closed, so moving to a new version does not erase it.
Four modules, one record.
Each module carries one role's daily work; the record doesn't change hands between modules, it stays in one place.
- M-01Jobs · 4
Finance and accounts
- Chart of accounts, immutable journal and reversals
- Customer and supplier accounts, collections and payments
- e-Invoice, e-Archive and e-Waybill flow
- Cash and bank accounts, fiscal period close
Role profileAccounting / finance - M-02Jobs · 4
Inventory and purchasing
- Warehouses, lot and serial traceability
- Stock movements, reservations and counts
- Purchase orders, goods receipt and invoice matching
- Label printing and barcodes
Role profileWarehouse / inventory - M-03Jobs · 4
Sales and CRM
- Quotes, orders and shipments
- Lot links on shipments
- Customer records, addresses and tax IDs
- Orders linked to invoicing and collection
Role profileSales - M-04Jobs · 4
Production and MRP
- Bills of materials and routings
- Work orders and shop-floor terminal
- Material shortages and requirements plan (MRP)
- Capacity load view
Role profileProduction planning / shop floor
Screen tour.
Screens are shown with synthetic data. Until the real screenshots are added, each frame holds a schematic of that screen.




What it is built with.
The short list for the technical buyer: what it is built from, and why it holds up through upgrades.
- 01Go backend
- 02React + Vite front end
- 03PostgreSQL
- 04Modular monolith
- 05/api/v1 · OpenAPI contract
- 06RBAC + segregation of duties
- 07Append-only audit trail
- 08Transactional outbox
- 09PostgreSQL row-level security (RLS)
- 10Podman / systemd, rootless
By measurement, not instinct
Works together with.
Thales keeps the operational record; two Miletus ADS products carry the marketing side. All three are parts of the same data line.
- Marketing measurementMİLETUS ADSMiletus PanelA marketing measurement and decision panel that unifies ads, analytics, e-commerce and WhatsApp data and shows true cost.See it on Miletus ADS
- WhatsApp and leadsMİLETUS ADSMiletus CRMA light CRM that keeps B2B dealers and B2C customers in one place, brings WhatsApp into the inbox and links orders to the pipeline.See it on Miletus ADS
- 01ADSAdMiletus Panel
- 02ADSConversation / leadMiletus CRM
- 03DIGITALOrder / stock / invoiceThales ERP
- 04ADSMeasurement / decisionMiletus Panel
A product carries each step from ad to measurement; the data between the steps is the same.
What do people ask about Thales ERP?
Cloud or on-premises?
Either. Thales runs from the same release artefact, with the same API and the same database migration chain, in the cloud and on your own servers; there is no environment-specific code branch. An on-premises install runs rootless on Podman and systemd and does not have to connect to our cloud servers; the choice changes where it runs, not the product.
What happens to our current accounting software?
Thales does not carry over past transactions from the old software; the switch happens from a start date. A new company opens with a ready chart-of-accounts template, account records are set up and the opening balances at that date are entered. Past periods stay in your current software; we settle the start date together in the diagnostic.
What if our e-invoice integrator changes?
e-Invoice, e-Archive and e-Waybill sit in a separate compliance layer; a private integrator and a direct GİB connection both attach only to that layer. When the provider changes, the connection settings change; the data schema and the workflow stay as they are.
How is customisation done?
On five rungs, starting with the lightest: configuration, typed field, versioned API and event, workflow, signed extension. Forking the core and writing to the database directly are closed, so customisation stays in place when you move to a new version. The runtime for signed extensions belongs to a later phase.
Who holds our data?
You do. On-premises, the data stays on your own servers, and sending telemetry out is not required either. In the cloud your data is kept in your own tenant: every request is bounded on the server by tenant context and PostgreSQL row-level security. Permission, financial-record and document changes are written, in the same transaction, to an append-only audit trail; if the trail cannot be written, the change is not made.
Which companies is it for?
SMEs in manufacturing, trade and distribution, or services and projects; all three run on the same core. When accounting, warehouse, sales and production have to work on the same record, Thales holds that shared record; a short diagnostic settles together whether it fits.
Bring one job you can't measure
The first conversation is a diagnosis, not a sale — and it's free. After a fixed-frame call you get one written page: where to start, and what not to do.
We reply within two business days.
Describe the job you can't measure in one line; in a free, fixed-frame conversation we'll pin down where to start.
Request a short diagnostic →info@miletusdigital.com