Weekend projectJuly 2026 · 6 min read

How to Build a Pool Chemistry Log App with AI

Pool owners test the water with strips or a drop kit, add something, and forget what they added by next week. A chemistry log fixes that: every reading, every dose, and a chart that shows whether the pool is drifting before it turns green. The data model is tiny, which makes it a clean weekend build — the care goes into fast entry and honest wording about what the app does not know.

What a pool chemistry log app needs

  • Log readings: free chlorine, pH, total alkalinity, cyanuric acid, calcium hardness
  • Target ranges per pool, editable, with each reading coloured in or out of range
  • Record chemicals added with amount and product
  • History chart per measurement
  • Test reminders on a schedule the owner picks

The screens

ScreenWhat it does
PoolLatest reading per measurement against its target range
New TestFast numeric entry for each measurement, all optional
Add ChemicalProduct, amount, and unit added after a test
HistoryChart per measurement with doses marked on the timeline
SettingsPools, volume, target ranges, reminder schedule

The data model

  • Pool: name, volumeLitres, surface, sanitizer, notes
  • TargetRange: poolId, measurement, min, max
  • Test: poolId, testedAt, method, freeChlorine, ph, totalAlkalinity, cyanuricAcid, calciumHardness, waterTempC
  • Dose: poolId, testId, product, amount, unit, addedAt
  • Reminder: poolId, frequencyDays, timeOfDay

The build prompt (copy this)

Paste this into ShipNative and it becomes a working React Native app with these screens, navigable in a live preview, in about two minutes:

A pool chemistry log for home pool and hot tub owners. The Pool screen shows the most recent value for each measurement — free chlorine, pH, total alkalinity, cyanuric acid, calcium hardness — next to that pool target range, coloured green inside the range and amber outside it. New Test is built for wet hands: large numeric fields, every measurement optional because strips and drop kits test different things, and the test method recorded. After saving a test, offer Add Chemical to record what was added — product name, amount, and unit — linked to that test. History shows one chart per measurement over time with doses marked as points on the same timeline so the owner can see what a dose actually did. Settings holds one or more pools with volume and sanitizer type, editable target ranges seeded with common starting values that the owner can change, and a test reminder. Do not calculate or recommend chemical doses in version one, and say so in the copy: dosing depends on the specific product strength and the pool, and the label on the product is the authority. Works offline. Screens: Pool, New Test, Add Chemical, History, Settings.

Then iterate with small, screen-specific prompts (“make the primary button bigger”, “add an empty state”), preview on your own phone, and export the full Expo project whenever you want. The full method: how to build an app with AI.

How it makes money

A one-time unlock ($5–10) or a small yearly subscription for multiple pools, history export, and reminders. The larger market is pool service technicians who test dozens of pools a week — a multi-pool, per-customer version of the same app priced per technician is the business, the homeowner version is the proof.

Implementation and the revenue math for every model: how to make money from an app. When you’re ready to ship: App Store and Google Play publishing guides.

Build it now

The prompt above is free to run at shipnative.dev — working pool chemistry log app on your phone today, full code export, no credit card.

Frequently Asked Questions

Should the app tell users how much chlorine to add?

Be careful. Dose calculators exist, but the right amount depends on the pool volume, the exact product and its concentration, and current readings. A wrong number is a safety problem, not a bug. Ship the log first, point users to the product label, and add a calculator only once you can model specific products accurately.

What ranges should the app use by default?

Seed common starting ranges — pH around 7.2 to 7.8 is the usual one — but make every range editable per pool. Saltwater pools, hot tubs, and outdoor pools with stabilizer run to different targets, and owners often follow advice from their pool shop. The app should record their targets, not argue with them.

How to Build a Habit Tracker App

Build a habit tracker app in an afternoon with AI — screens, streak logic, reminders, and …

See build plan →

How to Build a Workout Tracker App

Build a workout tracker app with AI — exercise logging, routines, progress charts, and res…

See build plan →

Ship a real React Native app today

Describe, preview, and export Expo code — free to start.

Build with ShipNative →