Oakparks was my first transition from Frontend developer to Backend developer. It was a passion project that came to me while I was working at Valhalla Farms. I was constantly researching the different plants that would fit nicely into our project. The name of the plants weren't all that important. What was important was their function within our system: how should be planted, where, what type of soil, what type of sun, in proximity to others, etc.
However, in trying to find these plants, I realized it was easier once you already new the name of the plant, but finding the plant based on its function was the hard part.
So I started oakparks.org, a plant database that allows you to search for plants based on their function. I started with the scientific database of all known plants, and cross referenced them with several sources and standardized their properties. This enabled them to be searched by all sorts of useful criteria, like aliases, soil type, sun exposure, resource type, and much more.
Oakparks.org was the openly available database. In an attempt to fund the project further, I created pro.oakparks.com which was a utility aimed at garden centers to leverage the oakparks.org API to create custom signs and marketing material for their plants and help their customers choose the right plant.
In the process, I created a couple of open source libraries that I used to parse human readable quantities into structured data:
A big focus on SEO was taken to ensure that the plants would be found. This was the primary marketing strategy.
I also realized there was an opportunity for extremely cheap PPC to drive traffic. There's virtually no competition for the very specific plant names and so creating a PPC ad would allow my to drive specific targeted traffic for pennies. The only problem was I had thousands of plant ads that needed to be created. I solved this by integrating with Google's AD API and creating the ads programmatically.
I noticed my demographic heavily used Pinterest to plan and organize plants in their gardens. I create an integration with Pinterest to automatically create pins for each plant. This allowed me to drive traffic to my site from Pinterest.
This project required a lot of intense scraping of websites and so was a great opportunity to learn about web scraping in detail. I had to cycle through proxies, make parallel requests to save time, and handle rate limiting.