Newsletter #15 - New site
Welcome to the 15th edition of DeveloPassion's newsletter.
Whew, time flies! It's been a few months since the last edition of my newsletter. The last few months have been hectic, I've worked too much (yes, that's possible :p).
As usual, I'd like to ask all of you to help me out a bit. If you find this newsletter interesting, then please do take a bit of time to share the link to my newsletter on social media: https://mailchi.mp/fb661753d54a/developassion-newsletter. With your help, others will also get a chance to discover and enjoy reading it. As an added benefit, it'll also motivate me to continue the experience!
Dev Concepts News
Since January, I've made a lot of progress on Dev Concepts, my latest writing project. As you might know, Dev Concepts is a collection of 12 e-books that I'm currently writing. So far, I've published the two first tomes.
The first one is dedicated to the software craft, and explains the different skills that software crafters need to acquire & improve over the course of their careers. In it, I've shared many ideas about learning, productivity, time management, habits & professionalism. Check out the table of contents and the sales page for details.
More recently, I've also published the second volume, called "What clients need", in which I've written about how to best serve your clients by understanding what they really need (which is often not what they say :p). That volume covers ideas like User-Centered Design, User Experience, user research, usability, design patterns, design sprints, and more! Again, refer to the table of contents and check out the sales page if you're interested.
Each volume costs roughly the price of one or two coffees and should help you get a clear understanding of the concepts.
If you can't afford it, then send me a DM on Twitter, and I'll give you a free copy. I'm also interested in giving free access to the content in exchange for honest feedback, so please don't hesitate to reach out to me ;-)
If you want to follow the project, then check out my weekly status updates on IndieHacker: https://www.indiehackers.com/product/dev-concepts
New Website & blog
My main goal was to take back ownership of my content, which I wanted to be able to publish more easily at different locations. I've been blogging on Medium for a while, but my content is behind the paywall and I have mixed feelings about that. To be honest, I like getting money out of my writing and I fancy making a living out of it. But on the other, a number of you are annoyed by the paywall, which I completely understand.
Now, I publish everything on my new blog first, then I cross-post on a few other sites like Medium, DEV.to, and HashNode. This way, even if my content is paywalled on Medium, it becomes freely accessible elsewhere. As an added benefit, it makes my content available for more people.
If you know me a bit, you'll guess that I couldn't satisfy myself with a ready-made solution. As a proud hacker, I needed to make it on my own. Since I've been enjoying Next.js lately, I've decided to use it to create my blog. Next.js is really nice, quite easy to learn if you're used to React, and super easy to deploy using Vercel, which is no surprise since they're the creators of Next.js 😅
For the blog part, I've taken (a lot!) of inspiration from Lee Robinson's blog, and used Markdown with MDX, next-mdx-remote to load the content, mdx-embed to embed Tweets, Youtube Videos & Github gists, gray-matter for the front-matter, mdx-prism for syntax highlighting, and remark/rehype plugins.
Creating my new Website made it clear to me that Next.js really is a solid choice for modern Web apps. I think that Gatsby still has advantages in terms of developer experience (its GraphQL support is epic and the plugins ecosystem is great), but the feature set of Next.js with SSR, SSG & APIs is really cool. By the way, I've published an article explaining how to configure the Apollo client in a Next.js TS application.
If you're curious, the code behind my blog is on GitHub. If anyone's interested, then I'll write a blog post about how the blog works ;p
Angular 12 was released this week, so I took a few hours to review the changelogs in detail, in order to discover the changes in this new version. Based on that research, I wrote an in-depth article about the release, explaining everything.
Ivy is finally becoming the default for new libraries (which is great), and library authors are encouraged to migrate to Ivy as soon as their users will also be using Ivy. Next to that, Angular 12 supports Webpack 5, which is awesome new for performance & support for micro front-ends (for those who care :p). With this release, Angular also supports TypeScript 4.2, and nullish coalescing in templates.
Sass is also finally supported within inline styles, which is a great step towards lighter components. Once Angular modules become optional, Angular will have a real shot at rivaling with other lighter alternatives. I'm eager to see Angular evolve in that direction.
Sadly, still not a lot of progress on the reactive forms front (still as weakly typed as ever), but there's still hope.
From now on, Angular's ng build command defaults to production builds, which is a better default for most folks.
They've also introduced support for Tailwind, making it a breeze to use it with Angular 🔥
On other news, IE11 support is finally deprecated (big yay!), which is wonderful for progress. Protractor is being abandoned in favor of more modern alternatives like Cypress, WebdriverIO, Playwright, TestCafe, etc.
And there's a lot more, so check out my article if you're curious :)
On other news, a while ago, I've published an article about lazily loading Angular applications (not lazy loading within Angular apps!), and another one explaining the bootstrap process of Angular applications.
Tailwind's Just-In-Time mode
I'm a huge fan of Tailwind. Something that I've been really psyched about recently is the release of Tailwind's Just-In-Time (JIT) compiler. It started as a side experiment, but the results were so positive that it was quickly included and released along with Tailwind v2.1.
Tailwind's Just-In-Time mode will only generate CSS code for Tailwind classes that are really used by our application, instead of generating a 20+MB CSS file in development and having to post-process the CSS using PurgeCSS for production.
A call for help
Dev Concepts is an important project for me. I have a passion for IT and software development and want to share it with as many people as I can. I strongly believe that these books are valuable, but people need to know that they exist before they can decide for themselves.
So please go ahead and help me to let people know that it exists:
That's all folks!
I'm really interested to hear about what you think of this newsletter. If you have remarks/ideas/articles to share, then please don't hesitate to contact me through Twitter (https://twitter.com/dSebastien). My DMs are open.
If you find this newsletter interesting, then please share the link around: https://mailchi.mp/fb661753d54a/developassion-newsletter
Don't forget that you can also follow me on Medium where I currently publish my articles.
See you next time!