Skip to content

Custom development for what ERPNext doesn’t do

Your business isn’t standard, and your ERP doesn’t have to be. When a process has no place in ERPNext, we build it on the Frappe Framework as a separate, versioned app that works with ERPNext’s own data.
quality_control (custom Frappe app)Release v1.4.0
Inspection RecordNew DocType, linked to Purchase Receipt
Tested
Inspection ApprovalWorkflow with QC and plant-head approval
Tested
Daily QC SummaryScript report, emailed every morning
Tested
Released to stagingYour team checks it with real data
Waiting for UAT
Released to productionUpgrades alongside ERPNext
Scheduled
Built as its own app in Git. ERPNext’s own code is never edited.

Start with the lightest change that does the job

Most requirements don’t need a new application. We move to the next option only when the one before it can’t meet the requirement.
Customizations and custom apps live in Git, never in ERPNext’s own code, so ERPNext updates don’t overwrite them.
Configure

It’s already in ERPNext

A setting, a master, a role or a naming series. No code, and nothing extra to maintain.
  • Settings
  • Masters
  • Roles
Customize

ERPNext nearly fits

Custom fields, print formats, validations, workflows and reports on ERPNext’s existing documents, exported to a versioned app.
  • Custom fields
  • Print formats
  • Workflows
  • Reports
Build

It doesn’t exist

New DocTypes, modules, screens and integrations in a separate Frappe app, linked to ERPNext’s own records.
  • Frappe apps
  • DocTypes
  • Custom UI

What custom development covers

Nine kinds of work on Frappe and ERPNext. The homepage explorer shows each one in more detail.

Frappe applications

Standalone apps with their own DocTypes, workflows, reports and screens, installed alongside ERPNext or on the Frappe Framework on its own.

ERPNext modules

New areas of ERPNext, such as a department’s own records and steps, linked to ERPNext’s documents instead of duplicating them.

DocTypes

New document types with their own fields, naming, permissions, and list and form views.

Workflows

Approval states and transitions, with who can act at each step, and code only for rules a workflow can’t express.

Dashboards

Workspaces with number cards and charts on live ERPNext data.

Reports

Report Builder, query and script reports that answer a specific question, with the filters and columns you need.

Custom UI

Screens designed for one group of users, from simpler forms to a focused page for one task.

Automation

Scheduled jobs, server-side rules and background jobs for work that should run by itself.

Integrations

APIs and connectors that move data between ERPNext and other systems.

Custom work that is as easy to maintain as the rest of your system

  • Frappe Framework
  • Python
  • JavaScript
  • MariaDB
  • Frappe UI
  • REST API
  • Built as separate Frappe apps, never by editing ERPNext’s own code
  • Versioned in Git and released through staging before production
  • Standard ERPNext first; custom code only where it earns its place
  • Built with Frappe’s own tools (DocTypes, hooks, the REST API, background jobs), so it looks and works like the rest of ERPNext
  • Tested end to end, then run through real scenarios by your team before it goes live

From requirement to running system

The stages a custom development project goes through, from the first conversation to support after go-live.
  1. Discovery

    Understand the business, the people and what has to change.
  2. Business process analysis

    Map how work actually flows today, step by step.
  3. Solution architecture

    Decide what is standard, what is configured and what is built.
  4. UI/UX

    Design screens around the people who will use them every day.
  5. Frappe / ERPNext development

    Build in a separate, versioned Frappe app, never in ERPNext’s core.
  6. Integration

    Connect ERPNext to the systems it has to talk to.
  7. Testing

    Test every workflow end to end, not just the code.
  8. UAT

    Your team runs real scenarios before anything goes live.
  9. Deployment

    Release to staging, then production, with a way back.
  10. Support & enhancement

    Fix, refine and extend as the business changes.

Common questions

Will custom development make ERPNext harder to upgrade?
It shouldn’t. We build in a separate app using Frappe’s extension points, so ERPNext’s own code is never edited. When ERPNext releases a major version, the custom app is tested against it and updated where needed, like any other Frappe app.
Does a custom Frappe app need ERPNext?
Not always. A Frappe app can depend on ERPNext and link to its records, or run on the Frappe Framework on its own when the process has nothing to do with ERP.
Can you extend an ERPNext system that is already live?
Yes. We start by reviewing what is configured and customized today, then add new work in a separate app so it doesn’t tangle with what is already there.
How do you decide between customizing and building?
We use the lightest option that meets the requirement: configuration first, then customization, and a custom app only when the process needs its own records, screens or logic.

Have a requirement ERPNext doesn’t support?

Tell us the process. We’ll tell you whether standard ERPNext covers it, what can be configured or customized, and what would need to be built.