I learned a ton working on it and would love to talk about it if anyone has any questions!
Application Link: https://trends.now.sh
Source code on Github: https://github.com/hanford/trends
[1]: https://developers.google.com/web/progressive-web-apps/
There's something weird going on with the styling of the dropdowns, though: https://i.imgur.com/WQ3m52X.gif
I'm on Windows 10 & Chrome
I happened to see this before I clicked the link, and I have to agree the page load speed lives up to your hype!
I'm not experiencing your issue on OS X, Chrome.
if you do a hard refresh this issue may be resolved! ¯\_(ツ)_/¯
Same with Microsoft Edge 42.17134.1.0
Works OK on Firefox 61.0.1 (64-bit) [2]
[1] https://imgur.com/a/e9pw5Ii [2] https://screenshots.firefox.com/iv6SFyfw29zh91WG/trends.now....
https://i.imgur.com/Naqr8Xg.jpg
I know nobody supports IE mobile but I thought id report it. It's a shame because I was looking for exactly this app, and it seems to work otherwise
> Internet Explorer Mobile is a discontinued mobile browser
Why should anyone support a discontinued browser?
The issues that really large JS bundles can cause are really hard to solve (bloated sizes, but also parse time of the bundles). There are a lot of tools to help mitigate those like code splitting, but it's really challenging once things get big.
When I wanted to achieve a 100 in my chrome performance audit, I simply couldn't include React.
I think React adds a tremendous amount of value from the ecosystem, the constant improvements and updates .. and the mindset that developers have when building out react applications. (component model, etc)
I think for any really large application with lots of client side interactions or async data / data management, my solution would become unwieldy.
But for smaller applications that maybe don't need to do as much, (in the above case we're simply registering some event listeners to submit a form) or landing pages or the like .. the above solution would work very well.
We can now do server side rendering while also booting up a complex JS app on top of it.
It is definitely the foreseeable future.
I got all of the responsiveness for free using CSS grid! Definitely recommend checking it out if you haven't yet
Figured something like this would be a little overwhelming https://imgur.com/nx3hISb
The way that is achieved is pretty neat, Next.js has a <Document />[1] component that you can extend. This Document is essentially your application shell that is used when server side rendering.
Here is the trends Document component[2] where you can see I'm simply omitting `NextScripts` which ends up being the frontend bundle with react + application code
[1] https://github.com/zeit/next.js#custom-document
[2] https://github.com/hanford/trends/blob/master/pages/_documen...
As for the page reloading I agree, but this exercise was specifically to make an application with the absolute minimum amount of client side code.
HTMl5 Forms do the job pretty well! :)
The UI is a little better though ;)
I'm simply getting this data from Github and then caching the rendered result on the cloudflare CDN layer, the rendered page data in memory in node, and additionally the GraphQL query in memory
Does anyone know of a solution to the jank on firefox (perhaps others) when you have a hover scale effect? I figure animating all dimensions and text size instead of scale may do the trick, but that's a pain.
I'd even be okay with indefinitely deferring the re-render at the end of the animation if possible.
A simple vertical list would also be nice, but that is personal preference.