Hey, so everyone has their favourites right? Here's a few of mine.
typescript
Such a well polished and wonderful typing system. I know this is a stepping stone to a better language, but JavaScript is really comfortable at this point. TypeScript dials the safety part in.
tslint
A linter with a great set of rules is awesome.
husky, lint-staged, prettier
husky - github / lint-staged - github / prettier - github
Some automation so I stop checking in crap-looking code.
react, react-dom
Can't imagine doing web differently to be honest. I'm sure we will soon, but for mid-2017, this is dominating.
I like preact
as well. I feel like the switching over will be pretty simple and I probably will.
glamor
The winner is:
vanilla csssasscss modulesdiyradiumaphroditestyletronstyled-componentstypestyleemotionglamglamorousglamor
!
I've flip-flopped on this quite a bit. We're spoiled by awesome options.
glamor
nails what I'm looking for:
- ✅ objects are first class
- ✅ strong on composibility
- ✅ performant out of the box (without configuration)
- ✅ works well with global styles and things like keyframes
- ✅ friendly devs
- ✅ a DSL that is true to CSS (especially with child selectors)
- ✅ built-in escape hatches
- ✅ clear docs with examples, patterns, and advice
- ✅ stable-ish API
- ✅ TypeScript-friendly
- ✅ testability without flushing caches or buffers
My advice? Don't listen to my advice. Explore & pick your own. Much, if not most, of your app is UI.
Start your app only when your gut says, "You'll fuck this up long before your styling lib gives out."
glamor
gives me that vibe. 💃
Storybook
Provides a sandbox to work on your components with whatever props you can dream of wanting set to make sure your components are in tip top shape before and during use in your application. If you are writing a component you should be writing stories about it.
Also the storyshots addon for working with jest
is a great way to add snapshot testing for your React components by using your stories. (Like we needed another reason to use storybook!!)
react-transition-group
react-transition-group - github
Brings enter + leave lifecycle events for animations.
popmotion
Power animation & tweening library.
mousetrap
The main menu in electron has keyboard accelators, but we still need one in the renderer for convenience.
Mousetrap fills that gap. It's a pretty decent little library despite not being maintained any more (lol@js). Does the job though. I've tried a couple of others but keep coming back to this one.
ramda
There's so much awesome packed in here. pipe
for days. I'll be honest, it took me a long time get comfortable with ramda
. Nowadays, you can pry it from my cold dead hands. PRECIOUS!!!
electron-builder
This does most of the heavy lifting for assembling cross-platform distributables.
electron-updater
Allows our app to auto-update.
electron-is-dev, electron-log
electron-is-dev - github / electron-log - github
A few quality-of-life utilities for working in Electron.
electron-store
Persist JSON to the file system.
electron-window-state-manager
electron-window-state-manager - github
Persist window coordinates & dimensions to disk to survive restarts.
fuse-box
Yes, you read that right. Not WebPack. WebPack always rubbed me wrong. Maybe it's the config? Maybe it's the way they name things? I'm not sure.
What I do know is, once I started playing with FuseBox, I was sold. I like the devs behind this too.
jest
Because we're using TypeScript, Jest makes this much easier. Jest comes with mocking and coverage as well.
npm-scripts-info, npm-run-all
npm-scripts-info - github / npm-run-all - github
Quality-of-life utilities for npm.
docsify
You're reading it right now.
- No build-time required.
- Themeable.
- Drops in your
master
branch. - Supports plugins.
- Hooks up to github without deployment scripts.
Love it.