The Frappe Framework is the engine ERPNext runs on: a full-stack web framework in Python and JavaScript, with MariaDB as the database, where every business document is a DocType that the framework turns into a form, a list, a report, a permission set and a REST API endpoint without extra code. That is what makes ERPNext practical to adapt: most changes are framework work, not core surgery.
Thirvusoft employs Frappe developers alongside its ERPNext consultants, so customisation is done by people who also understand the accounting and stock entries a change will affect. This page explains when to customise and when to configure, what the team has built, how an engagement runs and the practices that keep custom code safe through upgrades.
What Frappe gives a developer out of the box
A DocType in Frappe is a declaration of fields, their types, links to other DocTypes, naming rules, permissions by role and the events that fire on validate, submit and cancel. Declare one and the framework provides the database table, the form, a list view with filters, a report builder, print formats, a REST API with authentication by API key or session, a scheduler for background jobs and a permission model.
On top of that sit the tools that let most customisation happen without a new app: custom fields and property setters that change standard forms, client scripts in JavaScript for form behaviour, server scripts in Python for validations, and notifications and workflows configured from the browser. A developer reaches for a custom app when the change needs its own tables, its own business logic or a mobile front end.
- DocTypes with child tables, links, dynamic links and fetch-from fields.
- Document events (before_insert, validate, on_submit, on_cancel) for business rules.
- REST and RPC APIs for every DocType and any whitelisted Python method.
- Scheduler for hourly, daily and cron-style background jobs.
- Role and user permissions, workflows, notifications and webhooks.
Configure first, customise second
The cheapest customisation is the one you do not write. A large share of the requests Thirvusoft receives, such as a new field on the sales invoice, a mandatory approval above a discount threshold, a print format with the company's letterhead in Tamil, or an email when stock falls below reorder level, can be met with configuration that survives every upgrade untouched. Our consultants try that route first.
Custom development is the right answer when the process genuinely does not exist in ERPNext. A tyre service centre needs vehicle and service-job records; a lending business needs loan schedules, deposits and interest postings; a paver block plant needs mould-wise production and dispatch weights. These are new DocTypes with their own logic, and building them as a separate Frappe app is the correct engineering choice.
The dividing line we use is simple: if the change is about how a standard document looks or validates, configure it. If it is about a new kind of record or a calculation ERPNext does not perform, write an app.
Custom apps Thirvusoft has built on Frappe
The team's own products, listed on the products page, are Frappe apps installed alongside ERPNext rather than modifications of it. Each began as one customer's requirement and was built so the next customer in the same trade could install it as a package, with ERPNext's accounts and stock underneath.
- Tyre service management for tyre dealers and service centres, connected to ERPNext stock and invoicing.
- Pavers and hollow bricks manufacturing ERP, covering mould-wise production, curing, raw material consumption and dispatch, in use at SMT Pavers & Blocks and Sri Ganapathy Pavers & Bricks, both published case studies.
- Thirvu Insurance Management, an insurance management application described in a published case study.
- Thirvu Lending & Deposit Management and the Smart Deposit Management System: loans, fixed and recurring deposits, with postings flowing into ERPNext accounts.
- Distribution management with a dealer mobile app, built in Flutter, for dealers to place orders against ERPNext through its REST API.
- Event management for businesses that book resources and bill per event.
How a development engagement works
Development starts with a written specification, not a phone call. A business analyst sits with the people who will use the feature, documents the current process, the records involved and the reports expected, and the developer turns that into a DocType design with its events and validations. You see this document, with the estimate attached, before any code is written.
Work is delivered in short cycles on a staging site that mirrors your live system. Each cycle ends with the feature demonstrated on your data, corrections noted, and a decision on whether to move it to production. Developers can be engaged for a fixed-scope build, such as a custom app or integration, or on a retained basis for companies whose ERPNext keeps evolving. Both are quoted in writing after scoping.
- Fixed-scope: one specification, one price, one delivery date.
- Retained: a monthly block of developer time for continuous change requests, reviewed each month.
- Handover: source in a git repository you own, with installation notes any other implementer can follow.
Code quality and upgrade-safe practices
Custom code is only an asset if it still works after the next ERPNext release. The rules Thirvusoft follows are the ones the Frappe community recommends, and they exist because the alternative, editing core files, produces systems that can never be upgraded.
- All customisation lives in a separate app; ERPNext and Frappe core are never edited.
- Standard documents are extended through hooks such as doc_events and override_whitelisted_methods rather than copied and modified.
- Custom fields and property setters are exported as fixtures so they can be re-applied on any site.
- Data changes ship as patches, so an upgrade or fresh install runs them in order.
- Code is version-controlled in git, reviewed before merge and tested on a staging copy of your database before release.
- Each app is checked against the next ERPNext release before you are asked to upgrade.
Integration capabilities
Because every DocType has a REST API, connecting ERPNext to other systems is routine. Thirvusoft has delivered integrations with WhatsApp for invoices and reminders, biometric attendance devices from eSSL, ZKTeco and others for Frappe HR, e-invoice and e-way bill portals through India Compliance, IndiaMART for pulling enquiries into CRM, cloud telephony for click-to-call and call logging, and Razorpay for online payments.
Custom integrations follow the same pattern: an inbound webhook or a scheduled job on the Frappe side, mapping to standard DocTypes, and error logging that a non-developer can read. Weighbridges, barcode scanners, label printers and third-party e-commerce platforms are typical requests from manufacturers and distributors in Tamil Nadu.