41554 blogs · [ { "id": "01a087ee-9ee1-70a0-b0b5-43137a3f0fd6", "title": "AI fills in the blank", "url": "https://thetrevorharmon.com/blog/ai-fills-in-the-blank", "published_at": "2025-11-21T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43137a8a3236", "title": "Don't use the spread operator in a loop", "url": "https://thetrevorharmon.com/blog/dont-use-the-spread-operator-in-a-loop", "published_at": "2024-11-25T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43137ae02e45", "title": "Const isn't constant", "url": "https://thetrevorharmon.com/blog/const-isnt-constant", "published_at": "2024-08-07T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43137bd3f9cf", "title": "Thoughts on building habits", "url": "https://thetrevorharmon.com/blog/thoughts-on-building-habits", "published_at": "2024-07-30T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43137c4b0862", "title": "Loaves and fishes", "url": "https://thetrevorharmon.com/blog/loaves-and-fishes", "published_at": "2024-06-28T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43137c6929e0", "title": "Loose null checks in JavaScript", "url": "https://thetrevorharmon.com/blog/loose-null-checks-in-javascript", "published_at": "2024-06-03T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43137d2a4714", "title": "Advanced state management with React and CodeMirror", "url": "https://thetrevorharmon.com/blog/advanced-state-management-with-react-and-codemirror", "published_at": "2024-03-25T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43137de8ee7b", "title": "Connecting ANTLR to CodeMirror 6: Connecting a Language Server", "url": "https://thetrevorharmon.com/blog/connecting-antlr-to-code-mirror-6-connecting-a-language-server", "published_at": "2024-02-16T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43137e274410", "title": "Connecting ANTLR to CodeMirror 6: Building a Language Server", "url": "https://thetrevorharmon.com/blog/connecting-antlr-to-codemirror-6-building-a-language-server", "published_at": "2024-02-15T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43137e99cbe7", "title": "CodeMirror and React", "url": "https://thetrevorharmon.com/blog/codemirror-and-react", "published_at": "2023-10-24T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43137f79a650", "title": "Learning CodeMirror", "url": "https://thetrevorharmon.com/blog/learning-codemirror", "published_at": "2023-09-20T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43137fb3be2d", "title": "Building a ShopifyQL Editor", "url": "https://thetrevorharmon.com/blog/building-a-shopifyql-editor", "published_at": "2023-09-14T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43137fe45fa3", "title": "Displaying Mermaid charts in Gatsby", "url": "https://thetrevorharmon.com/blog/displaying-mermaid-charts-in-gatsby", "published_at": "2023-08-24T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-431380553ed4", "title": "What I've been up to lately", "url": "https://thetrevorharmon.com/blog/what-ive-been-up-to-lately", "published_at": "2023-07-21T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43138065a146", "title": "Sell things fast with Gatsby and Shopify", "url": "https://thetrevorharmon.com/blog/sell-things-fast-with-gatsby-and-shopify", "published_at": "2020-04-23T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-431381377bac", "title": "How to prepare and use variable fonts on the web", "url": "https://thetrevorharmon.com/blog/how-to-prepare-and-use-variable-fonts-on-the-web", "published_at": "2020-01-27T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-4313818ab7f7", "title": "Introducing 2.0 in 2020", "url": "https://thetrevorharmon.com/blog/introducing-2-0-in-2020", "published_at": "2020-01-09T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-431381b15c11", "title": "Designing Album Artwork", "url": "https://thetrevorharmon.com/blog/designing-album-artwork", "published_at": "2019-12-07T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43138217ed1c", "title": "Designing for Michael Barrow & the Tourists", "url": "https://thetrevorharmon.com/blog/designing-for-michael-barrow-and-the-tourists", "published_at": "2019-12-06T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-431382a3ffba", "title": "Binary Thinking vs Directional Thinking - @DanielPriestley", "url": "https://thetrevorharmon.com/blog/binary-thinking-vs-directional-thinking-danielpriestley", "published_at": "2019-10-24T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-431383178e93", "title": "What I learned from my first month working remote", "url": "https://thetrevorharmon.com/blog/what-I-learned-from-my-first-month-working-remote", "published_at": "2019-10-14T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-431383a907e6", "title": "Why Slow Mornings May Be the Secret to Tech-Life Balance - @ajzaleski", "url": "https://thetrevorharmon.com/blog/why-slow-mornings-may-be-the-secret-to-tech-life-balance-ajzaleski", "published_at": "2019-09-23T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-431384021a72", "title": "Email signup forms with Gatsby and Mailchimp", "url": "https://thetrevorharmon.com/blog/email-signup-forms-with-gatsby-and-mailchimp", "published_at": "2019-07-24T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-431384dfe780", "title": "Getting Closure on React Hooks – @swyx", "url": "https://thetrevorharmon.com/blog/getting-closure-on-react-hooks-swyx", "published_at": "2019-07-22T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-431385b6d299", "title": "How to use S3 select to query JSON in Node.js", "url": "https://thetrevorharmon.com/blog/how-to-use-s3-select-to-query-json-in-node-js", "published_at": "2019-06-05T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-4313865e6b5e", "title": "Code IRL: Javascript closures", "url": "https://thetrevorharmon.com/blog/code-irl-javascript-closures", "published_at": "2019-05-01T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-4313872f9612", "title": "Three Simple Ways to Write Cleaner Code", "url": "https://thetrevorharmon.com/blog/three-simple-ways-to-write-cleaner-code", "published_at": "2019-04-23T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-431387da10de", "title": "Configuring Jest and Enzyme in Create React App on Typescript", "url": "https://thetrevorharmon.com/blog/configuring-jest-and-enzyme-in-create-react-app-on-typescript", "published_at": "2019-04-02T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-4313886bce22", "title": "The value of iterative design", "url": "https://thetrevorharmon.com/blog/the-value-of-iterative-design", "published_at": "2019-03-13T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-4313895e4118", "title": "A developer's guide to the Open Graph protocol", "url": "https://thetrevorharmon.com/blog/a-developers-guide-to-the-open-graph-protocol", "published_at": "2019-02-12T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43138a2d0a72", "title": "What I learned from a failed startup", "url": "https://thetrevorharmon.com/blog/what-I-learned-from-a-failed-startup", "published_at": "2019-01-29T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43138aa518b0", "title": "StaticQuery and Typescript", "url": "https://thetrevorharmon.com/blog/staticquery-and-typescript", "published_at": "2018-11-29T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43138b912b9b", "title": "How to silence false SASS warnings in React", "url": "https://thetrevorharmon.com/blog/how-to-silence-false-sass-warnings-in-react", "published_at": "2018-11-27T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43138c2ee86e", "title": "How to lint Typescript in a Gatsby project", "url": "https://thetrevorharmon.com/blog/how-to-lint-typescript-in-a-gatsby-project", "published_at": "2018-11-06T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43138c4bb6da", "title": "How to quickly deploy a Gatsby site with Netlify", "url": "https://thetrevorharmon.com/blog/how-to-quickly-deploy-a-gatsby-site-with-netlify", "published_at": "2018-09-17T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43138d0b3b9e", "title": "How to make a static site with flexible content (using Gatsby & Contentful)", "url": "https://thetrevorharmon.com/blog/how-to-make-a-static-site-with-flexible-content-using-gatsby-and-contentful", "published_at": "2018-09-10T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43138db72094", "title": "How to make a super-fast static site with Gatsby, Typescript, and SASS", "url": "https://thetrevorharmon.com/blog/how-to-make-a-super-fast-static-site-with-gatsby-typescript-and-sass", "published_at": "2018-09-05T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43138e4c3a89", "title": "How to use Apple Font Tools to tweak a font", "url": "https://thetrevorharmon.com/blog/how-to-use-apple-font-tools-to-tweak-a-font", "published_at": "2018-06-19T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43138f0fb594", "title": "What Facebook can teach us about the new MacBook Pro", "url": "https://thetrevorharmon.com/blog/what-facebook-can-teach-us-about-the-new-macbook-pro", "published_at": "2016-11-02T00:00:00+00:00" }, { "id": "01a087ee-9ee1-70a0-b0b5-43138fc9de6b", "title": "On Building CougarCash", "url": "https://thetrevorharmon.com/blog/on-building-cougarcash", "published_at": "2015-09-08T00:00:00+00:00" } ] posts Claim your blog
Back to thetrevorharmon.com
Blog · corpus.blog/blogs/thetrevorharmon.com/posts

thetrevorharmon.com

thetrevorharmon.com

2025

2024

2023

2020

2019

2018

2016

2015