ThePurePanda
A worldwide cruelty-free cosmetic store locator. My first online project, kept here as the place where I learned what a database is for.

Problem
I wanted to make it easier to find cruelty-free cosmetic stores anywhere in the world, on a single map. The bigger problem behind that turned out to be data. There is no clean public list of which shops are cruelty-free, so most of the dataset had to be put together by hand, with scraping helping only where the source was actually reliable.
Outcome
- First version mapped roughly 25,000 stores worldwide on a single page. It loaded slowly (about seven seconds) because I was serving the entire dataset from a static file, with no database in the loop.
- Speed got fixed once I taught myself to use a database. That is the moment this project graduated from a webpage into a system.
- No business model, never monetised, eventually taken offline. Kept in this portfolio as the project where I figured out how to handle a lot of data on the web in the first place.
Stack
Static HTML / JS (initial version, single-file dataset) · Database (added later, once load speed forced the lesson) · Map view as the main interface · Manual data curation, with some scraping
Why this is here
ThePurePanda was my first attempt at putting a real project online, and the website itself is long gone. It sits on this site as a piece of personal archaeology rather than a current capability, because the lessons it taught me are in the foundations of the way I build now, even if the project itself never grew up into a business.
What it actually was
The idea was simple to describe. A single map where anyone, anywhere in the world, could find cosmetic shops that did not test on animals. The hard part was the data. There was no clean public source for “is this shop cruelty-free”, so the dataset was built one record at a time, mostly by hand, with scraping used only where the underlying source was solid enough to trust. That manual curation reached about 25,000 stores worldwide before I stopped, which is also where the technical problem started.
The lesson it taught me
The first version of ThePurePanda did not have a database. It served the entire 25,000-store dataset from a static file, loaded straight into the browser, and the map took about seven seconds to come alive. I did not know any better. The site worked, it just felt slow, and the slowness was the part that made me curious. Improving that load time was the first time I had a real reason to learn what a database is for, and once I did, the same data answered queries in a fraction of the time. That moment, more than any single line of code, is what this project gave me. It is also why it stays in the portfolio. Not because it is technically impressive today, but because it is the place where I started learning to build systems that grow with their data instead of breaking under it.


