→ /v0lkan/javascript-from-zero-to-hero#slack
It is like IRC, but everybody else uses it. And it works well.
I use slack as a communication medium for the early-access-program crowd, while I’m also evaluating spectrum.chat as an alternative.
→ /v0lkan/javascript-from-zero-to-hero#webpack
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.
→ /v0lkan/javascript-from-zero-to-hero#amazon-s3
Currently I use Amazon S3 to serve the static website of zerotoherojs.com (along with CloudFront).
→ /v0lkan/javascript-from-zero-to-hero#papertrail
I use Papertrail as a distributed log aggregator for nightly.zerotoherojs.com and dojo.zerotoherojs.com
I served me really well so far.
It is simple to use, intuitive, and reasonably-priced.
→ /v0lkan/javascript-from-zero-to-hero#stripe
Integrating Stripe to your app is dead simple.
It removes all the hassle of integrating with a payment gateway.
Its API is developer-friendly and intuitive, reliable, and works all the time.
It’s my payment gateway of choice.
→ /v0lkan/javascript-from-zero-to-hero#pubnub
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.
→ /v0lkan/javascript-from-zero-to-hero#nginx
I use NGINX as a reverse-proxy fronting the Node.js web EC2 instances.
It is lightweight, it gets it job done really well. And it’s written by Russians: so it should be good, no?
→ /v0lkan/javascript-from-zero-to-hero#mailgun
Mailgun is the only mailing service that I trust to deliver critical user and system emails of zerotoherojs.com
It works great, and for my current usage volume it’s free.
→ /v0lkan/javascript-from-zero-to-hero#amazon-ec2
I like containers and all, but for zerotoherojs.com I am a one-man band, who also works full time. I don’t have any (dev)ops budget, and therefore I need the reliability and uptime of an actual virtual machine.
That’s where AWS EC2 comes in handy.
→ /v0lkan/javascript-from-zero-to-hero#loader-io
I use loader.io for distributed load testing.
That especially matters when you have a cross-region load-balancer and you want to make sure how your app behaves on a global scale.
→ /v0lkan/javascript-from-zero-to-hero#amazon-cloudwatch
CloudWatch is “on by default” in Amazon. And by just configuring a few alarms you can have a near-zero-cost monitoring service of your own.
→ /v0lkan/javascript-from-zero-to-hero#amazon-vpc
With VCP, you can secure and segment your nodes.
It is easy to manage, flexible, and gives great control over your virtual infrastructure.
→ /v0lkan/javascript-from-zero-to-hero#amazon-cloudfront
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.
→ /v0lkan/javascript-from-zero-to-hero#babel
When you are using modern (or sometimes experimental) features of the language, you’ll eventually have to transpile them so that your app works in a wide spectrum of user agents.
Babel is the transpilation tool of my choice.
→ /v0lkan/javascript-from-zero-to-hero#eslint
JavaScript is a language that works wonders when there are tools like ESLint, Prettier, and FlowType that cover your back.
I use my IDE’s (Visual Studio Code) ESLint integration to validate the code I write in realtime.
→ /v0lkan/javascript-from-zero-to-hero#sass
Yes, there is variables support in CSS; but still, I like the flexibility that sass has to provides.
I use sass along with styled components.
→ /v0lkan/javascript-from-zero-to-hero#styled-components
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.
→ /v0lkan/javascript-from-zero-to-hero#mailchimp
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.
→ /v0lkan/javascript-from-zero-to-hero#markdown
What you see is not what you get, never it is.
Documentation is better in Markdown format. You don’t need anything special to read it.
It is compact, portable, comparable.
Markdown is my text file format of choice.
→ /v0lkan/javascript-from-zero-to-hero#jest
Jest is my unit-testing tool of choice.
Almost all unit testing suites (Mocha, Jasmine, etc.) are more or less the same.
The main advantage I guess, is that it integrates pretty well with React and Enzyme.
→ /v0lkan/javascript-from-zero-to-hero#amazon-workspaces
I use AWS Workspaces for several things:
Their desktop client, especially for Windows, work amazingly well. And they deliver what they promise.
→ /v0lkan/javascript-from-zero-to-hero#aws-codecommit
I use CodeCommit for projects that require a tighter integration with the AWS ecosystem.
Otherwise, my default source control system as a service of choice is: GitHub.
→ /v0lkan/javascript-from-zero-to-hero#crisp
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.
→ /v0lkan/javascript-from-zero-to-hero#buddy
Buddy is deployment: simplified.
With buddy, you can actually have fun while you deploy your infra.
Beautiful UI, excellent UX, solid product, fanatical support!
→ /v0lkan/javascript-from-zero-to-hero#javascript
The course is names “JavaScript” from Zero to Hero…
So, by definition, I use a hell lot of JavaScript, everywhere :D
→ /v0lkan/javascript-from-zero-to-hero#git
Is there anyone who does not use git
.
git
is love, git
is life.
→ /v0lkan/javascript-from-zero-to-hero#nodejs
Node.js is the app server of choice for the EC2 web app nodes of dojo.zerotoherojs.com and nightly.zerotoherojs.com
I am also considering using golang
; but for now, Node.js works pretty well, so I’m good with it.
→ /v0lkan/javascript-from-zero-to-hero#amazon-elasticache
I use a micro elesticache instance as a shared session store between the Node.js clusters of dojo.zerotoherojs.com and nightly.zerotoherojs.com
→ /v0lkan/javascript-from-zero-to-hero#aws-elastic-load-balancing
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.
→ /v0lkan/javascript-from-zero-to-hero#datadog
I used DataDog for setting up alarms and realtime dashboards for nightly.zerotoherojs.com and dojo.zerotoherojs.com
→ /v0lkan/javascript-from-zero-to-hero#amazon-route-53
Since most of zerotoherojs.com infrastructure is on AWS, Route53 is the obvious DNS of choice.
I’m also considering CloudFlare, but haven’t decided the pros and cons of migrating yet.
→ /v0lkan/javascript-from-zero-to-hero#yarn
I prefer yarn
instead of npm
.
Both npm
and yarn
work great.
I don’t see any overwhelming reason to choose one over another.
I just like yarn, that’s it.
→ /v0lkan/javascript-from-zero-to-hero#uptimerobot
Uptime Robot is simple; it does what it claims it does, and it does it really well. And its free tier works great for my needs. What more can I want out of it?
→ /v0lkan/javascript-from-zero-to-hero#docker
I use docker mostly on creating small proof-of-concept setups. This way I don’t have to spend AWS cycles (and money) just to validate an idea.
→ /v0lkan/javascript-from-zero-to-hero#mustache
Mustache is a simple logicless template language.
It is lightweight, and currently suits my templating needs.
I use it, in lieu of things like React SSR etc.
→ /v0lkan/javascript-from-zero-to-hero#expressjs
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.
→ /v0lkan/javascript-from-zero-to-hero#es6
It is not ES6… it is simply “JavaScript”; and it is the future.
Write JavaScript: Love JavaScript.
→ /v0lkan/javascript-from-zero-to-hero#amazon-sns
I mainly use it for the infrastructure notifications and alarms of zerotoherojs.com ’s learning dashboards.
→ /v0lkan/javascript-from-zero-to-hero#github
zerotoherojs.com ’s Learning Management System codebase lives in a private GitHub repository.
→ /v0lkan/javascript-from-zero-to-hero#react
I use React (and Hooks) for the learning dashboard of nightly.zerotoherojs.com and dojo.zerotoherojs.com
→ /v0lkan/javascript-from-zero-to-hero#html5
Drop the “5”… it is “HTML”.
Drop the “6”… it is “ES”.
Drop the “3”. it is “CSS”.
→ /v0lkan/javascript-from-zero-to-hero#amazon-dynamodb
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).
→ /v0lkan/javascript-from-zero-to-hero#aws-lambda
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.
→ /v0lkan/javascript-from-zero-to-hero#ruby
I’m using Ruby and Jekyll as a static site generator along with express-static to protect it behind a session.
It’s currently experimental; I may or may not continue to use it—we’ll see.