A build-to-order Frappe app that lets your team re-skin the entire ERPNext customer/vendor portal and website — navbar, footer, cards, login, signup and CMS pages — from a single settings DocType, no front-end code required. ECOSIRE scopes, builds, installs and supports it for you. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $99.00 USD; request a quote for a scoped proposal.
Illustrative previewA build-to-order Frappe app that lets your team re-skin the entire ERPNext customer/vendor portal and website
— navbar, footer, cards, login, signup and CMS pages — from a single settings DocType, no front-end code required.
ECOSIRE scopes, builds, installs and supports it for you.
No DIY setup — a working app, built, installed and supported by ECOSIRE.
Start with a one-time build price. We scope it with you at kickoff.
ECOSIRE builds, configures and installs it on your ERPNext.
You go live in about 2–4 weeks, with a post-launch support window.
Out of the box, the Frappe/ERPNext portal and website look unmistakably like Frappe: the default navbar, the stock login screen, generic card layouts, and a footer that says "Powered by Frappe." For a business that puts customers, vendors, or members in front of that portal — to view invoices, raise support tickets, submit RFQs, or track orders — the un-branded experience quietly erodes trust. ERPNext natively gives you a website settings page, a splash logo, and a brand color, but the moment you want a custom navbar structure, branded login and signup pages, restyled portal cards, or per-role theming, you fall off the edge of what the UI can do and into hand-editing website_theme, overriding portal templates, and maintaining fragile CSS that breaks on the next bench update.
We build a proper Frappe app — its own module, installed with bench get-app and bench install-app — that turns all of this into structured configuration. At its core is a Portal Theme Settings single DocType (plus child tables for menu items, CSS injection blocks, and per-role overrides) that your admins edit like any other ERPNext form. On save, a hooks.py doc_events handler validates the theme and regenerates the compiled CSS/bundle, so the branded navbar, footer, card styles, and login/signup pages render immediately without a developer touching a template. We wire the theme into Frappe's website rendering through website_context, app_include_css, and portal_menu_items hooks so it applies consistently across www pages, the /app desk portal surfaces, and the logged-in customer portal — not just one of them.
Technically, the app exposes controlled extension points instead of a blank CSS box: named injection slots (global head, portal-only, login-only, print) so custom CSS lands in the right scope and survives upgrades; a whitelisted REST method (frappe.whitelist()) that returns the active theme as JSON for any headless or mobile front-end you run against the Frappe REST API; and a nightly scheduler_events job that can rebuild assets and warm caches. Branding assets (logo, favicon, OG image, web fonts) are stored as File records and referenced by field, so there are no hard-coded paths. Everything respects Frappe permissions and role profiles — you decide which roles may edit the theme, and per-role overrides let a "Vendor" portal look different from a "Customer" portal. Responsive breakpoints and mobile navbar behavior are part of the theme model, so the branded experience holds up on phones, not just desktop.
Because this is build-to-order, we start from your actual brand and portal, not a template gallery. After a short scoping call we confirm exactly which surfaces you need themed (portal, website, login, specific DocType web views), your brand tokens, and any v15/v16 target. We build against a copy of your requirements, ship installable source you own, and hand over a git repository — not a black box. Typical delivery is 2–4 weeks from confirmed scope, and we install it, run UAT on a staging bench with a rollback plan, and stay on for a post-go-live support window.
Companies whose customers log into ERPNext to see invoices, orders and tickets, and who need the portal, login and website to look like their brand — not stock Frappe — without a permanent front-end developer.
Procurement-heavy organizations exposing an RFQ and supplier portal who want per-role theming so the vendor experience is distinct, professional and on-brand across navbar, cards and login.
Consultants delivering ERPNext to end clients who need a reusable, upgrade-safe theming layer they can configure per client instead of hand-editing `website_theme` and portal templates on every project.
Non-technical brand stewards who need to control logos, colors, fonts, footer content and login copy from an ERPNext form governed by permissions, without filing a ticket for every tweak.
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| Portal navbar & footer branding | Configured from a DocType, applied via hooks across portal and website | Possible but hand-coded per template each time | Often only global logo/color, limited navbar control | Logo and brand color only; fixed structure |
| Branded login / signup pages | Fully themed while keeping native auth flow intact | Requires overriding auth templates by hand | Rarely covered; usually website pages only | Stock Frappe login screen |
| Custom CSS management | Named, scoped injection slots that survive upgrades | Ad-hoc CSS prone to breaking on bench update | Single CSS box, unscoped | Edit `website_theme` CSS field manually |
| Per-role portal theming | Role-profile-based overrides (Vendor vs Customer) | Custom conditional logic to build and maintain | Typically one theme for all roles | Not supported |
| Upgrade safety (v15/v16) | Isolated app, documented upgrade notes, hooks not core edits | Depends on discipline; core edits risk being overwritten | Varies by vendor; may lag new versions | Safe but minimal capability |
| Headless / REST access to theme | Whitelisted method returns theme as JSON | Would need to be built separately | Usually none | None |
| Ownership & handover | Full source + git repo; you own and can extend it | You own it but built from scratch at higher cost | Licensed binary, limited or no source | N/A — it's core |
| Support & delivery model | Build-to-order, UAT, rollback, post-go-live support window | Depends on your team or contractor availability | Generic vendor support, no bespoke fit | Community/self-serve |
No. This is build-to-order. ECOSIRE builds the app against your actual brand, portal surfaces and Frappe version, then installs it on your bench. There is no instant download — you receive installable source code and a git repository as part of the handover.
Typical delivery is 2–4 weeks from confirmed scope. The timeline starts once we've agreed on which surfaces to theme (portal, website, login, specific web views), your brand tokens and your target version. A short scoping call kicks it off; complex per-role or multi-brand requirements sit at the longer end of that range.
Yes — that's the point of building it as a proper Frappe app. Instead of hand-editing core templates and `website_theme`, we use `hooks.py`, scoped CSS injection slots and File-backed assets, so your branding is isolated from core and re-applies cleanly after `bench update` and `bench migrate`. We document upgrade notes for v15 and v16.
Every build includes a post-go-live support window for defect fixes and configuration help. Because you receive the git repository and full source, your own team can also extend it. Beyond the included window, ECOSIRE offers ongoing support and enhancement engagements.
Yes. The app exposes a whitelisted method (`frappe.whitelist()`) that returns the active theme as JSON over the Frappe REST API, so a custom mobile app or headless front-end can consume the same brand tokens the server-rendered portal uses.
Yes. Per-role overrides use Frappe role profiles, so a Vendor portal and a Customer portal can differ in navbar, cards and login while sharing one installed app. You control which roles may edit the theme through standard ERPNext permissions.
No core files are patched and no business data is changed. The theme lives in its own module with its own DocTypes and File records. We install on a staging bench first, run UAT, and keep a rollback plan and site backup before touching production.

A build-to-order 2Checkout (Verifone) payment integration for ERPNext, giving global digital-goods sellers card acceptance, 45+ local payment methods, multi-currency checkout, and reconciled invoices. ECOSIRE scopes, builds, installs, and supports it on your ERPNext v15/v16 instance.

A build-to-order ERPNext application for anonymous 360-degree reviews — configurable peer, manager, report and self rater groups, weighted competency scoring, and aggregated gap-analysis and heatmap reports. ECOSIRE scopes, builds, installs and supports it on your Frappe/ERPNext v15/v16 instance.

A build-to-order ERPNext app that detects abandoned webshop and POS carts, then runs multi-channel WhatsApp, email, and SMS recovery and win-back sequences with dynamic cart content and coupon injection. ECOSIRE scopes, builds, installs, and supports it for your v15/v16 instance.

A build-to-order ERPNext app for running B2B account-based campaigns: define target-account lists, sequence outreach calls, auto-distribute them to agents, and score account engagement across every contact. ECOSIRE designs, builds, installs and supports it after you confirm scope.
A build-to-order Frappe app that lets your team re-skin the entire ERPNext customer/vendor portal and website — navbar, footer, cards, login, signup and CMS pages — from a single settings DocType, no front-end code required. ECOSIRE scopes, builds, installs and supports it for you.