Hi HN, author here! As students facing online instruction, we built ZoomerBackgrounds to solve firsthand the everyday problems of having subpar backgrounds and spoke with several friends working in industry about their background needs. The result is a product we really think you're really going to love. We had a lot of fun making this over the weekend and hope you all enjoy :)
For the tech stack we used react on the front end with a Node.js server + Firebase for persistent storage. This was my first time writing Javascript in about 5-6 years and it's really neat to see how the ecosystem has matured - there are even real classes now! We also used the Google Cloud Vision API for detecting inappropriate images.
On the database side, we found that Firebase Store works really well until it doesn't -- when you want to do anything that isn't basic reads/writes (e.g. SQL-like IN queries, query pagination, programmatic queries like sorting by the HN ranking algorithm ~ points/(time since post)^(1.5)) the workarounds can get complex and a little weird.
One question we had is around AdSense approval! The Google Adsense approval team rejected our website for not having enough meaningful content / not having "valuable inventory" - it would be great to hear some insight about how to show Google we are a real website.
Happy to answer any questions here or at logan@mit.edu!
I see that you have an option to not include a watermark on downloaded images, but having watermarks turned on by default (especially since these look like user uploaded images which I'm assuming you don't actually own) is quite off-putting.
I was going to say that the watermark is too obtrusive ... I don't have a problem with you getting a bit of attention in exchange for the time it takes to curate the collection but it's too big and in a bad spot.
For the tech stack we used react on the front end with a Node.js server + Firebase for persistent storage. This was my first time writing Javascript in about 5-6 years and it's really neat to see how the ecosystem has matured - there are even real classes now! We also used the Google Cloud Vision API for detecting inappropriate images.
On the database side, we found that Firebase Store works really well until it doesn't -- when you want to do anything that isn't basic reads/writes (e.g. SQL-like IN queries, query pagination, programmatic queries like sorting by the HN ranking algorithm ~ points/(time since post)^(1.5)) the workarounds can get complex and a little weird.
One question we had is around AdSense approval! The Google Adsense approval team rejected our website for not having enough meaningful content / not having "valuable inventory" - it would be great to hear some insight about how to show Google we are a real website.
Happy to answer any questions here or at logan@mit.edu!