The all-in-one field operations platform for restoration, construction, and trade contractors.
Projects, CRM, scheduling, budgets, invoicing, field capture, and AI workflows — one codebase, every platform.
Live demo · Quick start · Product tour · Features · Self-hosting · License
Explore the TaskFleet-operated, read-only FieldFleet demo at fieldfleet-demo.taskfleet.app. It signs in automatically to an isolated workspace containing synthetic projects, customers, vendors, and tasks. Database writes and mutating API calls are blocked; no customer data is used.
Open the live read-only demo · ▶ Watch the 1-minute product tour · Download the MP4 (14 MB)
Narrated walkthrough recorded in a live local workspace — dashboard, projects, budgets, tasks, Gantt scheduling, and CRM. No customer data.
FieldFleet combines project management, CRM, scheduling, budgets and invoicing, field data capture, and AI-assisted workflows in a single Flutter application backed by Supabase. It is built for the way trade contractors actually work: jobs that start with a site visit, run through crews in the field, and end with pay applications and holdbacks.
FieldFleet is source-available under the Elastic License 2.0: use it, self-host it for your own business, modify it, and contribute back. The one thing you can't do is offer FieldFleet itself to third parties as a hosted or managed service — that requires a commercial agreement. FieldFleet is built by TaskFleet.
Most field-service tools cover scheduling or invoicing. FieldFleet covers the whole job lifecycle in one codebase, including the parts of field work that generic tools miss:
| Floor plans and room scanning | An in-tree native room-scan plugin and an AI floor-plan service turn site captures into editable plans. |
| AI where it saves time | An AI copilot for job setup, text operations, and daily summaries, with pluggable providers configured by environment. |
| Real financial depth | Budgets with labor rollups, pay applications, holdbacks, subcontracts, and bid packages — not just a totals field on an invoice. |
Dashboard from the disposable local demo workspace documented in Quick start.
| Area | Highlights |
|---|---|
| Projects & scheduling | Dependency-aware Gantt with baselines, capacity planning, project health scoring, tasks, work orders, change orders, shared calendar |
| CRM & sales | Customers and contacts with tags and custom fields, opportunity pipeline, estimates, vendor management, client/vendor/employee portals |
| Financials | Budgets and templates with labor rollups, invoicing with payment links, pay applications, holdbacks, subcontracts, bid packages, cost catalog |
| Field operations | GPS-stamped time tracking, dynamic forms with e-signing, inventory, assets, maintenance logs, fleet tracking with QR codes, floor plans |
| Documents & collaboration | Document generation from templates, PDF output, spec books and sheets, file folders, photo markup, messaging, mentions, push, email digests |
| Platform | Multi-tenant workspaces, role templates and granular permissions, configurable dashboards and KPIs, automation rules, AI copilot, MCP endpoint |
Full feature list
Projects & scheduling
- Projects with budget views and project health scoring
- Dependency-aware Gantt scheduling, baselines, and capacity planning
- Tasks, work orders, change orders, and a shared calendar
CRM & sales
- Customers and contacts with tags, sources, statuses, and custom fields
- Opportunity pipeline with estimates and follow-ups
- Vendor management plus dedicated client, vendor, and employee portals
Financials
- Budgets and budget templates with labor summary rollups
- Invoicing with payment links, pay applications, and holdbacks
- Subcontracts and bid packages with multi-vendor bidding
- Cost catalog with categories, price types, and web import
Field operations
- Time tracking with GPS-stamped entries and reusable templates
- Dynamic field forms with e-signing (28 ready-made inspection and work-order forms in
examples/) - Inventory, assets, and maintenance logs
- Fleet/vehicle tracking with expenses and QR codes
- Floor plans with a native room-scanning plugin
Documents & collaboration
- Document generation from templates, PDF output, and e-signing
- Spec books and spec sheets
- File management with folders and photo markup
- Team messaging, mentions, notifications, push, and email digests
Platform
- Multi-tenant workspaces with role templates and granular permissions
- Configurable dashboards, KPIs, and reporting
- Automation rules and workflow templates
- AI copilot, AI text operations, and daily AI summaries
- MCP server endpoint for AI-agent integrations
- Flutter / Dart — one codebase for web, iOS, Android, macOS, Linux, and Windows
(
lib/, platform runners inandroid/,ios/, etc.) - Supabase — Auth, Postgres, Storage, Realtime, and 22 Edge Functions
(
supabase/functions/) - Postgres schema — 290+ migrations with row-level security for multi-tenant isolation
(
supabase/migrations/) - Provider + go_router for state and navigation
- Integrations — Stripe payment links, Resend, OpenRouter-compatible AI providers, weather — all configured through environment variables, never committed
- Tests — 39 test files covering floor-plan geometry, pricing and budget rollups,
documents, Supabase services, and utilities (
test/)
Prerequisites: Flutter SDK, Supabase CLI, and Docker or Podman.
# Install dependencies
flutter pub get
# Start this checkout's isolated local Supabase stack and apply the schema
supabase start
supabase migration up --local
# Optional: create a disposable local demo login
scripts/create_local_demo_user.sh
# Run the app against local Supabase (default URL: http://127.0.0.1:55321)
flutter run -d chrome \
--dart-define=SUPABASE_ANON_KEY=your-local-supabase-anon-keyThe demo helper creates or verifies a local-only account: demo@fieldfleet.local /
local-demo-pass. It refuses non-local Supabase URLs and does not run automatically, so
production and shared deployments do not inherit a default login. The first login bootstraps a
demo workspace through the normal app path.
Running Supabase already? This public checkout uses project id
fieldfleet_publicand local ports55321–55329so it can run next to another Supabase project on the standard54321ports. Before running migrations on a machine that already has Supabase containers, usesupabase statusanddocker ps --filter name=supabase_to confirm which stack is active. Do not runsupabase db reset,supabase migration repair, orsupabase db pullagainst a database that contains data you need.
For a non-local environment, pass explicit build-time values:
flutter run -d chrome \
--dart-define=ENV=prod \
--dart-define=SUPABASE_URL=https://api.example.com \
--dart-define=SUPABASE_ANON_KEY=your-anon-key \
--dart-define=SITE_URL=https://app.example.comOptional provider keys are supplied through environment files or secret stores, never committed:
OPENROUTER_API_KEY=
WEATHER_API_KEY=
RESEND_API_KEY=
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
See dart-defines.env.example for the full list.
deployment/ contains a complete example stack for running your own instance:
Docker Compose, Kong gateway config, Caddyfile, bootstrap migrations, deploy/backup/restore
scripts, and a Flutter config example — all with placeholder values. Start with
deployment/README.md.
Further guides in docs/:
lib/ Flutter application source (40 feature areas)
supabase/ Local Supabase config, migrations, edge functions
deployment/ Example self-hosting stack with placeholder secrets
plugins/room_scan/ Native room-scan plugin
pro_room_scanner/ Standalone AR room-scanner app
examples/ 28 ready-made field/inspection form templates
test/ Dart and Flutter tests
site/ Public website published to GitHub Pages
docs/ Setup and operations guides
scripts/ Backup/restore and maintenance scripts
web/ android/ ios/ Platform runners
macos/ linux/ windows/
- Production secrets, service keys, database dumps, customer data, QA accounts, deployment credentials, or private operational scripts.
- Permission to offer FieldFleet to third parties as a hosted or managed service (see License).
- Support, managed hosting, onboarding, backups, or updates — available from TaskFleet.
Do not commit secrets, database dumps, authentication exports, local .env files, screenshots
containing customer data, or QA credentials. Before publishing a fork, run a secret scanner
such as Gitleaks and review SECURITY.md
for how to report vulnerabilities.
Issues and pull requests are welcome — see CONTRIBUTING.md for the development workflow, coding conventions, and the contribution terms.
FieldFleet is distributed under the Elastic License 2.0 (ELv2) — the same source-available model popularized by Elastic, Redis, and MongoDB. See LICENSE.
In plain terms, you can:
- Use FieldFleet in production for your own business, free of charge.
- Self-host it, modify it, and distribute your changes.
- Contribute improvements back (see CONTRIBUTING.md).
You cannot:
- Offer FieldFleet to third parties as a hosted or managed service (for example, selling access to a FieldFleet instance you operate).
ELv2 is not an OSI-approved open source license. For managed hosting, white-label offerings, support agreements, or any use the license doesn't cover, contact TaskFleet.
Prefer not to run it yourself? Renovo AI is TaskFleet's fully managed, hosted field operations product.
Powered by TaskFleet AI
