GardenLog is a plant tracker built by a gardener, for gardeners. Log your plants, set reminders, plan your garden, and contribute to a community plant-observation database — all in one place.
Features
GardenLog focuses on the things that actually matter when you're growing plants at home.
Add plants with photos, species info, growing medium, and planting dates. See age, germination rate, and status at a glance.
Record sprouting, flowering, harvesting, pest issues, and more. Every log is timestamped, supports multiple photos, and captures environment conditions.
Set watering, hardening, and grow-light reminders per plant or zone. Get push notifications and complete, skip, or snooze from any device.
Organise plants by location. Track shade levels, sun direction, and grow-light setup for each zone. Drag-and-drop plants between zones in the kanban view.
Plan sowing, repotting, flowering, and harvest events on a calendar. Link events to plants or zones and add notes.
Search an external plant database to auto-fill scientific names, care requirements, and growing information for your plants.
Opt in to share anonymised plant observations with PlantDB — a community database that helps gardeners learn from each other.
Installable as a progressive web app with push notifications. Three view modes — kanban board, grid, or list — to suit how you work.
Light, dark, or system theme. Available in English and German with automatic language detection.
Every plant gets its own card with status badges, age tracking, and quick access to logs. Tap in to see the full timeline, edit details, or add a new entry.
From the day you plant a seed to the first harvest, every event is logged with photos and notes. Scroll back through your garden's history anytime.
The propagation module gives you a visual grid for every tray. Track germination cell by cell, paint cells with seed brushes, mix your own growing medium, and graduate seedlings directly into your plant list when they're ready.
Switch to the kanban view to see every plant arranged by zone. Drag plants between zones, see status badges at a glance, and filter by group — the board remembers your last active layout.
Community
PlantDB is an external community plant-observation database. GardenLog users can opt in to share anonymised plant data and help build a public dataset of plant growth patterns.
During onboarding you're asked if you'd like to participate. You can change your mind any time in Settings — no pressure, no hidden defaults.
Your user ID is never sent. Only plant names, species, log types, measurements, and growing conditions are shared — nothing that identifies you.
Every log you record (sprouted, flowering, harvested, etc.) and every plant you create can become a data point that helps other gardeners understand what to expect.
See how many observations you've contributed on your dashboard — including a 7-day activity chart and milestone counters.
PlantDB collects anonymised observations from GardenLog users to build a public dataset of real plant growth patterns. Browse germination rates, growth timelines, and seasonal trends by species and climate profile.
Your contribution stats — observation count, a 7-day activity chart, and milestone counters — are visible right on your GardenLog dashboard.
The Stats tab in GardenLog pulls live data from PlantDB so you can see how your observations compare against community benchmarks — germination rates, days to first flower, and more — without leaving the app.
About & Philosophy
GardenLog started as a simple plant tracker and grew into something more complete — not by chasing features, but by following real needs. Every part of the app was built to solve a problem I actually had.
The propagation module came from losing track of which cells had germinated. The kanban board came from wanting to see my whole garden spatially. The PlantDB integration came from wanting observations to be useful beyond my own backyard.
The philosophy hasn't changed along the way. GardenLog will always be free, ad-free, and focused on gardening — nothing else. No engagement metrics, no premium tiers, no dark patterns.
The minimum data needed, nothing more. PlantDB sharing is always opt-in. Your user identity is never included in what gets shared.
Every feature solves a real gardening problem. If it doesn't help you grow plants better, it doesn't belong here.
Vanilla CSS. React Context instead of a state library. PostgreSQL without an ORM. Simple, maintainable, and easy to reason about.
PlantDB exists to make gardening knowledge free and shared. Data flows in one direction: from gardeners, back to gardeners.
Under the hood
GardenLog is a full-stack project built and operated by one person. Here's the entire stack, end to end.
Single-page app with drag-and-drop kanban (dnd-kit), i18next localisation, and installable as a PWA with push notifications.
REST API with JWT auth, Joi validation, cron-based reminder scheduler, and a background outbox worker for PlantDB sync.
Serverless Postgres. Seventeen tables covering users, plants, logs, zones, reminders, planner events, preferences, and the PlantDB outbox.
Runs both the React frontend and Express backend. Handles deployments straight from the repository.
Hosts the code repository, manages staging environments, and runs scheduled database backups.
CDN-hosted image storage with client-side compression. Photos are auto-optimised and served from the edge.
Your data
GardenLog collects very little data. That's intentional.
That's it. Refreshingly rare.
If you opt in to PlantDB, anonymised plant observations are shared with the community database. Your user ID is never included — only plant names, species, log types, measurements, and growing conditions are sent. You can toggle this on or off at any time in Settings, and any data already queued will still be delivered, but no new events will be created once you opt out.
GardenLog is a hobby project provided as-is. While I do my best to keep it reliable, it shouldn't be relied on as the sole source of care for your plants.