Today, — gardens are growing.
Four canonical tables, one immutable transaction log, Stripe-backed economy.
Users
—
Gardens
—
Certificates
—
Transactions
—
Gardens —
Garden review —
Gardens submitted by cultivators that haven't been approved yet.
Approving creates a Stripe Product behind the scenes.
Taxonomy —
The garden vocabulary: categories and the types under them. Saving
writes straight to the registry every garden points at — no app,
website or backend deploy needed. Renaming a key carries its gardens
with it; retire an entry with the Active toggle rather than deleting
one that is still in use.
Bid Jars —
Funding grouped by garden — jar strips with claimed hours linked to
the cultivators who claimed them.
App user agreement
The agreement app users must accept after phone verification, before
identity verification. Stored in S3 and served live to the app and
FLhour.com — saving here publishes immediately, no app, website or
backend deploy needed. Markdown is supported.
Privacy policy
Linked from the user agreement and available from the app's profile.
Stored in S3 and served to the app live — saving here publishes
immediately, no app or backend deploy needed. Markdown is supported.
Website user agreement
The terms for FLhour.com itself — and the document Stripe Checkout
asks pollinators to accept when they fund a garden on the website.
Republishing bumps the version, so the next checkout re-collects
consent. Markdown is supported.
Purchase and sale agreement
The terms covering the purchase and sale of FLhour certificates.
Published to FLhour.com's footer; no flow collects consent for it
yet. Markdown is supported.
iOS release policy
What the app checks on every launch. Stored in S3 and served
unauthenticated from
/app/config, so this takes effect
immediately — no app, and no backend deploy. Check the
app_version column on the Users tab before raising
the minimum: that is who you are about to lock out.
A minimum newer than every shipped build locks out everyone,
including the version you want them on — the server refuses a minimum
above the latest for exactly that reason. Raise it only once the new
build is live in the App Store and you have watched adoption on the
Users tab.
Reports —
Content flagged by users in the app (App Store Guideline 1.2 — UGC
moderation). Triage each report, then act on the target from its
Users or Gardens row.
Lost Sessions —
Work that happened but never settled — a stop the app couldn't
complete, or a session that went silent and never came back.
Settling runs the normal settlement, valued at the moment the work
actually ended, so a session recovered days later still mints the
hours that were worked. The worked time on each card is the
recorded figure and is editable: when the evidence is wrong (a phone
that died mid-session), set what actually happened before settling.