Custom Frappe app development for the workflows ERPNext doesn't cover
The Frappe framework is what ERPNext is built on: define a doctype and you get the table, the form, the list view, the REST API, permissions, versioning and an audit trail before writing a line of code. We use it to build the applications that sit beside or on top of ERPNext — training and certification platforms, national survey programmes, CSR and learning systems, industry-specific extensions — as separate, upgrade-safe apps that a state programme or a factory can run for years.












































What custom Frappe work covers
The six kinds of Frappe application we build
Some of this is ERPNext with a few well-placed extensions; some of it never touches ERPNext at all. What is common is the framework — Python, MariaDB, metadata-driven doctypes — and the rule that keeps every one of these upgradeable: never change core. Where the job is a full ERP rollout, it starts on the ERPNext implementation page.
Standalone Frappe applications
Programme and platform apps with their own doctypes, roles, workflows and portals that reuse Frappe's users, permissions and reporting instead of rebuilding them — RKCL's training-centre and examination platform and MOSPI's national survey coordination system are both this.
Upgrade-safe ERPNext extensions
Custom fields, doctypes, print formats, client and server scripts and hooks packaged as a separate app with fixtures, patches and tests — the import-export duty module and channel-partner management at Mohan Impex, the production-KPI reporting layer and CRM integration at Jyoti CNC.
Workflows & approvals
Multi-level approvals, maker-checker, state machines with role-based transitions, notifications and escalations, and an audit trail on every change — MOSPI's data-validation workflow cut quality errors by 75 %; GRAAM's milestone tracking gave management real-time programme health.
Portals, dashboards & mobile UI
Vue.js and Frappe UI portals for the people outside your organisation — training centres, students, field officers, channel partners — plus number cards, charts and geographic dashboards for the people inside it, all responsive for phones in the field.
Integrations & APIs
Whitelisted REST endpoints, webhooks and scheduled jobs against HR systems, GST and e-invoice APIs, payment gateways, biometric devices, SMS and email — UNO MINDA's LMS enrols employees automatically from HR data by role and grade.
Reports, certificates & compliance
Query and script reports, government-format returns, automated report generation, and tamper-proof certificates with QR verification — RKCL, UNO MINDA and GRAAM each issue certificates this way; MOSPI's monthly ministry reports went from five days to same-day.
Why Frappe
What the Frappe framework gives you before you write code, and where it stops
Frappe is a full-stack web framework in Python and JavaScript with one unusual idea at its centre: the data model is metadata. A doctype defined in the framework produces the database table, the form and list views with filters and saved reports, a REST API with pagination and filters, role and field-level permissions, document versioning, comments, assignments, email and notification hooks, and a workflow engine — all without code. Around that sit background jobs on Redis Queue, real-time updates over socket.io, a report builder, print formats, a multi-tenant bench that runs many sites on one installation, and a mature upgrade path. For the kind of application most organisations actually need — records, rules, approvals, reports — that is roughly 80 % of the work already done.
That is also the honest boundary. Frappe is the right choice when the application is about business records and the people who act on them; it is the wrong choice for a high-throughput consumer product, a UI-first application where the interface is the product, or a domain that is not relational. In those cases we build on FastAPI or Django and say so during discovery. Compared with a low-code platform, Frappe is open source with no per-user licence, the customisation ceiling is 'anything Python can do', and the application is yours to host, read and hand to another team. Compared with a from-scratch framework, you skip months of building the parts every business application needs and inherit ERPNext's modules whenever accounting, HR or stock enters the picture.
Standalone or extension
A standalone app or an ERPNext extension — and the rules that keep both upgradeable
The first design decision is whether the application lives inside ERPNext or beside it. When the domain is one ERPNext already models — accounting, stock, buying, selling, manufacturing, HR — the answer is ERPNext plus a custom app that extends it: Mohan Impex's import-export duty and landed-cost handling and channel-partner management are extensions on a full ERPNext. When the domain is a programme or platform of its own — training centres and examinations, field surveys, capacity-building batches — the answer is a standalone Frappe app that may install alongside ERPNext for accounting and HR but owns its own doctypes and workflows: RKCL, MOSPI and GRAAM.
Either way the rules are the same, and they exist because the alternative — patching core — is how Frappe systems become un-upgradeable within two years. Fields and property changes go through Customize Form and Property Setters, exported as fixtures in your app. Behaviour goes into hooks — doc_events, overrides, scheduler events — and whitelisted API methods, never into edited core files. Anything larger is its own doctype in your app's module. Data changes ship as patches so an upgrade of a site replays them in order. Every app has tests and runs in CI against the Frappe and ERPNext versions you target. Upgrading from v14 to v15 then means upgrading the platform and re-running your tests — which is what we do on the annual support retainer, not a rescue project.
How we build
How a Frappe application gets built, from data model to release
A Frappe app is built from the data model outward. Discovery produces the doctypes — the nouns of the business, their fields, naming series, links and child tables — and the roles and permission rules that say who may see and do what. Workflows are drawn as state machines with the business before they are configured. From there the work divides into server-side Python (controllers on document events, validation, whitelisted APIs, scheduled jobs), client-side JavaScript (form behaviour, dashboards), portal pages in Vue.js or Frappe UI for external users, reports, print formats and notifications. Every piece lands in a versioned app repository and deploys through bench and CI to staging before production.
- Data model — doctypes, child tables, naming series, links, indexes; role and field-level permissions; permission query conditions for row-level access
- Workflows — states, transitions and the roles allowed to make them; notifications and escalations; assignment rules
- Server side — Python controllers on validate / on_submit / on_cancel, whitelisted REST methods, background and scheduled jobs on Redis Queue
- Client side — form scripts, list and dashboard views, number cards and charts; Vue.js or Frappe UI portals for external users
- Reports & documents — query and script reports, government-format exports, print formats, PDF certificates with QR verification
- Integrations — REST and webhooks to HR, GST, payment, SMS, email and device systems; OAuth2 or API-key authentication; retry and audit on every call
- Quality & delivery — unit and integration tests, fixtures, patches, CI on GitHub Actions, bench deployment to staging and production with backups and restore drills
Four applications
Four Frappe applications, four patterns we reuse
RKCL — Rajasthan's state IT-literacy programme — runs training-centre lifecycle management, student registration and batches, digital examinations with result processing, tamper-proof certificate generation and state-government reporting on one custom Frappe application: 5,000+ centres and 500,000+ students, certificates in the same day instead of two weeks, 80 % of manual reporting eliminated, non-compliant centres flagged automatically. The pattern: a programme platform where the framework's permissions and workflows are the product, scaled with indexing, background jobs and careful query design.
UNO MINDA — a Tier-1 automotive manufacturer — needed a learning and certification platform for a 3,000-strong workforce. We built the SAP Champion LMS on Frappe with structured module libraries, automated pre- and post-assessments, QR-verified digital certificates and real-time completion dashboards by department, location and skill, with enrolment driven automatically from HR data by role and grade. 3,000+ employees trained in the first three months, HR administration down 60 %, training cost per employee down 45 %. The pattern: a departmental app integrated with the systems of record so nobody keys data twice.
MOSPI — the Ministry of Statistics — coordinates national surveys through a custom Frappe app: survey programme management, field-officer assignment, multi-level data validation and approval, geographic progress dashboards and automated ministry reports, deployed on government-compliant infrastructure with role hierarchies matching the ministry's. Data-quality errors fell 75 %; monthly reports went from five days to same-day. The pattern: government-grade workflow and residency requirements met on an open-source stack. GRAAM — a social-sector organisation — manages capacity-building programmes, batches, certification and CSR project milestones with custom doctypes for what standard ERPNext does not cover; donor report preparation fell 70 % across 50+ concurrent batches. The pattern: ERPNext for the common modules, a custom app for the mission.
Scale & security
Performance, security and scale on Frappe
Frappe applications scale further than their reputation suggests when they are built with the database in mind. RKCL's half-million students and MOSPI's national survey load are handled with indexes chosen from real query plans, list views and reports that filter server-side, heavy work moved to background jobs, caching in Redis for reference data and permission checks, and permission query conditions rather than post-filtering so a user only ever loads the rows they may see. Load testing at the expected concurrency — thousands of centres submitting results on the same afternoon — happens before go-live, not after the first complaint.
Security is role-based access down to the field, document-level permission rules, audit trails on every change, rate limiting and API keys or OAuth2 on integrations, encrypted backups with tested restores, and hosting that matches the data's regulator: MOSPI runs under Government of India data-residency and security requirements; a manufacturer's LMS runs on its own cloud account; a small NGO runs on Frappe Cloud. Multi-tenancy — many sites on one bench — is used where an organisation runs several programmes or companies with separate data and shared code.
Timeline & cost
How long a custom Frappe app takes, and what drives the cost
As a guide from our own projects: a focused ERPNext extension — a few custom doctypes, a workflow, print formats and a report — takes one to three weeks and usually ships inside an implementation. A departmental application such as a learning platform, a partner portal or a compliance tracker, with its own doctypes, roles, portal pages, integrations and reports, is four to eight weeks to a first release. A platform application on the scale of RKCL or MOSPI — many roles, external users in the thousands, examinations or field workflows, government reporting — is a product build of four to nine months delivered in releases, with the first release live within the first quarter.
Five things set the cost: the number of doctypes and workflows and how much bespoke logic sits behind them; the portal and dashboard surface, especially for external users on phones; integrations and the maturity of the systems on the other end; data migration from registers, spreadsheets or a previous system; and hosting, security and residency requirements. User count matters little — there is no per-seat licence. Discovery is a fixed fee that produces the data model, workflow drawings and a costed release plan; builds are fixed price per release with change control; support is a monthly retainer that includes the annual Frappe and ERPNext version upgrade.
Who it is for
Manufacturers, programmes, NGOs and the teams that run them
Our custom Frappe work clusters where a business or a programme has a process that no packaged product models well and a budget that a licensed platform would consume. Manufacturers extending ERPNext for training, quality or trade compliance, as at UNO MINDA, Jyoti CNC and Mohan Impex. State and central government programmes that need a system of record with reporting to match, as at RKCL and MOSPI. Social-sector and CSR organisations that must show impact to donors, as at GRAAM. Corporate learning and certification functions of any size. Teams that already run Frappe and want an app rescued, upgraded or extended by people who will not patch core.
If your application does not fit Frappe, the discovery phase says so and the same Python team proposes FastAPI or Django instead. The wider practice — collaboration models, industries, hosting and the full list of case studies — is on the Frappe & ERPNext services page.
Start with the data model
Two to three weeks, fixed fee: the doctypes, roles and workflows drawn with your team, the integrations inventoried, and a costed release plan — whether or not you build with us.
Book a discovery callOur technology stack
What a custom Frappe application runs on
The Frappe framework and ERPNext where it helps, Python underneath, MariaDB and Redis beside it, Node.js for real-time updates, Vue.js for portals, and Docker behind NGINX on the cloud or server you choose.
How we deliver
From a data model on a whiteboard to an application your programme runs on
Five phases, each ending in something you can sign off: a data model and release plan, a working prototype on your real cases, a tested release, a migrated and trained launch, and a system that upgrades every year.
Discovery & data model
Process interviews, doctypes and roles drawn with your team, workflows as state machines, integration inventory, a costed release plan — fixed fee, two to three weeks.
Prototype
The doctypes, permissions and workflows configured on a development site with your real cases, reviewed by the people who will use them before any custom code is committed.
Build
Server logic, portal pages, dashboards, reports, certificates and integrations in two-week sprints, each demonstrated on the staging site with tests in CI.
Migrate, test & train
Data from registers, spreadsheets or the previous system loaded and reconciled; load testing at expected concurrency; role-based training and acceptance scripts.
Release & support
Go-live with a hypercare month, then a retainer that covers user support, small changes and the annual Frappe and ERPNext version upgrade with your app's tests.
Case studies
Custom Frappe applications and ERPNext extensions we have delivered
Programme platforms, learning systems, survey coordination and industry extensions — each with the outcome the client measured.
RKCL
State-Level Digital Skilling Programme Management & Certification Platform. ATS built a custom Frappe-based programme management application covering training centre lifecycle management, student registration and batch allocation, digital examination scheduling and result processing, automated certificate generation with tamper-proof verification, and management dashboards providing real-time programme KPIs for state government reporting.
Read case study
Automotive ManufacturingUNO MINDA
SAP Champion — Employee Training, Assessment & Digital Certification Platform for 3,000+ Employees. ATS built a custom Frappe/ERPNext-based Learning Management System (SAP Champion) with structured training module libraries, automated pre- and post-assessment workflows, digital certification issuance with QR verification, and management dashboards showing real-time training completion rates by department, location, and skill category.
Read case study
Government / Public Sector StatisticsGovernment of India — MOSPI
Statistical Data Management & Survey Programme Coordination Platform. ATS developed a custom Frappe Framework application for MOSPI covering survey programme management, field officer coordination and workload assignment, data validation workflows with multi-level approvals, real-time survey progress dashboards by geography, and automated report generation for ministry reporting requirements.
Read case study
NGO / Social SectorGRAAM
Integrated LMS & Programme Management System for Capacity Building & CSR Programmes. ATS implemented an integrated ERPNext-based LMS and Programme Management System covering course creation with structured curriculum management, batch and participant management, certification workflows for capacity building graduates, CSR programme lifecycle management with task tracking and milestone monitoring, and automated impact reporting dashboards.
Read case study
Import-Export & ManufacturingMohan Impex
End-to-End Business Digitisation — Import-Export, Manufacturing & HRMS on ERPNext. ATS Global Techsoft delivered a full AnvikERP (ERPNext) implementation covering Accounting, Buying, Sales, Manufacturing with Bill of Materials, Import-Export with custom duty compliance, Channel Partner Management, HRMS with payroll, and India-specific GST compliance.
Read case study
CNC Machine ManufacturingJyoti CNC Automation
Manufacturing ERP with QMS & Production Planning for CNC Machine Manufacturer. ATS deployed an ERPNext manufacturing ERP covering Bill of Materials management, Production Order planning and scheduling, Work Centre and Routing configuration, Quality Inspection plans for in-process and finished goods, Batch and Serial Number traceability, Warehouse management with barcode scanning, and a comprehensive reporting layer for production efficiency KPIs.
Read case study
From the blog
All articlesERPNext vs SAP Business One: an honest comparison for growing manufacturers
SAP is the default answer for enterprise ERP. But for mid-market manufacturers, ERPNext often delivers better outcomes at a fraction of the cost. Here's a direct comparison.
Mohammed Izhaar · JUN 10, 2026BACKEND ENGINEERING · 7 min readJava Spring Boot vs Node.js for enterprise APIs: how we decide
Both Spring Boot and Node.js build production-grade APIs. The choice comes down to team composition, throughput patterns, and integration requirements — not benchmarks.
Mahaboob Basha · MAY 20, 2026Also in our Frappe practice
Frappe & ERPNext services overview
Collaboration models, industries, the full stack and the case studies behind the practice.
ExploreERPNext implementation
When the job is the ERP itself — the six-phase method, timelines and cost drivers, migration and hosting.
ExplorePython development
The engineering under every Frappe app, and FastAPI or Django when the application is not a fit for Frappe.
ExploreFAQs
Custom Frappe apps — questions we are asked first
What is the difference between Frappe and ERPNext?+
Frappe is the framework — Python, MariaDB, metadata-driven doctypes, permissions, workflows, REST APIs and a UI — and ERPNext is the ERP application built on it. You can build a Frappe application without installing ERPNext at all, or install ERPNext alongside your app when you need accounting, HR or stock. RKCL and MOSPI are Frappe applications; Mohan Impex and Jyoti CNC are ERPNext with extensions.
Can you build a custom app without ERPNext?+
Yes. A standalone Frappe app gets the framework's forms, list views, REST API, permissions, workflows, reports and background jobs without any ERP modules. It is the right choice for programme, learning, survey, registration and compliance platforms whose domain is not accounting or stock. ERPNext can be added later on the same bench if the organisation grows into it.
Will a custom app break future Frappe or ERPNext upgrades?+
Not if it is built as the framework intends. We never modify core: customisations are fixtures and property setters, behaviour lives in hooks and whitelisted methods, new records are your app's own doctypes, data changes are patches, and the app has tests. Upgrading then means upgrading the platform on a staging site and running your tests — which our support retainer does every year.
Can it integrate with our HR, GST, payment or device systems?+
Yes. Frappe exposes a REST API for every doctype and lets us add whitelisted endpoints, webhooks and scheduled jobs. We have integrated HR data for automatic enrolment, GST and e-invoice APIs, payment gateways, SMS and email providers and biometric devices. Each integration is authenticated, retried, logged and monitored, and built behind an adapter so a change on the other side is a change in one place.
How long does a custom Frappe app take, and what does it cost?+
From our projects: one to three weeks for an ERPNext extension, four to eight weeks for a departmental application to first release, four to nine months for a platform on the scale of RKCL or MOSPI, delivered in releases. Cost follows doctypes and workflows, portal surface, integrations, data migration and hosting requirements — not user count. Discovery is a fixed fee; builds are fixed price per release.
Can you take over an existing Frappe app?+
Yes. We start with a review of the app against the upgrade-safety rules — core modifications, missing tests, un-patched data changes — and a plan to bring it back to a supportable state, usually alongside a version upgrade. After that it goes on the same support retainer as apps we built, with the same people answering the tickets.
Let’s work together
Tell us what the spreadsheet is doing today
Send the process you want to replace — who records what, who approves it, who needs the report — and the systems it should talk to; we will come back within a week with a discovery proposal and a bracket.