PlantAlong
Type a US ZIP code and get a planting calendar worked out from the nearest weather station's frost record. Every date says where it came from.
The idea
Planting advice online is either generic („plant after your last frost”) or copied from site to site without a source. PlantAlong does the arithmetic properly: it reads real frost data for your location and applies the planting rules published by university extension services.
The rule and its source sit next to every date, and where two universities disagree, both are shown rather than averaged into something nobody said.
In numbers
- US ZIP codes
- 41,195
- NOAA weather stations
- 6,769
- university extension services
- 12
- vegetables and herbs
- 12
How it works
From ZIP code to station
The ZIP code is mapped to a USDA hardiness zone, using the PRISM/USDA ZIP table, and to the nearest NOAA station with 1991–2020 climate normals.
Frost dates with risk
The station's normals give the typical last spring frost and first autumn frost, plus the later date when the risk of frost drops to 10%.
Rules from extension services
Planting windows come from published extension guidance, such as „transplant tomatoes one to two weeks after the last frost”, scoped to the regions each source covers.
Computed on your device
The calendar is calculated in the browser. The ZIP code never leaves it, and the result is an interactive season ribbon you can zoom and drag.
Tools and features
Companion planting
A matrix of plant pairs graded by how good the evidence is, plus a printable chart.
Raised-bed soil calculator
Volume, bags to buy and the mix an extension service recommends.
3D crops
Each crop page has a procedural three.js model you can spin and flip.
Frost alerts
Double opt-in emails with a personalised PDF calendar.
CMS and publishing
A blog and a Studio CMS live in the same Astro app: an editor with SEO checks, scheduling, a media library that stores WebP images in Postgres, link suggestions and IndexNow notifications.
One daily job publishes the posts that are due and sends the frost alerts.
Built to be found
- Programmatic pages only where the data is good: crop × zone pages exist for zones with enough ZIP codes and are skipped when they would be near-duplicates.
- The build fails if any indexable page has a title or description outside the length limits.
- Sitemaps are written from the built HTML, so they list only real, canonical, indexable pages.
- Structured data and a share image for every page.
Stack
- AstroStatic pages and server routes
- PostgreSQLCMS, alerts, media
- three.jsProcedural 3D crops
- GSAPMascot and interface motion
- CoolifyDocker deploys on my own VPS
- CloudflareDNS
- Playwright + axeEnd-to-end and accessibility tests
Key screens
On a phone