FullStack Bulletin

Subscribe
Archives
February 10, 2025

🤓 #411: Expressive Code

Oracle justified its JavaScript trademark, Easing Wizard, CRA Deprecation, What sits and what fits, Accessible sections, CSS Nesting: use with caution

View this email in your browser

Logo

Whassup ?!

Some personal news this week! As you might know, I'm co-authoring a book about Rust and Lambda functions with James, and we're taking a pretty unique self-publishing approach: releasing it to readers as soon as possible! The idea is that you get it at a discounted price (it's not a complete book yet!), we get awesome feedback and suggestions, and you get access to all future versions and new chapters for free. It's a win-win! Well, last week we released a new version packed with improvements (thanks to reader suggestions!) and a brand new appendix showcasing how to use CDK (as an alternative to SAM) to manage your infrastructure as code, including those rusty Lambda functions! If you're curious about this side project of mine (and intrigued by Lambda and Rust as much as I am), definitely check out Crafting Lambda Functions in Rust! 🦀
Now, let's get into some awesome full-stack content. I think this week's selection is particularly juicy! I really like how the content selection came out... and don't forget to check out the extra links at the bottom! There was just so much good stuff this week that I couldn't fit it all into the top 7! Enjoy!
Your passionate editor,
— Luciano

“First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack“

— George Carrette , Computer Scientist

Expressive Code

Expressive Code — Want to make your code snippets really pop on your blog or training site? Expressive Code is a web component that lets you showcase your code in visually stunning ways. One of the coolest features I've seen is the ability to use any VSCode theme (even with an automatic dark/light mode switcher!), while automatically adjusting the theme colors for optimal readability following accessibility standards. It's framework-agnostic, fully featured (syntax highlighting, code markers, etc.), and plugin-based. In fact, I'm planning to spend some time with it to see if I can easily embed it into my Astro site to replace the default renderer for markdown code blocks – that would give an extra lift to my personal blog! Read article

Oracle justified its JavaScript trademark — This week, Ryan Dahl (of Node.js and Deno) has written about the ongoing issue of Oracle's "JavaScript" trademark. It seems that Oracle continues to claim ownership despite having limited involvement with the language's development and evolution. It's certainly a situation that raises some questions about the role of trademarks in open source, and it questions who should control the future of JavaScript. To get the full details, I suggest you read his article and sign the open letter at javascript.tm. I have already signed it myself, because this isn't just about a name, it's about what values we, as a community, want to stand for. Read article

CSS Easing Editor and Generator — Easing Wizard is an interactive tool that makes crafting astonishing CSS easing functions a breeze! Visually design custom Bézier curves, experiment with realistic Spring physics, create playful Bounce effects, and add quirky Wiggle and Overshoot animations to your web projects. Plus, you can copy the code directly as plain CSS or Tailwind classes, drop them into your website items and see your animations come alive! Read article

CRA needs deprecation notices — React 19 has sparked a long-overdue discussion about deprecating Create React App (CRA) and this GitHub issue captures the complexities of it. As that discussion goes on, the question of whether to always adopt a meta-framework like Next.js or stick with React alone inevitably comes up. I personally believe there's still huge value in React by itself. Nothing wrong with Next.js, but I worry about it becoming the default recommendation when there are so many other great frameworks out there (Astro, TanStack, etc.)! What do you think? Do you like meta-frameworks? What are you using as a CRA alternative? View Repository

What Sits And What Fits — There are textbook best practices... and then there's the unique, imperfect reality your project lives in. So what do we do with those best practices? This article dives into the crucial balance between established principles ("sits") and context-specific adaptations ("fits") in software architecture. It argues that knowing when to break the rules is as important as understanding them in the first place. It explores common examples (polymorphism, unit testing, event-driven architecture) and provides a pragmatic framework for decision-making. If you're a full-stack developer making architectural choices, this is a must-read for its approach to pragmatism over dogma, so you can apply the correct pattern to your project while being mindful of technical debt. It's a vital reminder that real-world development often requires nuance and trade-offs. Read article

A "section" without an accessible name is nothing but a "div" — Think you know your HTML? This post dives into the surprisingly nuanced world of the <section> element. Stefan Judis explains that a <section> without an accessible name (using aria-label or aria-labelledby) is essentially just a <div> – providing no semantic value for screen readers or other assistive technologies. As full-stack developers, it's important that we understand the practical implication of our code for all users of the web, not just some, and this article does a fantastic job to make us all more aware of such details! Read article

CSS nesting: use with caution — Native CSS nesting is finally here... but is it actually a good thing? This article presents a contrarian view on the highly anticipated feature, explaining why native CSS nesting fills the author with "dread." Drawing from 15+ years of CSS experience, the author dives into issues of complexity, specificity, and code maintainability. Read article

Learn You a Haskell for Great Good!: A Beginner's Guide

by Miran Lipovaca

Learn You a Haskell for Great Good!: A Beginner's Guide

It's all in the name: Learn You a Haskell for Great Good! is a hilarious, illustrated guide to this complex functional language. Packed with the author's original artwork, pop culture references, and most importantly, useful example code, this book teaches functional fundamentals in a way you never thought possible. You'll start with the kid stuff: basic syntax, recursion, types and type classes. Then once you've got the basics down, the real black belt master-class begins: you'll learn to use applicative functors, monads, zippers, and all the other mythical Haskell constructs you've only read about in storybooks.

Buy on Amazon.com

Buy on Amazon.co.uk

Read for FREE!

You ask, we provide! 🤗

  • Building a QR Code HTML Web Component
  • How to gif (2025 edition)
  • Pino: Node.js logger
  • You should not use URLPattern to route HTTP requests on the server
  • Load the default OS font with CSS
  • git-marge (not a typo 😜)
  • An alt (attribute) Decision Tree
  • Build for the Web, Build on the Web, Build with the Web
  • Some Things You Might Not Know About Custom Counter Styles
  • Do JavaScript frameworks still need portals?
  • CSS margin-trim and line height units

👋 That’s all for this week. See you next Monday!

Greetings from your full stack friends Luciano & Andrea

🙌 Support us

If you enjoy FullStack Bulletin, consider sharing this newsletter with your friends and colleagues.


If there's something we can improve, let us know!


You can also sponsor the next issue!

Website iconTwitter iconMastodon icon

Copyright (C) 2024 FullStack Bulletin. All rights reserved.
*|IFNOT:ARCHIVE_PAGE|*

FullStack Bulletin is a FREE weekly curated newsletter for ambitious full stack developers. We sift the internet for builders, covering frontend, backend, databases, DevOps, and architecture to find what truly matters. Expect practical picks, clear takeaways, and fresh ideas that cut the noise, sharpen your skills, and fuel your creativity so you can put them to work right away.

*|END:IF|*

Our mailing address is:
*|IFNOT:ARCHIVE_PAGE|**|HTML:LIST_ADDRESS|**|END:IF|*

Want to change how you receive these emails?

You can update your preferences or unsubscribe

Don't miss what's next. Subscribe to FullStack Bulletin:
Powered by Buttondown, the easiest way to start and grow your newsletter.