Garrett Franks

FieldFrog

Field service platform · Web now, mobile in progress

Run a lawn care or pest control business from one place, with a garden crew of bots that follow your rules.

usefieldfrog.com In development
A pest control visit's status steps and the product appliedThe six bots, each on or asleep, with what it does

About

FieldFrog is my company's field service software for lawn care and pest control, rebuilt from the ground up by C&F Solutions LLC, in English and Spanish from the first screen. Owners run the day from a web app, customers pay and reschedule in their own portal, and native iOS and Android apps are in progress.

Status

In development

usefieldfrog.com

Platforms

Web now, mobile in progress

Field service platform

Built with

  • TypeScript
  • Next.js
  • Fastify
  • PostgreSQL
  • Drizzle
  • Zod & OpenAPI
  • WebSocket
  • Stripe
  • MapLibre
  • Kotlin Multiplatform

What I built

A garden crew of six bots, Remi the frog, Skip the turtle, Penny the bee, Stella the ladybug, Boomer the bunny and Tally the dragonfly, handle reminders, rescheduling, billing, reviews, win-back and a weekly summary. They follow fixed rules rather than AI, and the owner sets each action to do it, ask first, suggest, only note it or never.

Next.js owner web app, customer portal and internal staff portal on a TypeScript Fastify API, with PostgreSQL row-level security per company that fails closed, and live updates over a WebSocket.

A modular monolith: every write goes through one command that checks permission, idempotency and status rules and writes the audit row and event in one transaction, and a Postgres-backed queue delivers events and runs jobs.

Outside services sit behind swappable providers with fakes for tests: Stripe Connect payments, Census geocoding, OpenFreeMap maps, and Tomorrow.io or OpenWeatherMap weather.

Industry packs for lawn and pest, including product application records per visit, and TypeScript, Swift and Kotlin clients generated from one API contract for a Kotlin Multiplatform core with native SwiftUI and Compose screens.

Screens

How it fits together

Clients

  • Web appNext.js, for owners and office
  • Customer portalNext.js, sign in by code, pay, reschedule
  • Staff portalNext.js, MFA, audit log
  • iOS & AndroidIn progress: Kotlin Multiplatform core, native screens

generated clients, HTTPS and a live WebSocket

API (TypeScript, Fastify)

  • ModulesCustomers, plans, schedule, billing, bots
  • command()Permission, idempotency, audit, event
  • Live hubWebSocket topics per role
  • Auth guardSessions, roles, rate limits

one transaction per write, events in the same commit

Data & jobs

  • PostgreSQLRow-level security per company
  • EventsPartitioned by month
  • WorkerPostgres queue, listeners, scheduled jobs
  • Industry packsLawn and pest, English and Spanish

provider interfaces, with fakes in tests

Outside

  • StripeConnect payments and subscriptions
  • CensusGeocoding
  • OpenFreeMapMap tiles for MapLibre
  • WeatherTomorrow.io or OpenWeatherMap