Inspiration

A rain barrel can overflow during a storm and still run dry when the garden needs water. A monthly rainfall total hides that timing problem. RainReserve makes it visible, so people exploring supplemental garden irrigation can compare storage choices before treating a bigger barrel as an automatic improvement.

What it does

RainReserve is a free, browser-local water-balance explorer. Choose a synthetic rainfall pattern or import your own daily rainfall CSV, set roof area, garden area, a daily watering target and collection efficiency, then compare two barrel capacities. An interactive storage chart and day inspector show where every modeled litre goes: collection, use, overflow, unmet demand or remaining storage.

The useful output is a comparison you can question and reproduce. Download a CSV containing the applied assumptions, rainfall provenance, and both daily balances. There is no account, backend, weather API or automatic file upload. Imports remain on your device and are not retained after refresh.

Environmental benefit: test the trade-off, not just the tank

The intended benefit is better-informed water-conservation choices: understand when captured rain could substitute for another irrigation source, and when additional storage would not increase modeled use. No household savings or real-world environmental impact has been measured.

Here is a reproducible example using the invented 30-day Mixed month, a 40 m² roof, 20 m² garden, 3 mm daily target, 80% collection efficiency and an empty starting barrel:

  • 200 L baseline: 952 L supplied from storage, 776 L overflow, 428 L unmet garden target.
  • 400 L scenario: 1,260 L supplied, 468 L overflow, 120 L unmet target.
  • 800 L scenario: still 1,260 L supplied, with 68 L overflow and 400 L left in storage.

The 400 L scenario supplies 308 L more than the baseline under these assumptions. Doubling it again does not supply more water during this period. That is the decision RainReserve helps people inspect; these figures are hypothetical model results, not measured savings or a purchasing recommendation.

Try it: a two-minute interactive walkthrough

  1. Open the working app and select Try a water-balance scenario. No sign-in is needed.
  2. Keep the default Mixed month and 400 L scenario. Compare it with the 200 L baseline in the balance table. Select day 4 to inspect the stored water and that day's flows.
  3. Move Scenario barrel to 800 L. Notice that total modeled use stays at 1,260 L even though overflow falls. Change to Long dry spell or No rain to see why capacity cannot create rainfall.
  4. Open Use your own rainfall. The downloadable example is explicitly synthetic. For your own permitted data, use UTF-8 CSV with date,rain_mm, consecutive ISO dates and daily millimetres. Invalid files preserve the previous rainfall; imported values are clearly marked unverified.
  5. Select Download comparison CSV to inspect the assumptions and daily arithmetic, or Reset demo to return to the starting example. The expandable model notes explain the calculation and its omissions.

The screenshots show the current working application. The imported-series mobile screenshot uses synthetic test data, not observed weather.

How it was built

Original HTML, CSS, JavaScript ES modules and SVG, with a deterministic daily model. One millimetre on one square metre equals one litre. Each day, roof collection enters storage, excess over capacity overflows, and the remaining water can meet the garden target after direct rainfall is deducted. The UI starts both barrels empty.

The public source is MIT licensed, with build instructions, model equations, attribution and tests. Node.js builds the static files; GitHub Actions checks and deploys them to GitHub Pages. Development checks use Node's test runner, Playwright, axe and jsdom. The deployed app has no third-party runtime dependencies.

Sharon Basovich created RainReserve beginning October 28, 2026, during Green Shift Hacks, with Codex AI assistance for implementation, testing and presentation. AI is not part of the runtime and does not generate the water-balance results.

Challenges and accomplishments

The main challenge was keeping a simple, approachable interface honest about its assumptions. Synthetic and user-provided rainfall are visibly distinguished; changed assumptions cannot silently export old results as new ones; invalid or interrupted imports preserve the last valid comparison. Each day and the full period obey water conservation.

Verification includes 18 domain/parser tests, 9 independent review/UI tests, 2,000 seeded model scenarios and 15 hosted Chromium checks, including real CSV import/export, recovery, keyboard operation, responsive layouts and automated accessibility checks. Those checks are not accessibility certification or validation of physical water savings.

What was learned and what comes next

Timing matters: less overflow does not necessarily mean more useful water during the period being studied. Making uncertainty visible is part of making sustainability actionable.

This prototype omits soil moisture carryover, evaporation, leaks, first-flush diversion, hourly timing, water quality, costs and seasonal plant needs. Same-day garden rain is assumed fully effective, which can overstate useful supply. It is not a weather forecast, installation design, potability assessment or safety/legal recommendation. A meaningful next step would be validation against permitted local observations and a measured garden trial before making real-world impact claims.

Built With

Share this project:

Updates

Submission history