3 ms·
Several years ago, along with some cofounders, i created a Hearthstone website / database (hsreplay.net). If you look at the card database it's incredibly fast
by scrollaway 5y ago
Several years ago, along with some cofounders, i created a Hearthstone website / database (hsreplay.net). If you look at the card database it's incredibly fast once loaded because all the filtering and displaying etc happens clientside. It downloads a 25-something megabyte JSON (which compresses extremely well), cf. hearthstonejson.com.
Downloading a big JSON file locally is underrated. I implemented the exact same strategy on https://overframe.gg https://overframe.gg, a Warframe database. It allows a fantastic user experience ... the tradeoff being the slow loading time (which is invisible to most people on good connections).
Overframe was a SPA though and had to lose the approach on most pages because of SEO. The usage were too different. Before that every single page on the site was clientside and available immediately after initial load.
For a tool though, especially one that relies on user input (and thus will load in the background before your user starts interacting with it), it's a great approach as long as your data is somewhat bounded.
- aftbit 5y agoOh hey you made Overframe? Thanks for that! I had that open for at least a few minutes every day for about six months during the pandemic.
- scrollaway 5y agoCouldn't have done it without Semlar, the current maintainer (fun fact, i never played Warframe, this was a job for a client/friend). Glad it's of use to you!
- 1123581321 5y agoAgreed. I’ve written a lot of B2B tools and locally storing a copy of lookup data is perfect when appropriate due to the generally smaller dataset sizes. Back in the day I’d even do super fast geo proximity locally by including a json of the locations of first three digits of zip codes and truncating the zip code of the user to make the comparison.