Fsm
Field Service Management System Built on Frappe by Kodlyft
- Author: kodlyft
- Repository: https://github.com/kodlyft/fsm
- GitHub stars: 2
- Forks: 0
- License: MIT
- Category: Sales & CRM
- Maintenance: Actively Maintained
- Frappe versions: develop
Install Fsm
bench get-app https://github.com/kodlyft/fsm
Tags
- erpnext
- field-service-management
- fieldservice
- frappe
- fsm
- mobile
- vue
Add the Frappe Gems badge to your README
Maintain Fsm? Paste this into your README:
[](https://frappegems.com/gems/apps/kodlyft/fsm)
About Fsm
# KodLyft FSM
### Open-source field service management for the missing middle
[](https://github.com/kodlyft/fsm/actions/workflows/ci.yml)
[](https://github.com/kodlyft/fsm/actions/workflows/frontend.yml)
[](https://github.com/kodlyft/fsm/actions/workflows/linter.yml)
[](./LICENSE)
[](https://www.conventionalcommits.org)
[](https://prettier.io)
Scheduling, dispatch, mobile work orders, quoting, invoicing and a live customer portal,
built on [Frappe](https://frappeframework.com) + [ERPNext](https://erpnext.com), with no lock-in and transparent pricing.
---
## Why KodLyft
Field service software for small and mid-sized contractors (HVAC, plumbing, electrical, pest control,
appliance repair, …) is either too thin or too expensive, and there is **no credible open-source
option**. KodLyft fills that gap:
- **Complete core, done elegantly**: scheduling, work orders, mobile + offline, quoting, invoicing,
CRM and reporting that just work.
- **No lock-in**: self-host it, own your data, export anything. Open core, transparent pricing.
- **No-code customization nearly for free**: the Frappe DocType engine lets owners build their own
forms, fields and workflows, the single feature that most improves retention.
- **The differentiators incumbents skip**: Uber-like customer tracking, recurring-revenue service
contracts, and AI call intake that captures revenue lost before a job is booked.
## Architecture
KodLyft runs as one Frappe app with three frontends that share **one design language** (a single
`tokens.json` source of truth) and one backend.
```
┌──────────────────────── Frappe + ERPNext ────────────────────────┐
│ Native FSM doctypes (Job, Appointment, Technician, Contract …) │
│ reusing ERPNext masters (Customer, Item, Quotation, Invoice …) │
└───────────────▲───────────────▲───────────────▲───────────────────┘
│ REST / realtime │ │
┌───────────────────────┴───┐ ┌─────────┴─────────┐ ┌─┴───────────────────────┐
│ Console (back office) │ │ Portal (customer) │ │ Mobile (technician) │
│ Vue 3 + Tailwind v4 │ │ Vue 3 + Tailwind │ │ Ionic + Vue + Capacitor │
│ dispatch board, jobs, │ │ booking, live ETA,│ │ offline jobs, checklist,│
│ reporting │ │ self-service │ │ photos, signature, pay │
└────────────────────────────┘ └────────────────────┘ └──────────────────────────┘
```
| Surface | Stack | Served as |
| ----------- | ------------------------------------------------ | -------------------------------------- |
| **Console** | Vue 3 · TypeScript · Tailwind v4 · Vite | `/fsm-console` (Frappe www route) |
| **Portal** | Vue 3 · TypeScript · Tailwind v4 · Vite | `/book` (Frappe www route, public) |
| **Mobile** | Ionic Vue 8 · Capacitor 8 · Tailwind v4 | Native Android + iOS app |
| **Backend** | Frappe v16 · ERPNext v16 · Python 3.14 | DocTypes + whitelisted API + realtime |
The frontends live in a Yarn-workspaces monorepo under [`frontend/`](./frontend):
`design` (tokens) · `ui` (shared components) · `api` (typed Frappe client) · `console` · `portal` · `mobile`.
## Installation
Requires a working [Frappe bench](https://github.com/frappe/bench) on the `version-16` (or `develop`) branch
with ERPNext installed.
```bash
cd $PATH_TO_YOUR_BENCH
bench get-app fsm $URL_OF_THIS_REPO --branch develop
bench --site $YOUR_SITE install-app fsm
bench build
```
## Frontend development
```bash
cd apps/fsm/frontend
yarn install # installs all workspaces + sets up git hooks
yarn dev:console # back-office console (Vite dev server, proxied to bench :8000)
yarn dev:portal # customer portal
yarn dev:mobile # technician app in the browser
yarn tokens # regenerate design tokens (CSS + Ionic vars + TS) from tokens.json
yarn build # build tokens + all three surfaces into the Frappe app
yarn lint && yarn format:check && yarn typecheck
```
### Mobile (Capacitor)
```bash
cd apps/fsm/frontend/mobile
yarn build
npx cap add android # first time only
npx cap add ios # first time only (requires macOS + Xcode)
yarn android:dev # build + sync + assemble a debug APK
yarn ios:dev # build + sync the iOS project, then open in Xcode
```
## Design system
Every color, type, spacing, radius and elevation value lives in
[`frontend/design/tokens.json`](./frontend/design/tokens.json) and is generated into CSS variables for the
web surfaces, Ionic variables for mobile, and a Tailwind v4 theme, so one edit updates all three apps.
Brand `#1D9E75`, Plus Jakarta Sans + JetBrains Mono, a 4px spacing scale, full dark-mode parity, and
status colors reserved strictly for state. **Never hard-code a hex or px in a component.**
## Documentation
- [`CONTRIBUTING.md`](./CONTRIBUTING.md): how to develop, test and submit changes
- [`SECURITY.md`](./SECURITY.md): reporting vulnerabilities
## Contributing
Contributions are welcome! Please read [`CONTRIBUTING.md`](./CONTRIBUTING.md). Commits and PR titles
follow [Conventional Commits](https://www.conventionalcommits.org).
## License
[MIT](./LICENSE) © KodLyft
Related Sales & CRM apps for Frappe & ERPNext
- Crm — Fully featured, open source CRM
- Flow — Frappe Flow — native AI agents, tools, and triggers for Frappe
- Sales Kpi — Sales KPI app for ERPNext
- Crm Override — An example Frappe app that demonstrates how to override Frappe UI based apps.
- Eseller Suite — A comprehensive frappe app designed to help selling partners thrive on various online platforms like Amazon and Flipkart. With powerful tools for optimization, analytics, and automation, sellers can boost sales, optimize listings, and stay ahead of the competition effortlessly.
- Sales Prediction — AI-powered sales forecasting using Prophet
- Dlitscustom — Erpnext Custom Pricing rule , commission , tools etc..
- Van Sales Pwa — Van Sales PWA: field sales app (customers, invoicing, payments, stock) with backend and frontend source in one app (like HRMS or POS Awesome). Install on any site, build, and open /pwa.