ERPNext CRM Enhancement Strategy — Plugins, Custom Build, and SaaS Licensing

Date: 2026-03-10 Context: Solanasis ERPNext v16.9.0 running locally via Docker. Planning CRM enhancements that align with the SaaS resale strategy. Related: open-source-erp-research.md (Sections 7, 9, 15, 18, 20)


The Licensing Reality: Why We Can’t Just Install Frappe CRM

This is the single most important consideration before installing any plugin.

AppLicenseSaaS Safe?Why
ERPNextGPL-3.0YesGPL SaaS loophole — no distribution = no source disclosure obligation
Frappe FrameworkGPL-3.0YesSame as above
Frappe CRMAGPL-3.0NOAGPL Section 13 closes the SaaS loophole — network users must be offered source code
Frappe HelpdeskAGPL-3.0NOSame AGPL problem
Frappe InsightsAGPL-3.0NOSame AGPL problem
Frappe WhatsApp (shridarpatil)MITYesPermissive license, no restrictions
Telephony (frappe)AGPL-3.0NOAGPL
RavenAGPL-3.0NOAGPL

Bottom line: Every major “Tier 1” Frappe app except ERPNext itself is AGPL-3.0. If we include any AGPL code in the Solanasis SaaS product, the AGPL’s network-disclosure requirements apply to the combined work, which destroys the entire business model of reselling a white-labeled, proprietary-feeling ERP platform.

Per the original research doc (Section 7):

CRITICAL WARNING: Frappe CRM is AGPL v3. Options: (1) Build your own CRM module on the GPL v3 Frappe Framework instead, (2) Accept AGPL obligations for the CRM component, or (3) Use Frappe CRM internally only (not as part of the client SaaS offering).

Per Dmitri’s answers (Section 18):

Deep UI redesign — completely custom look and feel. The Solanasis platform must be completely unrecognizable as ERPNext.


The Strategy: Two Tracks

Track 1: Internal Use (Solanasis’s Own Pipeline) — Install AGPL Apps Freely

For Solanasis’s own sales pipeline at db.zasage.us / db.solanasis.com, AGPL is irrelevant — we’re the users, not reselling it. We can install:

AppPurposeLicenseInstall?
Frappe CRMModern pipeline for our own salesAGPL-3.0Yes — internal use only
Frappe InsightsDashboards for our sales analyticsAGPL-3.0Yes — internal use only
Frappe HelpdeskOur own customer supportAGPL-3.0Yes — internal use only
Frappe WhatsAppWhatsApp outreachMITYes

Track 2: Client SaaS Product — Build Custom CRM on GPL Frappe Framework

For the white-labeled SaaS product Solanasis will resell, we build custom Frappe apps (GPL-3.0) that replicate the best aspects of Frappe CRM’s UX. This is where AI coding (Claude) does the heavy lifting.

Per the original plan (Section 20, Item 5):

CRM Module Build Specification — Custom CRM DocTypes (built on GPL v3 Frappe Framework, NOT Frappe CRM), Pipeline stages and workflow, Cold email integration architecture, Lead scoring algorithm design, Email sync and logging approach


What We Should Build as Custom Apps (GPL-3.0)

Study Frappe CRM’s UX, then build equivalents as custom Frappe apps. This is legal — we’re building on the GPL Frappe Framework, not incorporating AGPL code. We’re inspired by, not copying.

solanasis_crm (Custom Frappe App)

Inspired by Frappe CRM’s best features, built from scratch on Frappe Framework:

Feature to BuildFrappe CRM ReferenceImplementation Approach
Visual pipeline Kanban/crm pipeline viewCustom Vue.js page using Frappe UI components + drag-and-drop library
Unified activity timelineDeal/Lead detail pageCustom DocType with child table aggregating emails, calls, notes, tasks
Deal tracking with stagesCRM Deal doctypeCustom DocType extending ERPNext’s Opportunity with richer metadata
Lead scoringCRM Lead scoringCustom fields + server script that calculates score based on activity
Quick actions (email, call, note)Sidebar quick actionsCustom Vue component injected via client script
Email open/click trackingBuilt-in trackingCustom tracking pixel + link wrapping in a Frappe app
Dashboard cardsCRM dashboardCustom page with eCharts (MIT licensed, same as Frappe Insights uses)

solanasis_whitelabel (Custom Frappe App)

Already planned in the original research (Section 15):

  • Complete UI reskin (Navy #020532, Parchment FEF9F1, Copper C47A3D)
  • Custom login page, dashboard, navigation
  • Per-tenant theme configuration DocType
  • Dark mode
  • Command palette (Cmd+K) enhancement

solanasis_comms (Custom Frappe App)

Communication integrations (all MIT/GPL-safe):

IntegrationApproachLicense Safety
WhatsAppUse frappe_whatsapp (MIT) or build custom using Meta Cloud API directlySafe
Email campaignsBuild on Frappe’s built-in email infrastructureGPL — safe
Cold email at scaleIntegration layer with external tools (Instantly.ai, Smartlead) via API/webhookSafe — external service
TelephonyBuild custom Twilio integration using Twilio’s Python SDK (MIT) directlySafe — no AGPL dependency

Plugins Safe to Install NOW (for Both Internal + SaaS)

These have GPL-compatible or permissive licenses:

AppLicensePurposeGitHubStarsActivity
Frappe WhatsAppMITWhatsApp Business messagingActive392v1.0.11 (Nov 2025)
ERPNext Whitelabel (built-in)GPL-3.0Basic branding (logo, colors, hide ERPNext branding)Part of ERPNextBuilt-in

That’s it for safe-to-resell plugins. The ecosystem is almost entirely AGPL for anything modern and useful, which is exactly why the custom build strategy exists.


Plugins to Install NOW (Internal Instance Only — Not for Resale)

For our own db.zasage.us / db.solanasis.com instance to make it immediately usable:

PriorityAppWhat It Gives UsLicense
1Frappe CRMModern pipeline, deal tracking, unified timelineAGPL-3.0
2Frappe InsightsVisual dashboards, sales analyticsAGPL-3.0
3Frappe WhatsAppWhatsApp outreach from within CRMMIT
4Frappe HelpdeskSupport ticketing (when we have clients)AGPL-3.0

These make our internal instance a fully functional modern CRM immediately, and serve as the reference implementation to study when building the custom GPL apps for resale.


What “Taking the Best of Frappe CRM” Means in Practice

This is the AI coding strategy — what Claude will actually build:

Phase 1: Study & Spec

  1. Install Frappe CRM on our internal instance
  2. Document every UX pattern worth replicating (screens, flows, interactions)
  3. Read the Frappe CRM source to understand the Vue.js component architecture
  4. Write specs for equivalent custom DocTypes and pages

Phase 2: Custom DocTypes (solanasis_crm app)

Build on Frappe Framework (GPL-3.0), writing original code:

Custom DocTypes to create:
├── Solanasis Deal          # Extends concept of Opportunity with pipeline stages, value, probability
├── Solanasis Deal Stage    # Configurable pipeline stages with win probability defaults
├── Solanasis Activity      # Unified activity log (email, call, note, task, meeting)
├── Solanasis Lead Score    # Scoring rules engine
├── Solanasis Email Sequence # Multi-step drip campaign builder
├── Solanasis Call Log      # Telephony integration (Twilio SDK, not Frappe's AGPL telephony app)
└── Solanasis CRM Settings  # Pipeline config, scoring weights, integration keys

Phase 3: Custom Vue.js Pages

Build modern UI pages using Frappe UI (Vue 3 + Tailwind — both MIT licensed):

Custom pages to build:
├── /app/deals              # Kanban pipeline board (drag-and-drop)
├── /app/deals/{id}         # Deal detail with unified activity timeline
├── /app/crm-dashboard      # Sales analytics with eCharts
├── /app/email-sequences    # Visual email sequence builder
└── /app/lead-scoring       # Lead scoring configuration

Phase 4: Integrations

  • WhatsApp via frappe_whatsapp (MIT) or direct Meta API
  • Twilio via Python SDK (MIT) for click-to-call
  • Cold email tools via REST API webhooks
  • eCharts (Apache-2.0) for dashboard visualizations

License Audit Summary

ComponentLicenseCan Resell as SaaS?Notes
Frappe FrameworkGPL-3.0YesFoundation — safe
ERPNextGPL-3.0YesERP backbone — safe
Our custom apps (solanasis_*)ProprietaryYesBuilt on GPL framework, SaaS = no distribution
Frappe UI (Vue components)MITYesPermissive — can use freely
Tailwind CSSMITYesPermissive
eChartsApache-2.0YesPermissive
Twilio Python SDKMITYesPermissive
frappe_whatsappMITYesPermissive
Frappe CRMAGPL-3.0NOInternal use only
Frappe HelpdeskAGPL-3.0NOInternal use only
Frappe InsightsAGPL-3.0NOInternal use only
RavenAGPL-3.0NOInternal use only
Frappe TelephonyAGPL-3.0NOInternal use only

Immediate Next Steps

  1. Build custom Docker image with Frappe CRM + Insights + WhatsApp for our internal instance
  2. Use the internal instance as both our real sales tool AND a reference implementation
  3. Begin spec work for solanasis_crm custom app — document which Frappe CRM UX patterns to replicate
  4. Start building solanasis_crm as a custom Frappe app using Frappe Framework + Frappe UI (both GPL/MIT safe)

Discovery Resources

ResourceURL
Awesome Frappe (curated list)https://github.com/gavindsouza/awesome-frappe
Awesome Frappe (searchable)https://awesome-frappe.gavv.in/
Frappe Cloud Marketplacehttps://cloud.frappe.io/marketplace
Frappe CRM Docs (study reference)https://docs.frappe.io/crm
Frappe CRM Source (study reference)https://github.com/frappe/crm
Frappe UI Components (MIT — use freely)https://github.com/frappe/frappe-ui
ERPNext CRM vs Frappe CRMhttps://frappe.io/blog/frappe-crm/erpnext-crm-vs-frappe-crm-whats-the-difference
eCharts (Apache-2.0 — use freely)https://github.com/apache/echarts