Inspiration
Precision agriculture has existed for decades — but it's always been gated behind expensive hardware, proprietary sensors, and enterprise contracts that small and mid-size farmers simply can't afford. We kept asking: the satellite data is free, the AI is accessible, so why is this still a $50,000 problem? CropSight is our answer. We wanted to build something that puts the same zone-level field intelligence that large agribusinesses use into the hands of any farmer with a browser.
What it does
CropSight is a precision agriculture platform that turns free satellite imagery into actionable, AI-generated farm recommendations. Farmers draw or let the system automatically detect their field boundary on an interactive map, type in their crop in plain English, and CropSight does the rest — querying the Sentinel-2 satellite constellation for the most recent cloud-free pass over that exact field, computing vegetation health indices (NDVI, NDWI, NDRE, EVI2, etc.) per pixel, segmenting the field into management zones, and running a multi-agent AI pipeline that generates specific, urgency-ranked recommendations tailored to their crop. Accepted recommendations become tracked todos, and every field is re-analyzable on demand with fresh satellite data.
How we built it
Frontend: Next.js 14 App Router with Mapbox GL JS for interactive field drawing and zone visualization. Meta's SAM3 for field detection and segmentation. TanStack Query handles real-time polling until analysis completes. The fields dashboard uses the Mapbox Static Images API to generate satellite thumbnails for each saved field.
Backend: FastAPI with async background tasks. When a field is created or re-analyzed, a pipeline fires that queries the Earth Search STAC API (Element84's free, open catalog of every Sentinel-2 satellite pass) to find the least-cloudy recent scene over the field's bounding box. We use rasterio to stream only the relevant pixels from Cloud-Optimized GeoTIFFs over HTTP — no downloading entire satellite scenes.
AI Pipeline: A LangGraph multi-node agent graph running on Claude with five specialized nodes: context_builder (weather + agronomic context), zone_classifier (crop-specific NDVI thresholds), risk_evaluator (cross-references weather forecast with zone health), action_generator (produces recommendations with estimated yield impact in bushels per acre), and output_formatter.
Database: Supabase with PostGIS for geospatial field storage, zone data, timeseries indices, recommendations, and a todo/action queue system.
Challenges we ran into
The hardest technical challenge was wrangling real satellite data at runtime. Sentinel-2 scenes are distributed as multi-gigabyte ZIP archives — completely impractical to download per request. We had to research and implement a COG (Cloud-Optimized GeoTIFF) streaming approach using rasterio's VSICURL interface, which lets us perform HTTP range requests to read only the pixels covering a specific bounding box without downloading the full scene. Getting the coordinate reprojection right (UTM zone → EPSG:4326) and ensuring reliable band alignment across different Sentinel-2 granules took significant iteration.
Another challenge was index accuracy across crop types. A raw NDVI score means different things for corn versus coffee versus rice — healthy corn NDVI is not healthy coffee NDVI. We had to design the LangGraph agent to apply crop-specific thresholds rather than generic ones, and ensure the natural language crop input was propagated correctly through every node of the pipeline.
Accomplishments that we're proud of
We're most proud of building a fully agentic AI recommendation pipeline grounded in real, live satellite data — something no other competitor in this field is offering. Harvest queries an actual satellite catalog, reads spectral band data from orbit, computes real vegetation indices over your exact field boundary, and feeds that into a multi-node LangGraph agent that reasons about your specific crop before generating recommendations. The entire pipeline — from drawing a field to receiving AI recommendations — runs end-to-end in under a minute using entirely free, open data sources.
What we learned
This project pushed us into several technologies we hadn't used before:
- Cloud-Optimized GeoTIFFs and the STAC ecosystem — we had no prior experience with geospatial raster data pipelines or the SpatioTemporal Asset Catalog spec. Learning how COG HTTP range reads work and how to navigate the Earth Search catalog was a significant new skill.
- LangGraph for building stateful, multi-node agent graphs — as opposed to single-shot LLM prompts. Designing a graph where each node has a distinct agronomic role forced us to think carefully about agent architecture.
- PostGIS for geospatial queries — storing and querying polygon data with real spatial operations Rasterio and GDAL for remote sensing — coordinate systems, band math, and reprojection.
What's next for CropSight
- Automated scheduling — re-run the satellite pipeline every 5 days (Sentinel-2's revisit cadence) and push alerts when a zone's health score drops significantly between passes.
- Historical trend analysis — show NDVI timeseries charts per zone so farmers can see how their field has evolved across the growing season.
- Multi-farmer support — full authentication so the platform can scale beyond a single demo user. Mobile app — so farmers can check recommendations and mark todos from the field.
Built With
- fastapi
- gdal
- langgraph
- nextjs
- postgis
- python
- rasterio
- supabase
- typescript
Log in or sign up for Devpost to join the conversation.