Plant Database
veggie.farm needs a structured plant database behind the articles.
Articles explain how to think. Data helps readers compare crops, plan beds, filter by season, understand spacing, and eventually build calendars around frost dates and growing zones.
Current schema
The first records focus on practical growing conditions:
- common name;
- plant category;
- botanical name;
- sun exposure;
- germination window;
- seed depth;
- ideal temperature;
- plant spacing;
- frost hardiness;
- pollinator value;
- garden use;
- source URL.
The newer external import uses a more explicit provenance model. Every record keeps its source URL, discovery path, imported timestamp, parsed growing fields, and a reference to the original source image URL without copying the image file.
Curated records
These records are hand-reviewed examples. They are small on purpose: they set the shape and tone for article-ready plant data.
Rare Seeds import
Rare Seeds is useful for cultivar-level growing facts: sun exposure, germination window, ideal germination temperature, seed depth, plant spacing, frost hardiness, plant size, and sometimes direct-sow or indoor-start notes.
The current import is a broad catalog pass, not a hand-picked sample. It covers vegetables, herbs, flowers, grains, perennial seed crops, and unusual edible plants. That breadth matters because future tools should be able to reason about pollinator plantings, cover crops, seed-starting conditions, ornamentals near vegetable beds, and crop rotations from one common data layer.
The import is deliberately fact-focused. It does not republish catalog descriptions. It does not copy product images into this repository. Source image URLs are retained only so a human editor can review the original page later.
Catalog breadth
The category labels come from Rare Seeds store sections where each product was discovered. They are not final veggie.farm taxonomy, but they show the current import covers far more than the small curated vegetable and fruit pages.
Field coverage
Imported plant facts
This table is a working dataset, not final editorial copy. It is meant to feed future crop pages, comparison tables, planting calendars, and planner tools after review.
Source policy
Seed catalog pages are useful sources for factual growing conditions. The site should not become a copy of catalog prose.
For third-party sources, store facts and source URLs. Write original veggie.farm notes. Do not republish product descriptions or product photography unless licensing permits it.
Source candidates
| Source | Best use | Current status |
|---|---|---|
| Rare Seeds | Seed depth, germination, ideal temperature, spacing, frost hardiness, botanical names | Broad import created with source URLs and fact-only fields |
| Garden.org plant database | Cultivar-level plant facts and botanical references | Candidate source; example page was unavailable during review |
| Atami journal article | Journal fields, observation rhythm, measurement ideas | Used as app inspiration, not plant data |
| GrowVeg planner page | Planner features and data requirements | Used as app inspiration, not copied UI or datasets |
Import workflow
Rare Seeds category and product pages can be converted into draft JSON records with a full pass:
node scripts/import-rareseeds.mjs --delay-ms=180 --fetch-timeout-ms=15000 --resume=false --quiet
For a slower, more conservative pass:
node scripts/import-rareseeds.mjs --delay-ms=900 --quiet
The output is written to src/data/external/rareseeds-products.json, with an import summary in src/data/external/rareseeds-summary.json. Records should still be reviewed before they are promoted into curated crop pages or src/data/plants.json.
Garden.org plant pages can be probed with:
node scripts/import-gardenorg-page.mjs https://garden.org/plants/view/112242/Carrot-Daucus-carota-var-sativus-Danvers-Half-Long/
If the source page is unavailable, the script returns a structured unavailable status rather than failing the workflow.
Field notes
Data is only useful when it can be trusted. Each imported record should keep its source, retrieval date, and enough context to review later.