I built it mainly for personal use. I know IMDb ratings aren't perfect but it's a decent measure of mass opinion.
Also loved the minimalist design and also how you can see your recently searched terms at the bottom.
The architecture is dead simple. Multiple times a week IMDb publishes bare bones datasets. I've a bash script to download them, format and load into MySQL from which I export two types of json files:
1) a file with all the TV shows names, id, ratings etc (shows.json) - this is what's used for search. It weighs 2MB compressed and I could certainly optimize but considering the low traffic I've stashed it for later time.
2) A file for every tv show with all the ratings and votes for its episodes. Based on your search, the specific file will be fetched to display ratings. This one file per show could also be optimized but looks premature at this stage.
You can see them here: https://github.com/dvnlgls/theshowgrid/tree/gh-pages/assets
Strictly speaking, a database is also not necessary but it serves 2 purposes: 1) I could query easily to satisfy some curious show related questions. 2) The datasets include a ton of stale data (like shows w/o episodes and vice versa), so I find it easier to cleanup through SQL.
I also appreciate the snapiness due to not using external APIs.
Would you also add the average score per season ?
- Cloudflare to avoid big bandwidth bills from AWS for the wasm-compiled graphviz that is on every page
- AWS Lambda's 1M free requests and 400,000 GB-seconds for expressjs (web serving) and graphviz (rendering hostable .png images)
- API Gateway's 1M free requests for routing HTTP -> AWS Lambda (for the app) or S3 (for hosted PNGs)
- S3's 20K GET requests/mo (for hosted PNGs)
The only one I exceed is S3, but it's dirt cheap.
Could you instead store diagram definition in DynamoDB free tier, and create PNGs on the fly?
Could definitely have used Dynamo as a persistent layer, but the PNGs are transient - the definition is stored in a GitHub gist owned by the user (another free tier! :). But generating the PNGs is expensive, so they get cached in S3. An S3 lifecycle rule automatically prunes PNGs older than a month, and they'll get regenerated from the gist if needed.
Curious does your implementation of DOT support embedding of images?
Theoretically it should be possible: http://www.graphviz.org/doc/info/attrs.html#d:image
It uses:
- Netlify's free tier for the homepage + Netlify CMS (free) for content editing
- Firebase within the free limits for cloud functions, storage + user authentication
- The free tier of Crisp web chat for support
- The Chrome store which hosts the extension for free ($5 sign up fee)
- Paddle for payments. They take a % of each transaction but they don't have a sign up fee or ongoing fees.
I built a little template for myself to quickly start new projects, that is also hosted with this free tier:
r614.dev
https://notify.run on DynamoDB’s free tier (and originally Lambda’s, but I outgrew that and it became cheaper to use a low-end Digital Ocean box)
https://treeverse.app uses Lambda/S3/Netlify on either free or pennies-per-month tier.
Also, I use Leanpub to write my books [1], which is free to use (and they pay good royalties). A recent hack: I used to supply free downloads for my eBooks on https://markwatson.com (which I run on a free VPS) but then realized that by setting the minimum price for my Leanpub books to $0.00, I didn't even have to do that. About 50 people download a free book for everyone who chooses to pay, so I hope Leanpub is not losing money on me (they are nice people).
[1] - https://neocities.org/
It's a Gatsby website and I used to use Vercel with their free deployments, but because I also needed a subdomain with PHP I switched to my cheap $3/month (unlimited website) webhost to serve the static files; but I also use Cloudflare for their free CDN. And the app demos are hosted on GitHub through Releases. The storefront is "free" through Chec.io in that I only pay a small fraction of every transaction.
Huge thank you to Vercel for making deploying Gatsby websites so easy (I run https://yboris.dev/ and https://yboris.com/ through them for free). Huge thank you to GitHub (I run https://income-inequality.info/ through it).
I also have a dynamic website using a python CMS running on free heroku which the admin uses to update the website. An heroku scheduler run a netlify job every 6 hours which download the dynamic website and publishes it as a static website.
And https://www.redditreads.com on the free tier of Google Compute Engine.
I use the free tier for firebase to store real time trade data. The front-end was built using Next.js and hosted using the Vercel free tier.
A FE only solution to find trading strategies. Paying only for domain, lives in Amazon s3
- Github pages is always great