Open source
Want a site like this?
This is 28 plants in one house and garden, but there's nothing about it that's specific to mine. The whole thing is on GitHub — take it and document your own.
1 Fork it
The whole site is open source — content, theme, search and all. Fork the repo and install with pnpm.
2 Point a coding agent at it
The repo ships two agent skills. One walks an agent through stripping my plants out, rebranding it and wiring up your own database. The other adds a plant: hand it a photo or a name and it identifies the plant, checks the RHS for the growing data, and writes the entry.
3 Deploy it
Search is one flag in a config file. Leave it on and it runs on Cloudflare Workers, free at this size. Turn it off and you get plain static files you can host anywhere — no Cloudflare account, no database, nothing to run.
What you get
- A typed content model — one markdown file per plant, no database to run
- Per-plant care, hardiness, flowering window and winter job
- Position and soil data pulled from the RHS, attributed and linked
- A flowering-year page that filters by month with no JavaScript at all
- Hot-weather and winter triage pages, generated from the same data
- Optional full-text search on Cloudflare D1 — one flag, and the site still builds fully static without it
- Light and dark themes, and it works properly on a phone
Worth knowing first
It's built around the UK and the RHS. Hardiness ratings, flowering months and the growing data all come from the Royal Horticultural Society. Gardening somewhere else, you'll want to swap in your own reference — USDA zones, or your national horticultural society — and revisit the flowering windows. The schema doesn't care; the content does.
The photographs should be yours. Plant pages link out to the RHS for growing information, but RHS photography is mostly licensed in from picture agencies and isn't theirs — or ours — to reuse. Use your own photos, or something properly licensed like Wikimedia Commons.
Cloudflare is optional. Only search needs it — a D1 database, which is one command to create, on a free account. If you'd rather not, set search: false and the whole site builds to static files you can put anywhere.