HarvestSignal was the result of two simple observations: first, that people increasingly want to eat local, in-season produce; second, that the USDA publishes vast amounts of data about agriculture in America, but that data is largely inaccessible to most people.
HarvestSignal was my attempt to create an easy way for people to see what produce is currently in season near where they live, using data already collected and published by the USDA.
In practise, building HarvestSignal was relatively complex. Firstly, the pertinent data from the USDA were published in large plain-text datasheets formatted for consumption by humans rather than machines. Conglomerating, structuring and error-checking that data took a good amount of time, scripting, macros and tired fingers.
The second challenge was taking a user’s location and returning all results within a given radius. I used PostGIS for this, and while the underlying math is not rocket science, getting the queries to run with acceptable performance was an interesting challenge, and a learning experience.
Finally, HarvestSignal was the first application I built which made extensive use of email. (Users can choose to have in-season produce reports emailed to them once a week.) Achieving good delivery with modern email systems feels like a dark art, with various technical incantations which must be recited just-so. In the end I settled with Amazon SES as a mail provider, and MJML for markup generation with good email client compatibility.
For the user interface, I fell back to React, which I am now very familiar and comfortable with.
HarvestSignal was a fun project and a good learning experience, but as I spoke to users and gathered feedback, it became clear that what people really want is a platform that makes it easy for ethically-minded food consumers to connect directly to small-scale farms. The real challenge, then, would be finding and on-boarding hundreds or thousands of local farms – and, unfortunately, that’s a challenge I’m not ready to meet.