Rain Barrel Registry: Share Stormwater with Neighbors
Connect gardeners who need water with neighbors who collect more than they can use.
# Rain Barrel Registry: Share Stormwater with Neighbors
## The Problem
During summer dry spells, urban gardeners face a frustrating paradox: some neighbors have rain barrels overflowing from their large roof catchment areas while others—especially apartment dwellers with balcony gardens or homes with small rooflines—run completely dry between storms. Municipal water restrictions often kick in exactly when gardens need water most, and running the tap feels wasteful when free rainwater exists just three doors down. There's no easy way to know who has surplus or who needs it, so this captured resource often sits unused until the next rain washes it away as overflow.
## Who Uses It
**Maria, the Backyard Vegetable Gardener**: Has two 55-gallon barrels connected to her downspout. After a good rain, she has more than her tomatoes need for two weeks, but no way to offer the surplus before it overflows or goes stagnant.
**Derek, the Apartment Balcony Grower**: Grows herbs and peppers in containers on his third-floor balcony. No roof access means no rain collection. He'd happily walk a few blocks with five-gallon buckets if he knew where to go.
**The Nguyens, Elderly Couple**: Installed rain barrels years ago but now garden less. Their barrels stay full all summer. They'd love neighbors to use the water rather than let it sit.
**Community Garden Coordinators**: Manage shared plots that drink water faster than their collection system provides. Need bulk water sources during July and August dry stretches.
## Core Features
1. **Register Your Rain Barrel**: Add your barrel(s) with address (stored as neighborhood zone, not exact location for privacy), total capacity in gallons, typical refill rate ("fills in one moderate rain"), and a friendly name for your setup ("The Blue Barrel on Oak Street").
2. **Declare Surplus or Need**: One-tap status toggle. Barrel owners mark "I have water to share" with approximate gallons available. Seekers mark "Looking for water" with how much they need and whether they can transport it themselves.
3. **Neighborhood Match View**: Map or list showing your immediate area—who has surplus, who needs water, rough distance. No exact addresses shown publicly; just "0.2 miles away, ~30 gallons available."
4. **Request Water Pickup**: Send a request to a surplus neighbor. Include how much you need, when you could pick up, and whether you have your own containers. The barrel owner approves or suggests a different time.
5. **Pickup Instructions (Private to Matched Users)**: Once a request is approved, the barrel owner shares specific pickup details—address, which side of house, any gate codes, whether to text on arrival.
6. **Seasonal Availability Calendar**: Mark your typical sharing season (April–October), days you're usually home, preferred pickup windows. Helps seekers know who to ask on a Saturday morning vs. a Tuesday evening.
7. **Rain Event Alerts Integration**: When weather forecasts predict significant rain, automatically prompt barrel owners: "Storm coming Thursday—mark your current level so neighbors know you'll have surplus by Friday."
## WellSpr.ing Integration Points
### MCP Tools (via POST to `https://wellspr.ing/mcp` using JSON-RPC 2.0)
- **`get_free_items`**: Query existing free items in the area to see if anyone is already informally offering rain barrel water, helping avoid duplicate systems and potentially connecting to existing community sharing.
- **`search_civic_services`**: Find municipal water conservation programs, rain barrel rebate programs, or city-sponsored water-sharing initiatives that users might connect with.
- **`get_city_services`**: Surface relevant city services like yard waste pickup (for gardeners), conservation hotlines, or community garden programs that complement water sharing.
- **`ask_ody`**: Let users ask natural-language questions like "Are there water restrictions in my area right now?" or "How do I winterize a rain barrel?" — Ody can provide civic context.
- **`get_civic_ideas`**: Pull related civic project concepts that might inspire barrel registry users—maybe someone proposed a neighborhood cistern or greywater system.
- **`get_adjacent_nodes`**: For federated deployments, discover other neighborhood registries so a user in one area can find surplus in adjacent zones during severe shortages.
- **`get_federation`**: Understand the broader WellSpr.ing network topology to enable cross-neighborhood resource sharing.
### REST Endpoints
- **`GET https://wellspr.ing/api/geo/portals?area_code=NNN`**: Use geographic portals to define neighborhood boundaries and ensure users are matched with genuinely nearby neighbors, not someone across town.
### Roadmap: Not Yet Live
- **Covenant Commerce Rails**: Future payment/barter integration could enable small reciprocity gestures (e.g., "I'll bring cookies" or micro-donations to a community garden fund). Not currently available—build the sharing layer first.
- **Merchant/Producer Registration**: Future `submit_business` evolution might allow community gardens or urban farms to register as water-sharing hubs. Current `submit_business` is for traditional businesses; treat institutional barrel sites as user accounts for now.
## Data Model
### `barrels`
| Field | Type | Notes |
|-------|------|-------|
| id | uuid | Primary key |
| owner_id | uuid | FK to users |
| nickname | string | "Blue barrel by garage" |
| capacity_gallons | integer | Total capacity |
| zone_id | string | Neighborhood zone (not exact address) |
| address_private | string | Encrypted, shown only to matched users |
| created_at | timestamp | |
### `users`
| Field | Type | Notes |
|-------|------|-------|
| id | uuid | Primary key |
| display_name | string | Public-facing name |
| contact_method | string | Email, SMS preference |
| zone_id | string | General area for matching |
| can_transport | boolean | Has own containers/vehicle |
### `availability`
| Field | Type | Notes |
|-------|------|-------|
| id | uuid | Primary key |
| barrel_id | uuid | FK to barrels |
| status | enum | 'surplus', 'low', 'unavailable' |
| gallons_available | integer | Approximate shareable amount |
| valid_until | timestamp | Auto-expire stale listings |
### `requests`
| Field | Type | Notes |
|-------|------|-------|
| id | uuid | Primary key |
| requester_id | uuid | FK to users |
| barrel_id | uuid | FK to barrels |
| gallons_requested | integer | |
| proposed_pickup | timestamp | |
| status | enum | 'pending', 'approved', 'completed', 'declined' |
| pickup_notes | text | Private instructions, shown after approval |
### `zones`
| Field | Type | Notes |
|-------|------|-------|
| id | string | Matches geo/portals area codes |
| name | string | "Eastside", "Downtown North" |
| bounds | geometry | For distance calculations |
## Vibe Coding Prompt to Get Started
Paste this into Claude or Replit Agent:
```
Build a Rain Barrel Registry web app where neighbors can share surplus stormwater.
Tech stack: React frontend, Express.js backend, SQLite database (easy to swap to Postgres later). Deploy on Replit.
FIRST MILESTONE - Get the core loop working in one session:
1. Create a simple landing page explaining "Share your rain barrel surplus with neighbors who need water"
2. Build a registration flow:
- User enters display name, email, and neighborhood zone (dropdown of 5-6 test zones
◎
This is your project thread with Ody. Ask questions, share screenshots, talk through the build. Anyone with this link can join the conversation.
Paste screenshots or upload images/PDFs · Shift+Enter for new line