Hello,
I was assigned the task of implementing ERPNext in our company as the central system for production and warehouse processes. The complete workflow is quite extensive and covers everything from quotation and order intake, through production planning, material requirements and warehouse operations, to the final finished product.
One of the main requirements is to provide dedicated screens or kiosks for employees, production workstations and warehouse areas. Each kiosk should display only the information and functions required by the employee or location where it is installed.
Instead of giving every user access to the full ERPNext Desk interface, I decided to build a separate, simplified web application where ERPNext remains the core system and the single source of truth, while the custom application acts as a dedicated operational interface.
Current architecture concept
ERPNext is responsible for:
-
users, roles and permissions,
-
item and material master data,
-
warehouses and stock balances,
-
stock receipts, issues and transfers,
-
production and warehouse documents,
-
transaction history and audit trails,
-
eventually also BOMs, Work Orders, Job Cards and Quality Inspections.
The kiosk application retrieves data from ERPNext through the API and provides a simplified interface adapted to a specific employee, workstation or warehouse.
The goal is not to create a separate application for every kiosk. Instead, there is one shared application core, and additional modules can be enabled depending on the requirements of a particular user or location.
The current implementation includes:
-
user authentication based on ERPNext accounts,
-
feature visibility based on ERPNext roles and permissions,
-
item search by item code, name or barcode,
-
stock balance preview for one or multiple warehouses,
-
stock receipt and stock issue operations,
-
item master data preview,
-
warehouse location management,
-
visual indication of where an item is stored,
-
label printing,
-
operation history,
-
a touch-friendly interface designed for kiosk screens.
The idea is that adding a new workstation should not require building another application from scratch. It should only require creating or enabling a new module and configuring which warehouses, operations and sections are available on that kiosk.
Local workstation assistant
At the centre of the application there is an interactive assistant currently called Beemo.
The plan is to connect it to a locally hosted language model and speech recognition system. The assistant should listen to employee requests and control the application interface.
For example, an employee could say:
-
find a specific item,
-
show its warehouse location,
-
open the stock issue module,
-
check current stock availability,
-
display the current production task,
-
navigate to a specific section.
The assistant is intended mainly for intent recognition and interface navigation.
Operations that modify ERPNext data, such as issuing materials, completing a production operation or submitting a stock transaction, would still require explicit user confirmation.
A local LLM was selected because of data privacy requirements and the need to avoid sending internal production or warehouse information to external AI services.
AI tools such as GPT, Gemini and Claude Sonnet are being used during prototyping and development. However, the application architecture, permissions, business processes and ERPNext integration are designed around the company’s actual operational requirements.
Questions for experienced ERPNext users
How would you evaluate this approach?
Is an architecture where:
-
ERPNext remains the central transactional system,
-
a custom web application acts as the kiosk and operator interface,
-
all business transactions are submitted through ERPNext APIs,
-
users, roles and permissions remain managed in ERPNext,
-
each workstation receives only the modules it requires,
a reasonable solution for a larger number of production and warehouse kiosks?
I am also considering whether the application should remain a completely separate frontend communicating with ERPNext through REST APIs, or whether it would be better to gradually move it into a custom Frappe application and use the framework more directly.
I would particularly appreciate feedback regarding:
-
compatibility after ERPNext upgrades,
-
authentication and authorization in an external frontend,
-
REST API versus custom whitelisted methods,
-
using Socket.IO for real-time updates,
-
stock synchronization between multiple kiosks,
-
preventing duplicate or concurrent stock transactions,
-
maintaining a complete ERPNext audit trail,
-
managing permissions securely on both the frontend and backend,
-
deciding which functions should remain standard ERPNext features and which should be implemented in the custom interface.
I would appreciate a technical review of this architecture and any advice on potential problems that should be addressed before developing the system further.

