<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title>Matt Smith</title>
 <link href="https://allthingssmitty.com/atom.xml" rel="self"/>
 <link href="https://allthingssmitty.com/"/>
 <updated>2026-05-12T19:54:12-04:00</updated>
 <id>https://allthingssmitty.com</id>
 <author>
   <name>Matt Smith</name>
 </author>

 
 <entry>
   <title>I keep tripping over &quot;true, false, true&quot;</title>
   <link href="https://allthingssmitty.com/2026/05/11/i-keep-tripping-over-true-false-true/"/>
   <updated>2026-05-11T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2026/05/11/i-keep-tripping-over-true-false-true</id>
   <content type="html">createUser(user, true, false) works. It&apos;s also surprisingly hard to read. Here&apos;s why I&apos;ve stopped writing APIs like this in JavaScript.</content>
 </entry>
 
 <entry>
   <title>Why I don&apos;t chain everything in JavaScript anymore</title>
   <link href="https://allthingssmitty.com/2026/04/20/why-i-dont-chain-everything-in-javascript-anymore/"/>
   <updated>2026-04-20T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2026/04/20/why-i-dont-chain-everything-in-javascript-anymore</id>
   <content type="html">JavaScript chaining looks clean at first, but it can hurt readability and hide extra work. Here&apos;s when to break chains into simpler steps.</content>
 </entry>
 
 <entry>
   <title>You probably don&apos;t need to lift state</title>
   <link href="https://allthingssmitty.com/2026/03/30/you-probably-dont-need-to-lift-that-state/"/>
   <updated>2026-03-30T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2026/03/30/you-probably-dont-need-to-lift-that-state</id>
   <content type="html">A quick React tip: don&apos;t lift state by default. Keep it close to where it&apos;s used unless you actually need to share it.</content>
 </entry>
 
 <entry>
   <title>Native JSON modules are finally real</title>
   <link href="https://allthingssmitty.com/2026/03/16/native-json-modules-are-finally-real/"/>
   <updated>2026-03-16T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2026/03/16/native-json-modules-are-finally-real</id>
   <content type="html">JSON imports finally work natively. Learn how import ... with { type: &apos;json&apos; } changes runtime behavior, caching, and makes bundlers optional.</content>
 </entry>
 
 <entry>
   <title>From instanceof to Error.isError: safer error checking in JavaScript</title>
   <link href="https://allthingssmitty.com/2026/02/23/from-instanceof-to-error-iserror-safer-error-checking-in-javascript/"/>
   <updated>2026-02-23T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2026/02/23/from-instanceof-to-error-iserror-safer-error-checking-in-javascript</id>
   <content type="html">Why instanceof error fails across realms in JavaScript, and how Error.isError() fixes it.</content>
 </entry>
 
 <entry>
   <title>Explicit resource management in JavaScript</title>
   <link href="https://allthingssmitty.com/2026/02/02/explicit-resource-management-in-javascript/"/>
   <updated>2026-02-02T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2026/02/02/explicit-resource-management-in-javascript</id>
   <content type="html">JavaScript is getting explicit resource management. Learn how &apos;using&apos;, &apos;Symbol.dispose&apos;, and scoped lifetimes make cleanup safer and simpler.</content>
 </entry>
 
 <entry>
   <title>Stop turning everything into arrays (and do less work instead)</title>
   <link href="https://allthingssmitty.com/2026/01/12/stop-turning-everything-into-arrays-and-do-less-work-instead/"/>
   <updated>2026-01-12T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2026/01/12/stop-turning-everything-into-arrays-and-do-less-work-instead</id>
   <content type="html">Do less work in JavaScript: lazy data pipelines with iterator helpers instead of arrays.</content>
 </entry>
 
 <entry>
   <title>React has changed, your Hooks should too</title>
   <link href="https://allthingssmitty.com/2025/12/01/react-has-changed-your-hooks-should-too/"/>
   <updated>2025-12-01T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2025/12/01/react-has-changed-your-hooks-should-too</id>
   <content type="html">Modern React has moved beyond overusing useEffect. Discover the Hook patterns that enable cleaner logic, fewer bugs, and scalable architecture in 2026.</content>
 </entry>
 
 <entry>
   <title>Error chaining in JavaScript: cleaner debugging with Error.cause</title>
   <link href="https://allthingssmitty.com/2025/11/10/error-chaining-in-javascript-cleaner-debugging-with-error-cause/"/>
   <updated>2025-11-10T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2025/11/10/error-chaining-in-javascript-cleaner-debugging-with-error-cause</id>
   <content type="html">Use JavaScript&apos;s &apos;cause&apos; property to chain errors, preserve context, and simplify debugging. Cleaner stack traces, better test assertions.</content>
 </entry>
 
 <entry>
   <title>Rethinking async loops in JavaScript</title>
   <link href="https://allthingssmitty.com/2025/10/20/rethinking-async-loops-in-javascript/"/>
   <updated>2025-10-20T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/10/20/rethinking-async-loops-in-javascript</id>
   <content type="html">Struggling with &apos;await&apos; in loops? Explore common mistakes and modern solutions to optimize async code for performance.</content>
 </entry>
 
 <entry>
   <title>How to group arrays in JavaScript without reduce()</title>
   <link href="https://allthingssmitty.com/2025/10/06/grouping-arrays-in-modern-javascript-object-groupby-and-map-groupby/"/>
   <updated>2025-10-06T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/10/06/grouping-arrays-in-modern-javascript-object-groupby-and-map-groupby</id>
   <content type="html">Ditch the reduce() boilerplate! Learn how to use Object.groupBy() and Map.groupBy() in JavaScript to group data with cleaner, more expressive code.</content>
 </entry>
 
 <entry>
   <title>Stop using .reverse().find(): meet findLast()</title>
   <link href="https://allthingssmitty.com/2025/09/22/stop-using-reverse-find-meet-findlast/"/>
   <updated>2025-09-22T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/09/22/stop-using-reverse-find-meet-findlast</id>
   <content type="html">Learn how Array.prototype.findLast() and findLastIndex() let you search JavaScript arrays from the end—no .reverse() required. Cleaner, safer, and perfect for UI logic.</content>
 </entry>
 
 <entry>
   <title>Finally, safe array methods in JavaScript</title>
   <link href="https://allthingssmitty.com/2025/09/08/finally-safe-array-methods-in-javascript/"/>
   <updated>2025-09-08T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/09/08/finally-safe-array-methods-in-javascript</id>
   <content type="html">Learn how to safely sort, reverse, and splice arrays in JavaScript using ES2023 methods toSorted(), toReversed(), and toSpliced(). Perfect for React and modern JS development.</content>
 </entry>
 
 <entry>
   <title>Understanding Promise.any(): when one success is enough</title>
   <link href="https://allthingssmitty.com/2025/08/25/understanding-promise-any-when-one-success-is-enough/"/>
   <updated>2025-08-25T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/08/25/understanding-promise-any-when-one-success-is-enough</id>
   <content type="html">Learn how Promise.any() helps you handle multiple promises by resolving with the first success, perfect for fallback APIs and progressive features in JavaScript.</content>
 </entry>
 
 <entry>
   <title>Logical assignment operators in JavaScript: small syntax, big wins</title>
   <link href="https://allthingssmitty.com/2025/07/28/logical-assignment-operators-in-javascript-small-syntax-big-wins/"/>
   <updated>2025-07-28T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/07/28/logical-assignment operators-in-javascript-small-syntax-big-wins</id>
   <content type="html">Logical assignment operators streamline conditional assignments in JavaScript, making your code cleaner, safer, and easier to read.</content>
 </entry>
 
 <entry>
   <title>Modern async iteration in JavaScript with Array.fromAsync()</title>
   <link href="https://allthingssmitty.com/2025/07/14/modern-async-iteration-in-javascript-with-array-fromasync/"/>
   <updated>2025-07-14T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/07/14/modern-async-iteration-in-javascript-with-array-fromasync</id>
   <content type="html">JavaScript&apos;s &apos;Array.fromAsync()&apos; offers a concise alternative to &apos;for await...of&apos; when working with async iterables and streams.</content>
 </entry>
 
 <entry>
   <title>Default parameters: your code just got smarter</title>
   <link href="https://allthingssmitty.com/2025/06/29/default-parameters-your-code-just-got-smarter/"/>
   <updated>2025-06-29T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/06/29/default-parameters-your-code-just-got-smarter</id>
   <content type="html">Say goodbye to manual fallbacks! Explore how JavaScript default parameters make your functions more robust, readable, and bug-free.</content>
 </entry>
 
 <entry>
   <title>Using await at the top level in ES modules</title>
   <link href="https://allthingssmitty.com/2025/06/16/using-await-at-the-top-level-in-es-modules/"/>
   <updated>2025-06-16T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/06/16/using-await-at-the-top-level-in-es-modules</id>
   <content type="html">Modern JavaScript is evolving. Learn how top-level &apos;await&apos; works, where to use it, and when to avoid it in your modules.</content>
 </entry>
 
 <entry>
   <title>Write more reliable JavaScript with optional chaining</title>
   <link href="https://allthingssmitty.com/2025/06/02/write-more-reliable-javascript-with-optional-chaining/"/>
   <updated>2025-06-02T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/06/02/write-more-reliable-javascript-with-optional-chaining</id>
   <content type="html">Avoid runtime errors and write cleaner JavaScript with optional chaining, a powerful way for safely accessing deeply nested properties.</content>
 </entry>
 
 <entry>
   <title>How JavaScript&apos;s at() method makes array indexing easier</title>
   <link href="https://allthingssmitty.com/2025/05/19/how-javascript-at-method-makes-array-indexing-easier/"/>
   <updated>2025-05-19T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/05/19/how-javascript-at-method-makes-array-indexing-easier</id>
   <content type="html">Learn how JavaScript&apos;s &apos;at()&apos; method simplifies array and string indexing with cleaner syntax, negative indexing, and broad browser support.</content>
 </entry>
 
 <entry>
   <title>The power of the spread and rest syntax in JavaScript</title>
   <link href="https://allthingssmitty.com/2025/05/05/the-power-of-spread-and-rest-patterns-in-javascript.md/"/>
   <updated>2025-05-05T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/05/05/the-power-of-spread-and-rest-patterns-in-javascript.md</id>
   <content type="html">Learn how the spread and rest syntax in JavaScript can power up the front-end, from array handling to React state updates, with tips every developer should know.</content>
 </entry>
 
 <entry>
   <title>When to use map() vs. forEach()</title>
   <link href="https://allthingssmitty.com/2025/04/21/when-to-use-map-vs-foreach/"/>
   <updated>2025-04-21T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/04/21/when-to-use-map-vs-foreach</id>
   <content type="html">Learn the key differences between &apos;map()&apos; and &apos;forEach()&apos; methods in JavaScript, when to use each, and why map() is often the better choice for transforming data and writing cleaner, more functional code.</content>
 </entry>
 
 <entry>
   <title>Mastering default values in JavaScript with the nullish coalescing (??) operator</title>
   <link href="https://allthingssmitty.com/2025/04/10/mastering-default-values-in-javascript-with-the-nullish-coalescing-operator/"/>
   <updated>2025-04-10T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/04/10/mastering-default-values-in-javascript-with-the-nullish-coalescing-operator</id>
   <content type="html">The nullish coalescing operator (&apos;??&apos;) provides a simple way to handle null or undefined values in JavaScript. It&apos;s a must-have, let me show you why.</content>
 </entry>
 
 <entry>
   <title>Leveraging &quot;unknown&quot; instead of &quot;any&quot;</title>
   <link href="https://allthingssmitty.com/2025/03/31/leveraging-unknown-instead-of-any-in-typescript/"/>
   <updated>2025-03-31T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2025/03/31/leveraging-unknown-instead-of-any-in-typescript</id>
   <content type="html">Learn why using &apos;unknown&apos; instead of &apos;any&apos; in TypeScript leads to safer, more maintainable code. Discover best practices, benefits, and examples for improved type safety and error handling in TypeScript.</content>
 </entry>
 
 <entry>
   <title>CSS fix for 100vh in mobile WebKit</title>
   <link href="https://allthingssmitty.com/2020/05/11/css-fix-for-100vh-in-mobile-webkit/"/>
   <updated>2020-05-11T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2020/05/11/css-fix-for-100vh-in-mobile-webkit</id>
   <content type="html">WebKit handles 100vh in a way that differs from other browsers, which can complicate some layouts. But using -webkit-fill-available might be a good enough alternative to get by.</content>
 </entry>
 
 <entry>
   <title>Using closest() to return the correct DOM element</title>
   <link href="https://allthingssmitty.com/2019/03/25/using-closest-to-return-the-correct-dom-element/"/>
   <updated>2019-03-25T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2019/03/25/using-closest-to-return-the-correct-dom-element</id>
   <content type="html">Sometimes you need JavaScript to target specific selectors in the DOM. The closest() method can help you do just that.</content>
 </entry>
 
 <entry>
   <title>Phone number links and accessibility</title>
   <link href="https://allthingssmitty.com/2018/01/29/phone-number-links-and-accessibility/"/>
   <updated>2018-01-29T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2018/01/29/phone-number-links-and-accessibility</id>
   <content type="html">Phone number links are a great feature but styling them to not show on larger screens can be an accessibility concern and detected by screen readers. Here&apos;s a useful tip on making the links both functional and accessible.</content>
 </entry>
 
 <entry>
   <title>Nope, nope, nope, line-height is unitless</title>
   <link href="https://allthingssmitty.com/2017/01/30/nope-nope-nope-line-height-is-unitless/"/>
   <updated>2017-01-30T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2017/01/30/nope-nope-nope-line-height-is-unitless</id>
   <content type="html">When setting line-height in CSS, a common mistake is to pass a specific unit for the value. Here&apos;s why we should be following the preferred approach and set line-height to a unitless value.</content>
 </entry>
 
 <entry>
   <title>The front-end is...</title>
   <link href="https://allthingssmitty.com/2017/01/16/the-front-end-is/"/>
   <updated>2017-01-16T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2017/01/16/the-front-end-is</id>
   <content type="html">Front-end development has many skills associated with it, and it&apos;s been my experience that the role is often misunderstood. The front-end is tough to describe, but here&apos;s a brief nod of recognition to just some of what developers do.</content>
 </entry>
 
 <entry>
   <title>CSS reset for minimalists</title>
   <link href="https://allthingssmitty.com/2017/01/09/css-reset-for-minimalists/"/>
   <updated>2017-01-09T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2017/01/09/css-reset-for-minimalists</id>
   <content type="html">Browsers have built-in CSS for native styling. Using a CSS reset helps you enforce consistent styling. Here&apos;s a 3-line snippet that may do just enough of what you need.</content>
 </entry>
 
 <entry>
   <title>Add line height to body</title>
   <link href="https://allthingssmitty.com/2016/12/26/add-line-height-to-body-copy/"/>
   <updated>2016-12-26T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2016/12/26/add-line-height-to-body copy</id>
   <content type="html">It&apos;s not necessary to add line height to each separate textual element. Here&apos;s a helpful tip for elements to inherit line height from the body.</content>
 </entry>
 
 <entry>
   <title>Zero-based date, Christmas, and emoji</title>
   <link href="https://allthingssmitty.com/2016/12/21/zero-based-date-christmas-and-emoji/"/>
   <updated>2016-12-21T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2016/12/21/zero-based-date-christmas-and-emoji</id>
   <content type="html">Not every method in JavaScript&apos;s Date object returns a zero-based number. Here&apos;s a tip will help you understand that a little better.</content>
 </entry>
 
 <entry>
   <title>Responsive video resizing</title>
   <link href="https://allthingssmitty.com/2016/12/12/responsive-video-resizing/"/>
   <updated>2016-12-12T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2016/12/12/responsive-video-resizing</id>
   <content type="html">There are many different solutions for responsive images, but video is a media element that&apos;s often ignored in fluid layouts. Let&apos;s change that by looking at how we can keep video responsive across viewports.</content>
 </entry>
 
 <entry>
   <title>Flexible type with :root</title>
   <link href="https://allthingssmitty.com/2016/12/05/flexible-type-using-root/"/>
   <updated>2016-12-05T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2016/12/05/flexible-type-using-root</id>
   <content type="html">There are a few different ways to manage responsive type on the web. My personal approach is to use the :root selector for maximum flexibility.</content>
 </entry>
 
 <entry>
   <title>Use attribute selectors with empty links</title>
   <link href="https://allthingssmitty.com/2016/11/28/use-attribute-selectors-with-empty-links/"/>
   <updated>2016-11-28T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2016/11/28/use-attribute-selectors-with-empty-links</id>
   <content type="html">If a hyperlink doesn&apos;t have a text value, use CSS attribute selectors to insert the href value in its place.</content>
 </entry>
 
 <entry>
   <title>Math.floor, Math.random, and Jurassic Park</title>
   <link href="https://allthingssmitty.com/2016/11/14/math-floor-and-math-random-and-jurassic-park/"/>
   <updated>2016-11-14T00:00:00-05:00</updated>
   <id>https://allthingssmitty.com/2016/11/14/math-floor-and-math-random-and-jurassic-park</id>
   <content type="html">If you&apos;re new to math methods in JavaScript here are a few words about Math.floor and Math.random and a fun way to use them to build a custom text generator.</content>
 </entry>
 
 <entry>
   <title>Show my password, please</title>
   <link href="https://allthingssmitty.com/2016/10/24/show-my-password-please/"/>
   <updated>2016-10-24T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2016/10/24/show-my-password-please</id>
   <content type="html">Allowing users to view the password they&apos;ve entered helps avoid frustration and improve engagement. This is a quick JavaScript example.</content>
 </entry>
 
 <entry>
   <title>Splitting a border around another element</title>
   <link href="https://allthingssmitty.com/2016/10/10/splitting-a-border-around-another-element/"/>
   <updated>2016-10-10T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2016/10/10/splitting-a-border-around-another-element</id>
   <content type="html">Here&apos;s an effect that you may have seen but not realized that can be done with some straightforward CSS.</content>
 </entry>
 
 <entry>
   <title>Responsive table layout</title>
   <link href="https://allthingssmitty.com/2016/10/03/responsive-table-layout/"/>
   <updated>2016-10-03T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2016/10/03/responsive-table-layout</id>
   <content type="html">Data tables on the web are used to communicate important information to a user. Yet so many of these aren&apos;t mobile-optimized. Here&apos;s one easy way to do just that.</content>
 </entry>
 
 <entry>
   <title>Accessible floating labels</title>
   <link href="https://allthingssmitty.com/2016/09/25/accessible-floating-labels/"/>
   <updated>2016-09-25T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2016/09/25/accessible-floating-labels</id>
   <content type="html">Accessibility is a key piece to building the web, but for some reason using labels is considered unattractive. However, there&apos;s a design-friendly way to make accessible labels.</content>
 </entry>
 
 <entry>
   <title>Checking if Font Awesome loaded</title>
   <link href="https://allthingssmitty.com/2016/09/12/checking-if-font-awesome-loaded/"/>
   <updated>2016-09-12T00:00:00-04:00</updated>
   <id>https://allthingssmitty.com/2016/09/12/checking-if-font-awesome-loaded</id>
   <content type="html">Icon fonts are a very popular visual web asset today. Unlike JavaScript libraries there&apos;s no straightforward way to detect if an icon fonts library has loaded. Here&apos;s a clever way to do just that.</content>
 </entry>
 

</feed>
