Ravibharathi
Accounts and payments specialist. Deep work on payment reconciliation, exchange rate handling, POS, bank transactions, and GL entries.
Catch security holes, slow queries, and Frappe upgrade blockers before your customers do. Every finding ships with the file, line, and a Frappe-native fix.
Every paid scan ships with a free 30-min debugging call with our senior developers.
Every custom DocType, hook, and server script is a bet. Most teams only find out which ones didn't pay off when migration day, a slow query, or a permission leak makes it obvious.
N+1 queries hidden inside frappe.get_all loops, missing indexes, cache-busting patterns. Invisible until a customer complains.
Raw SQL built with string formatting, ignore_permissions=True sprinkled for convenience, unvalidated whitelisted methods.
Renamed APIs, deprecated hooks, changed signatures. You only see them when bench migrate fails at 2am.
Pick the version you're on and the one you're going to. We pull the real diffs from GitHub, run them against your app, and return a compatibility score with the exact files that need edits.
3 call sites in custom_app/utils.py
1 override in sales_invoice.py
Replace with the new scheduler events in hooks.py
New versions are added shortly after release. Our compatibility matrix covers every supported transition, forward and sideways.
Every scan checks your code against real Frappe and ERPNext conventions and scores it across the dimensions that matter. Each finding points to the exact line that breaks a best practice, with the Frappe-native pattern to use instead. Not generic linting.
Performance, Security, Code Quality, Framework Fitness, and ERPNext Conventions. Each scored independently so you know exactly where to invest.
Findings tiered Critical, Warning, Info, so the top of the list is the stuff that ships tonight.
Every issue links to path/file.py:L42. Click, fix, re-scan.
Not just “this is wrong”. A Frappe-native pattern to replace it with.
A one-page read for the CTO with scores and next steps. The detail, with anchor links, for the dev.
Paste a URL or drop a zip. Public or private, read-only scope, ephemeral workers, no clones left on disk.
53 rules written against real Frappe idioms: permissions, hooks, child tables, whitelisted methods, DocType lifecycle, hook overrides.
Use parameterised queries with frappe.db.sql(query, values). String interpolation on user input is exploitable.
# found return frappe.db.sql(f"SELECT * FROM tabCustomer WHERE name='{name}'")
Replace per-row frappe.get_doc with a single frappe.get_all + fields=[...] or pluck.
on_update handler takes (doc, method) in v15+. The single-arg form is removed in v16.
Not a dump of rule IDs. A plain-English diagnosis, a link to the line, and the Frappe-native pattern to replace it with. Plus a stakeholder summary up top for the people who aren't shipping the fix themselves.
Sign in with GitHub or upload a zip. Private repos supported, read-only scope.
Performance, Security, Code Quality, Framework Fitness, ERPNext Conventions. Turn each on or off before you scan.
Typical custom app finishes in 5–15 minutes. Live progress, email when it's ready.
Findings linked to exact file:line with a fix hint, a Frappe-native alternative, and a stakeholder summary.
Paste a public GitHub URL, or connect your account for private repos.
Active contributors to Frappe and ERPNext at Aerele Technologies. The code that already runs your ERPNext.
No subscriptions. Pay per scan. Pick the tier your repo falls into. Every paid scan includes a 30-min debugging call with our senior ERPNext developers.
Full audit across all five breakdowns, with severity-tiered findings, PDF + HTML export, and a stakeholder summary, plus a 30-min debugging call with our senior ERPNext developers to walk through findings and answer doubts.
Pick two Frappe versions. We pull the real diffs from GitHub, run them against your app, and return a compatibility score with the exact fixes, plus a 30-min debugging call with our senior ERPNext developers to plan the migration.
Prices shown in INR (₹), inclusive of applicable GST. Tiers are determined by both total lines-of-code and file count. We quote before you pay.
The 30-min debugging call is included with every paid scan and is scoped to that scan. Walk through the findings, ask doubts, plan next steps. Calls are scheduled after your scan completes; we pair you with the engineer best suited to your app's stack.
Need a deeper refactor or full migration help? Talk to Aerele.
Plain-English findings, every line located, plus a stakeholder summary for the people who sign off. Pay only for the scan you run.