No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
A small web app for keeping track of plant propagation experiments — which batch
of plants came from where, what you tried on them, and how each attempt is doing
over time. Photos, notes, feeding dates, and a pest reference are all in one place,
and any experiment can be exported to a PDF.
You sign in with an email and password. Everything you add is private to your
account.
The app is organised in three levels:Read the full README ↗A small web app for keeping track of plant propagation experiments — which batch of plants came from where, what you tried on them, and how each attempt is doing over time. Photos, notes, feeding dates, and a pest reference are all in one place, and any experiment can be exported to a PDF.
You sign in with an email and password. Everything you add is private to your account.
The app is organised in three levels:
Three ways to add a log entry, depending on how much you want to type:
After picking or taking a photo, tap Circle to drop an adjustable red ring on it — drag to position, use the slider to size it — and it's burned into the image before upload, so the marked-up photo is what lands in the log.
From an experiment you can tap Export PDF for a shareable report with the batch details, notes, and every log entry with its photos, or CSV to get the same log entries as a spreadsheet. A folder has its own CSV export covering all of its experiments in one sheet. Experiments that have been potted export more (see Exports below).
An experiment lives on one timeline in two phases:
Plants move from Phase 1 to Phase 2 through potting events. A potting is partial or total, happens on a date and creates one or more pots. Tap Pot plants on an experiment: pick the date, then add a row per pot — label, how many plants go in it (one pot can hold several, so pots ≠ plants), optional size, substrate, notes and a photo. An experiment can have many pottings over time, and it keeps running in Phase 1 for the plants that were not moved. The page shows "up to X may be ready (R2: a, S3: b)" from the latest check-in — a hint only, nothing is enforced.
On a folder, Select experiments → Pot selected experiments pots several experiments in one go: one shared date, optional shared size / substrate / notes copied into every pot row, then a section per experiment. Each experiment is saved on its own; if some fail, the rest are kept and the failed ones stay on screen for Retry failed pottings.
Once an experiment has a potting its page has two tabs. Phase 1 is the stage snapshot, the stage charts (with a dashed "Potted " line) and the Phase 1 timeline. Phase 2 lists the pots (photo, alive / in pot, size, substrate, last check-in), a Health in pots chart and the pot timeline. Every Phase 2 check-in (deaths with cause, health good / ok / poor, photo, notes, watered, fertilized) belongs to exactly one pot — add it from the pot's own buttons. Pots are never regrouped and a plant cannot come back individually: deleting the whole potting event is the undo (it goes to the bin with its pots and their check-ins). There is no "succeeded" verdict for potting; the winner callout and ranking are Phase 1 / overall-survival based and unchanged.
All of it lives in src/lib/utils/phases.ts (pure functions, worked examples in
the file's header comment). With plant_count = N:
phase1Cohort(asOf) = N − Σ pot.plant_count of pots potted on or before asOf
phase1Remaining(asOf) = phase1Cohort(asOf) − Σ Phase 1 deaths on or before asOf
phase1Spare = N − Σ ALL Phase 1 deaths − Σ ALL live pots
potAlive(pot, asOf) = pot.plant_count − Σ deaths logged against that pot up to asOf
phase2Alive(asOf) = Σ potAlive over pots potted on or before asOf
totalAlive = N − Σ every death (Phase 1 and pot deaths) — survival, unchanged
pottedShare = Σ live pot.plant_count / N — informational
A potting dated D counts as already happened for Phase 1 check-ins dated D.
phase1Cohort is the denominator of the stage percentages and warnings (for an
experiment without pottings it is simply N, so old data reads exactly as before);
phase1Remaining is the "plants still in propagation" count.
This is the beginning of the README. Read the rest at the original. Read the full README ↗