I use an Application Load Balancer to balance the load to the EC2 clusters of nightly.zerotoherojs.com and dojo.zerotoherojs.com.
Addditionally, ELB protects my cluster against DDOS attacks: So it is multi-birds with one stone.
zerotoherojs.com ’s userbase, and course details are stored in DynamoDB tables.
The good thing about AWS DynamoDB is: For the amount of traffic that I have, it is free. It is highly-scalable, it is managed by Amazon, and it is pretty fast.
It is, again, one less thing to worry about (when compared to managing your own MongoDB elsewhere).
I mostly use AWS Lambda for triggering DevOps-related actions, like triggering an alarm or a deployment, or scheduling a backup.
I haven’t gone totally “serverless” and I’m not planning to go 100% serverless anytime soon.
But when I do, AWS Lambda will be an important element in my serverless setup.
Webpack is the best bundler. Period.
Yes, it has a(n arguably) messy documentation, and a steep learning curve; but once you get the hang of it, there is nothing you cannot do with it.
Use it and you don’t have to use any other bundler at all.
It has a vivid ecosystem, and great plugin support.
I use CloudFront to front the static website at zerotoherojs.com that I host in an s3 bucket.
This way, I don’t have to worry about scalability or performance, as I’ll know that the content will be delivered to the users as fast as possible from the closest edge location.
Using websockets is something, scaling a message pipeline to thousands of concurrent connections is something else.
I trust PubNub with what it does best, and use it as zerotoherojs.com ’s messaging pipeline.
With PubNub, I have one less problem to think about.
I use express.js for nightly.zerotoherojs.com and dojo.zerotoherojs.com web apps.
Express is well-known, lightweight, works out-of-the-box, has great middleware support and has minimal learning curve.
It is the best framework to start developing a general Node.js web app.
For styling components, styled-components work great (really!)
You don’t have to use it for everything. You can still use good old CSS classes along with your styled components.
What I do generally is to separate the “layout”, “typography”, “vertical rhythm”, and “reset” to good old CSS, and style the rest of the app with styled components.
Crisp is a realtime chat widget that, unlike its competitors, does not demand your leg and kidney to deliver a decent service.
It works great for zerotoherojs.com and I recommend anyone if they have a similar need.
Even their free tier is more than enough for the majority of the use cases that you can think of.
At zerotoherojs.com there are two kinds of mailing that I send.
I send the important emails using Mailgun, and news and updates using MailChimp.
For managing your mailing list, and sending occasional newsletters, MailChimp is the best.
I use AWS Workspaces for several things:
Their desktop client, especially for Windows, work amazingly well. And they deliver what they promise.