All Blog Posts

Filter by one of the following popular categories, or view all categories.

  1. CRLF vs. LF: Normalizing Line Endings in Git

    Line endings can differ from one OS to another. Learn the history behind CRLF and LF line endings and how to enforce line endings in git.

  2. How Writing Can Help You Become a Better Developer

    Writing is likely one of the last skills you associate with software development. But it plays a key role in everything that we do and can help you build a more successful career.

  3. Always Set a Width and Height on Your Images

    Dimensionless images can cause layout shifts as they load, hurting your page's performance. By setting a width and height on images, you allow the browser to initialize an aspect ratio for those images and minimize layout shifts.

  4. Why You No Longer Enjoy Reading

    Reading books isn't something that everyone enjoys. But if you used to like reading but can no longer get past the first chapter of a new book, there may be a few reasons why.

  5. Why I Don't Like Tailwind CSS

    On paper, Tailwind CSS sounds like a great idea. In reality, it suffers from the same problems that it tries to solve.

  6. SVG Tutorial: How to Code SVG Icons by Hand

    Follow along with the examples in this in-depth guide to learn how to draw SVG icons and simple shapes by hand.

  7. Creating a Vertical Rhythm with CSS Grid

    Margins are commonly used to space paragraphs in an article, but CSS Grid offers a more intuitive alternative that defines the spacing at the layout level.

  8. Rest in Peace, Flash

    If it were up to me, things wouldn't end this way. We had some great times together, but now it's time to say goodbye.

  9. Subtle Web Accessibility Issues (And How to Fix Them)

    You've scored 100 on Lighthouse's accessibility audit. But is your site actually accessible, or have you overlooked more subtle accessibility issues?

  10. Be Careful with Async Functions that Return Booleans

    Suppose an async function returns a boolean. What happens if you check the return value without awaiting it?

  11. Dynamic Tag Name Props in React (with TypeScript)

    Sometimes, a React component needs to allow users to render a custom tag. Here's how you can pass dynamic tag names as props.

  12. What Are Higher-Order Components in React?

    Higher-order components are one of React's most popular design patterns, allowing you to define reusable stateful logic and create powerful, flexible components.

  13. 6 Ways to Undo Changes in Git

    If you ever find yourself in a sticky situation with git, don't panic. Here are six simple ways you can undo changes in git and clean up your commit history.

  14. Does Web Performance Matter? It Depends.

    Some big brands have a slow page load speed, but they still rank well on Google. So does web performance even matter?

  15. Creating Aspect Ratios in CSS

    Learn how to give any element an aspect ratio in CSS, using the modern aspect-ratio property or a trick with percentage padding.

  16. Hesitation Is Defeat

    After a one-year hiatius from Sekiro, I returned to face the final boss—and, through painful persistence, triumphed.

  17. JavaScript Promises: Practical Use Cases and Examples

    Promises are a powerful tool for writing asynchronous code in JavaScript. Here are a few interesting use cases.

  18. Optimizing Images for the Web with WebP and Lazy Loading

    Images make the web a more beautiful place, but this sometimes comes at a price. Learn how to optimize images for the web using the WebP image format and lazy loading with JavaScript.

  19. Blue People Illustrations, or How to Kill a Brand

    There's a recent trend in web design of using illustrations of blue, generic, faceless people. And it's killing brands.

  20. Don't Mind the Leetcode Grind

    Leetcode is a polarizing topic when it comes to technical interviews. But what exactly is it? And does it deserve your attention?