41554 blogs · [ { "id": "01a08725-cc76-70d9-bf43-aa831abf1927", "title": "I stopped destructuring everything", "url": "https://allthingssmitty.com/2026/07/13/i-stopped-destructuring-everything/", "published_at": "2026-07-13T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa831b68aed8", "title": "The quiet problem with unnecessary async", "url": "https://allthingssmitty.com/2026/06/08/the-quiet-problem-with-unnecessary-async/", "published_at": "2026-06-08T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa831c590b77", "title": "I keep tripping over \"true, false, true\"", "url": "https://allthingssmitty.com/2026/05/11/i-keep-tripping-over-true-false-true/", "published_at": "2026-05-11T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa831ca5e534", "title": "Why I don't chain everything in JavaScript anymore", "url": "https://allthingssmitty.com/2026/04/20/why-i-dont-chain-everything-in-javascript-anymore/", "published_at": "2026-04-20T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa831ce095e9", "title": "You probably don't need to lift state", "url": "https://allthingssmitty.com/2026/03/30/you-probably-dont-need-to-lift-that-state/", "published_at": "2026-03-30T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa831d94f6e6", "title": "Native JSON modules are finally real", "url": "https://allthingssmitty.com/2026/03/16/native-json-modules-are-finally-real/", "published_at": "2026-03-16T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa831e1186b6", "title": "From instanceof to Error.isError: safer error checking in JavaScript", "url": "https://allthingssmitty.com/2026/02/23/from-instanceof-to-error-iserror-safer-error-checking-in-javascript/", "published_at": "2026-02-23T05:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa831e945e21", "title": "Explicit resource management in JavaScript", "url": "https://allthingssmitty.com/2026/02/02/explicit-resource-management-in-javascript/", "published_at": "2026-02-02T05:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa831f07f036", "title": "Stop turning everything into arrays (and do less work instead)", "url": "https://allthingssmitty.com/2026/01/12/stop-turning-everything-into-arrays-and-do-less-work-instead/", "published_at": "2026-01-12T05:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa831fb9f22d", "title": "React has changed, your Hooks should too", "url": "https://allthingssmitty.com/2025/12/01/react-has-changed-your-hooks-should-too/", "published_at": "2025-12-01T05:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa83206ec72f", "title": "Error chaining in JavaScript: cleaner debugging with Error.cause", "url": "https://allthingssmitty.com/2025/11/10/error-chaining-in-javascript-cleaner-debugging-with-error-cause/", "published_at": "2025-11-10T05:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa832110c686", "title": "Rethinking async loops in JavaScript", "url": "https://allthingssmitty.com/2025/10/20/rethinking-async-loops-in-javascript/", "published_at": "2025-10-20T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa8321858975", "title": "How to group arrays in JavaScript without reduce()", "url": "https://allthingssmitty.com/2025/10/06/grouping-arrays-in-modern-javascript-object-groupby-and-map-groupby/", "published_at": "2025-10-06T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa83219d72ba", "title": "Stop using .reverse().find(): meet findLast()", "url": "https://allthingssmitty.com/2025/09/22/stop-using-reverse-find-meet-findlast/", "published_at": "2025-09-22T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa8321e1b0d0", "title": "Finally, safe array methods in JavaScript", "url": "https://allthingssmitty.com/2025/09/08/finally-safe-array-methods-in-javascript/", "published_at": "2025-09-08T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa83220e56a1", "title": "Understanding Promise.any(): when one success is enough", "url": "https://allthingssmitty.com/2025/08/25/understanding-promise-any-when-one-success-is-enough/", "published_at": "2025-08-25T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa8322a308f4", "title": "Logical assignment operators in JavaScript: small syntax, big wins", "url": "https://allthingssmitty.com/2025/07/28/logical-assignment-operators-in-javascript-small-syntax-big-wins/", "published_at": "2025-07-28T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa83237ba334", "title": "Modern async iteration in JavaScript with Array.fromAsync()", "url": "https://allthingssmitty.com/2025/07/14/modern-async-iteration-in-javascript-with-array-fromasync/", "published_at": "2025-07-14T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa8324141239", "title": "Default parameters: your code just got smarter", "url": "https://allthingssmitty.com/2025/06/29/default-parameters-your-code-just-got-smarter/", "published_at": "2025-06-29T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa832433ab43", "title": "Using await at the top level in ES modules", "url": "https://allthingssmitty.com/2025/06/16/using-await-at-the-top-level-in-es-modules/", "published_at": "2025-06-16T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa8324b517d2", "title": "Write more reliable JavaScript with optional chaining", "url": "https://allthingssmitty.com/2025/06/02/write-more-reliable-javascript-with-optional-chaining/", "published_at": "2025-06-02T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa83250eb3e3", "title": "How JavaScript's at() method makes array indexing easier", "url": "https://allthingssmitty.com/2025/05/19/how-javascript-at-method-makes-array-indexing-easier/", "published_at": "2025-05-19T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa8325429fec", "title": "The power of the spread and rest syntax in JavaScript", "url": "https://allthingssmitty.com/2025/05/05/the-power-of-spread-and-rest-patterns-in-javascript.md/", "published_at": "2025-05-05T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa8325bed460", "title": "When to use map() vs. forEach()", "url": "https://allthingssmitty.com/2025/04/21/when-to-use-map-vs-foreach/", "published_at": "2025-04-21T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa83260e7f1c", "title": "Mastering default values in JavaScript with the nullish coalescing (??) operator", "url": "https://allthingssmitty.com/2025/04/10/mastering-default-values-in-javascript-with-the-nullish-coalescing-operator/", "published_at": "2025-04-10T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa83263b45d2", "title": "Leveraging \"unknown\" instead of \"any\"", "url": "https://allthingssmitty.com/2025/03/31/leveraging-unknown-instead-of-any-in-typescript/", "published_at": "2025-03-31T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa83265d8274", "title": "CSS fix for 100vh in mobile WebKit", "url": "https://allthingssmitty.com/2020/05/11/css-fix-for-100vh-in-mobile-webkit/", "published_at": "2020-05-11T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa8326bb4ee4", "title": "Using closest() to return the correct DOM element", "url": "https://allthingssmitty.com/2019/03/25/using-closest-to-return-the-correct-dom-element/", "published_at": "2019-03-25T04:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa83271de725", "title": "Phone number links and accessibility", "url": "https://allthingssmitty.com/2018/01/29/phone-number-links-and-accessibility/", "published_at": "2018-01-29T05:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa8327ee208e", "title": "Nope, nope, nope, line-height is unitless", "url": "https://allthingssmitty.com/2017/01/30/nope-nope-nope-line-height-is-unitless/", "published_at": "2017-01-30T05:00:00+00:00" }, { "id": "01a08725-cc76-70d9-bf43-aa83283cba98", "title": "The front-end is...", "url": "https://allthingssmitty.com/2017/01/16/the-front-end-is/", "published_at": "2017-01-16T05:00:00+00:00" }, { "id": "01a08725-cc77-729f-9b3e-92855e2c6623", "title": "CSS reset for minimalists", "url": "https://allthingssmitty.com/2017/01/09/css-reset-for-minimalists/", "published_at": "2017-01-09T05:00:00+00:00" }, { "id": "01a08725-cc77-729f-9b3e-92855ee3393c", "title": "Add line height to body", "url": "https://allthingssmitty.com/2016/12/26/add-line-height-to-body-copy/", "published_at": "2016-12-26T05:00:00+00:00" }, { "id": "01a08725-cc77-729f-9b3e-92855f60d1eb", "title": "Zero-based date, Christmas, and emoji", "url": "https://allthingssmitty.com/2016/12/21/zero-based-date-christmas-and-emoji/", "published_at": "2016-12-21T05:00:00+00:00" }, { "id": "01a08725-cc77-729f-9b3e-92855f7e5a88", "title": "Responsive video resizing", "url": "https://allthingssmitty.com/2016/12/12/responsive-video-resizing/", "published_at": "2016-12-12T05:00:00+00:00" }, { "id": "01a08725-cc77-729f-9b3e-92855fca9505", "title": "Flexible type with :root", "url": "https://allthingssmitty.com/2016/12/05/flexible-type-using-root/", "published_at": "2016-12-05T05:00:00+00:00" }, { "id": "01a08725-cc77-729f-9b3e-92856088ac33", "title": "Use attribute selectors with empty links", "url": "https://allthingssmitty.com/2016/11/28/use-attribute-selectors-with-empty-links/", "published_at": "2016-11-28T05:00:00+00:00" }, { "id": "01a08725-cc77-729f-9b3e-92856150845b", "title": "Math.floor, Math.random, and Jurassic Park", "url": "https://allthingssmitty.com/2016/11/14/math-floor-and-math-random-and-jurassic-park/", "published_at": "2016-11-14T05:00:00+00:00" }, { "id": "01a08725-cc77-729f-9b3e-928561f9642a", "title": "Show my password, please", "url": "https://allthingssmitty.com/2016/10/24/show-my-password-please/", "published_at": "2016-10-24T04:00:00+00:00" }, { "id": "01a08725-cc77-729f-9b3e-9285621efe46", "title": "Splitting a border around another element", "url": "https://allthingssmitty.com/2016/10/10/splitting-a-border-around-another-element/", "published_at": "2016-10-10T04:00:00+00:00" }, { "id": "01a08725-cc77-729f-9b3e-928562a789b7", "title": "Responsive table layout", "url": "https://allthingssmitty.com/2016/10/03/responsive-table-layout/", "published_at": "2016-10-03T04:00:00+00:00" }, { "id": "01a08725-cc77-729f-9b3e-9285631e1bc8", "title": "Accessible floating labels", "url": "https://allthingssmitty.com/2016/09/25/accessible-floating-labels/", "published_at": "2016-09-25T04:00:00+00:00" }, { "id": "01a08725-cc77-729f-9b3e-928563560b53", "title": "Checking if Font Awesome loaded", "url": "https://allthingssmitty.com/2016/09/12/checking-if-font-awesome-loaded/", "published_at": "2016-09-12T04:00:00+00:00" } ] posts Claim your blog
Back to allthingssmitty.com
Blog · corpus.blog/blogs/allthingssmitty.com/posts

allthingssmitty.com

allthingssmitty.com

2026

2025

2020

2019

2018

2017

2016