8000 GitHub - Dakini/fernslop · GitHub
[go: up one dir, main page]

Skip to content
DakiniPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Fernslop

Shared garden plans that anyone can help tend.

I wanted an app that reminded me when my plants needed watering or feeding, and showed where everything was. It grew into shared gardens: a family, flatmates or a community group all looking after the same space, from one link, with no accounts.

Live: Production: https://fernslop.dakini-labs.com/ · Development: https://dev-fernslop.dakini-labs.com/

A garden with a pond, a veg bed and a herb patch, and its plant list

What this repo provides

Area What is here Details
Problem and behaviour What the app is for, what it does, how it should behave What it does · Product guide
Spec and task tracker A build spec, and one Markdown issue per task with acceptance criteria and a QA verdict Agent team
Agent team Five roles with their own briefs, and a process for how they work together Agent team · _docs/process.md
Agent context AGENTS.md with the commands and links to the process and role docs AGENTS.md
Application React frontend, FastAPI backend, PostgreSQL Quick start · Architecture
Tests Unit, integration and end-to-end tests, one command Tests · Getting started
Containers App, database and monitoring stack with Docker Compose, one command Quick start
Deployment Dev and prod on AWS, behind HTTPS Deployment · Deployment guide
CI/CD Tests on every pull request, automatic deploy to dev, manual promotion to prod Deployment
Observability Traces, metrics and logs that share a trace ID, viewed in Grafana Observability · Guide
Alerting An alert when users can't find the plant they want to add Observability · Alert
On-call agent Wakes on an alert, fixes it on a branch or files a GitHub issue Observability · On-call agent

What it does

  • Shared gardens: create one and share its link. Anyone with it can edit, and changes show up live.
  • Garden canvas: drag plants to where they grow, and mark areas like a pond or a veg bed.
  • Find plants: search about 50 common plants by name, or identify one from a photo.
  • Care rings: countdowns for watering, feeding, pruning and harvesting each plant.
  • Feed and Undo: every change is logged, and plant and area changes can be undone.
  • Weekly email: follow a garden by email and get a summary.
  • Works on phones: nothing needs dragging.

Expected behaviour

When you... Fernslop...
Create a garden Opens it and offers a link to share
Add a plant by search or photo Asks you to confirm it, then places it in the middle of the canvas
Drag a plant or area Saves it and shows the move to everyone else live
Mark a plant watered Resets its ring and posts to the feed
Click Undo in the feed Reverts that change, unless a later change touched the same thing
Add a 51st plant or an 11th area Says the garden is full and adds nothing
Search for a plant that isn't in the table Records the miss. Repeated misses raise an alert
Go too fast Says "You're going a bit fast. Try again in N seconds."

The full list, with screenshots, is in the product guide.

Quick start

You need Docker (with Compose v2), uv, Node.js 24 and make.

git clone https://github.com/Dakini/fernslop.git
cd fernslop
make up

This builds the image and starts the app, PostgreSQL and the monitoring stack.

make down stops everything and keeps the data. make delete also deletes the database. To run the backend and frontend separately with live reload, see Getting started.

Stack: React 19, FastAPI, PostgreSQL, Docker Compose, AWS, OpenTelemetry, Grafana.

Tests

make test-all

This runs backend unit and integration tests (pytest), frontend tests (Vitest) and end-to-end tests in real browsers (Playwright). CI runs them on every pull request. What each suite covers: Getting started.

Deployment

pull request ──▶ tests ──▶ merge to main ──▶ build image ──▶ deploy to dev (automatic)
                                                                   │
                                          "Promote to prod" (manual) ──▶ deploy the same image to prod

Dev and prod each run on an AWS EC2 server, defined in CloudFormation. GitHub Actions deploys with OIDC, so no AWS keys are stored. See the deployment guide, and infra/README.md for every setup command.

Observability, alerting and on-call

  • Telemetry: traces, metrics and structured logs from OpenTelemetry. They share a trace ID, and you view them in Grafana. No request bodies, headers or personal data are sent.
  • Alerting: an alert fires when people keep searching for a plant the app doesn't have, because they can't add it.
  • On-call agent: a script checks the alerts every minute. It hands each new alert to a coding agent, which fixes it on a branch or files a GitHub issue for a person.

See Observability, alerts and on-call.

How it was built: an agent team

A team of AI agents built Fernslop, working from a written spec and a task tracker.

Role Does Brief
Orchestrator Sizes each request, runs the other roles, closes issues after QA passes _docs/process.md
Task manager Turns a request into issues tm.md
Product manager Grooms an issue: goal, acceptance criteria, scope pm.md
Software engineer Implements one groomed issue software-engineer.md
QA engineer Checks the result against the acceptance criteria: PASS or FAIL qa-engineer.md

Repository layout

backend/            FastAPI app, tests, seed data           (Python, uv)
frontend/           React app and tests                     (Node, Vite)
e2e/                Playwright end-to-end tests
infra/              CloudFormation templates and deploy scripts
observability/      Collector, Tempo, Prometheus, Loki, Grafana (dashboards, alerts)
on-call-engineer/   Alert poller that hands alerts to a coding agent
.github/workflows/  CI and promotion to prod
docs/               Guides: product, getting started, architecture, deployment, observability
_docs/              Spec, process and agent-team briefs
backlog/            Task tracker
openapi.yaml        API contract
Makefile            Every command above

Known limitations

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0