Migrate from next-sitemap to the Next.js App Directory's sitemap
This post walks through the process of migrating from the next-sitemap library to the Next.js App Directory's sitemap.
Read more βI'm a startup founder, a designer, and a maker. I share my writing on this site, but you can also find me on threads @irreverentmike Mastodon and GitHub.
I work as a co-founder & CTO at Craftwork β however, the things I post here are my own, and don't necessarily reflect the views or opinions of Craftwork.
11-19-2024
How the most productive people use fundamental truths to navigate complexity and stay focused
This post walks through the process of migrating from the next-sitemap library to the Next.js App Directory's sitemap.
Read more βSubscribe and join other builders
My weekly newsletter for product builders. It's a single, tiny idea to help you build better products.
Once a week, straight from me to you. π Unsubscribe anytime.
Optimizing signups by testing, trusting statistics, and fine-tuning UX
Read more βThis video dives into the process I used to diagnose and debug a conversion problem on my personal website using Posthog, a powerful product analytics tool.
Read more βThis video dives into the process I used to diagnose and debug a conversion problem on my personal website using Posthog, a powerful product analytics tool.
Read more βPowerful advice gleaned from a quote by Ira Glass - your taste will always outpace your creative abilities.
Read more βLearn how to seed your Supabase database with this simple pattern.
Read more βCanonical tags are a powerful tool to help search engines understand which version of a page is the original one. This can help you avoid duplicate content issues and ensure that your content gets the credit it deserves.
Read more βStructured Data can be added to your site tell Google and other search engines what type of content is on each page using a metadata format called JSON-LD.
Read more βA YouTube live coding stream, learning to build content-driven sites with the Astro Web Framework.
Read more βA YouTube live coding stream where we explore how we use a variety of dynamic images with Next.js using Satori.
Read more βA coding livestream where integrate Resend's new Broadcasts feature into my next.js site to use for sending newsletters.
Read more βSet up self-healing URLs with the App Router in Next.js for better SEO, accessibility, and usability
Read more βI built a tool for summarizing podcasts Using Open AI's GPT and transcription APIs. This is a sample of its output for an episode of the Acquired podcast about Costco's history and business.
Read more βLearn how to add custom fonts to your Next.js app using next/font and Tailwind CSS. Improve user experience without sacrificing performance.
Read more βTiny Improvements has seen 350% growth in the last 6 months. This is my reflection on that growth, and tips for anyone interested in writing a newsletter.
Read more βSometimes fixing a TypeScript or eslint error in VS Code can feel impossible. Here's what I do when I have exhausted all my resources.
Read more βExtracting types from a JavaScript object is a common task in TypeScript. This post shows how to do it with VS Code.
Read more βLearn how to sync your About page and your personal GitHub README bio on your Next.js site, as a step towards owning your content on social media.
Read more βReflections on the current state of Twitter, and its similarity to the shocking results of a 1961 experiment by Yale Researcher Stanley Milgram.
Read more βEmbrace no-code tools to save time, boost efficiency, and complement your coding skills. No-code is the future - don't be left behind!
Read more βUse previous issues of your newsletter to attract new subscribers, using the ConvertKit API with your Next.js site.
Read more βLearn how to use the ConvertKit API to publish your newsletter to your Remix site.
Read more βImplement the Orton Effect in CSS and React. The Orton Effect creates a surreal, dreamy image effect, named after photographer Michael Orton.
Read more βThe Third Place is thought of as a space different from home (the first place) and work (the second place), where people can socialize and find community.
Read more βI use these tools on every project to help track source code, monitor traffic on my site, and optimize content for better Search Engine Optimization (SEO).
Read more βThis is the right format to use if you want to add a subtitle below an h1 tag on your html pages. Semantic HTML makes your site more accessible and better for SEO, since it is easier for search engines to process.
Read more βBuilding a website using the Remix.run webb app framework? This tutorial will teach you how to add privacy-first analytics to your Remix site with Fathom.
Read more βLet's call it an experiment. I'm building a tiny product to see if I can make something people will buy.
Read more βYou're building relationships with all of your customers, whether you know it or not. Setting up the right CRM for your product can help make those relationships stronger.
Read more βI migrated apisyouwonthate.com, a site with 20k+ monthly visits, from Gatsby to Next.js at the end of 2021. Let's talk about what I learned from that experience.
Read more βThis tutorial will teach you how to automatically add links to heading tags in your mdx posts on your Next.js site with a plugin called rehype-slug. This should work for most nextJS sites that use MDX for content, as well as many other JavaScript-based sites which use MDX.
Read more βThe article discusses the ESLint rule no-floating-promises which disallows promises without await. The rule is designed to prevent developers from accidentally forgetting to await promises, which can lead to unexpected behavior.
Read more βSince its release, teams around the world have been using dependabot to automate the process of keeping your project's dependencies up to date. In this article, I'll show you how you can run dependabot on the command line using dependabot-core.
Read more βPowerful AI tools like ChatGPT make it super easy to generate inaccurate and dangerous and inaccurate content. Relying heavily on AI to write can be messy.
Read more βIf you're running an Apple Silicon Mac (with an M1, M1 Pro, or M1 Max chip), you may be able to speed up VS Code massively with a quick update.
Read more βBuildspace offers free, online, cohort-based courses on building web3 blockchain apps. If you're interested in dipping your toe into the world of Ethereum apps, the blockchain, or NFTs - it's a great starting point.
Read more βFor years I did a weekly coding livestream of my React and Python work on Twitch every week, and I'm getting back into it again. This is what sticks out to me as the most valuable learnings from those experiences.
Read more βLet's take a look at the Nullish Coalescing operator (??) in JavaScript, which returns the right operand if the left is null or undefined.
Read more βIf you come across array.filter(Boolean) in JavaScript code, never fear! It's a handy bit of functional programming that cleans up arrays with null and undefined values in them.
Read more βHave you noticed that your favorite IDE has been slow to load lately? Try removing these before losing hope.
Read more βStop using centered text. It's bad for usability, accessibility, and eye scanning -- and nobody anywhere wants to read like that.
Read more βMy review of Working in Public: The Making and Maintenance of Open Source Software by Nadia Eghbal
Read more βIf you're dealing with Open Graph metadata for your site, and you can't figure out how to get your OG content to update after you make changes, this is your guide.
Read more βPut simply, gitignore.io is a tool that is so profoundly helpful that I've forgotten what life was like without it.
Read more βI added support for mdx to my site, and it's made life much bettter.
Read more βI fully switched my personal site from Google Analytics to Fathom - something that I had been considering for a while, and finally decided to go all in on.
Read more βOn my walk this morning, I found myself wondering what it's going to be like when things go back to normal.
Read more βThis post came from my work on Surviving Other People's APIs. I've been working on a chapter on Async - the content below came from that writing, but doesn't quite make sense in the context of the book. I didn't want to scrap it entirely, so it's found its way into a blog post. I'd love to know what you think!
Read more βMy guess is that if youβre reading this, youβre a newly remote worker, due to the rapid and terrifying expansion of the COVID19 Pandemic. Iβm not here share medical advice; if thatβs what youβre after, thereβs far better places to look.
Read more βIf you follow me across the various other social networks I use, you'll likely stumble across my passion for cycling. For the past 8 or so years, road cycling has been my primary form of exercise. I love cycling; it keeps me sane, and helps me live a healthier life, while seeing the world. If you haven't been on a bike recently, you should give it a shot - I can't recommend it enough.
Read more βSo, like all good things, the idea for this post comes from a tweet...
Read more βDependabot is an automation service that will automatically create PRs to keep your projects' dependencies up to date, and it is really powerful.
Read more βThis is an article about CSS and usability. The ch unit in CSS was a revelation for me, and I promise that if you don't know about it already, you're gonna love it.
Read more βThis is a follow-up to my first post on the upcoming Promise.allSettled() function, coming soon to a node application near you.
Read more βPart 2 in a series of posts on destructuring syntax for JavaScript and Node.
Read more βPromise.allSettled() is a new API coming to the JavaScript / ES6 standard which can help you more efficiently build node applications that make simultaneous asynchronous API calls
Read more βIf you're not careful, your node projects can start to fill all the spare disk space on your computer. This one weird trick (lol) can help avoid that.
Read more βLast week I posted about some stickers I designed and had put up for sale to benefit victims of the shooting in Christchurch, NZ. They sold out far, far more quickly than I ever would have guessed.
Read more βDestructuring syntax in es6 (or es2015, etc) JavaScript is a wonderfully useful bit of the language. It allows you to extract values from an Object and assign them to a new variable in one statement -- but it can be confusing to read.
Read more βUninstalling Postgres database software from a computer running MacOS isn't super straightforward - this is what I found helpful.
Read more βGet yourself some of these eggtastic stickers - gun violence is intolerable, and we need sensible gun reform. 100% of proceeds go to charity!
Read more βAn efficient workday is helped tremendously by having a handful of productivity boosters in your quiver. I use these extensions for Chrome to make my day a little nicer.
Read more βNo, really, it doesn't work that way. It will sound loads better if you stop talking into the top of your Blue Yeti mic. It's an easy mistake to make.
Read more βPrettier.js is a fantastic way to systemize and automate your project's code style.
Read more βI've got some strong opinions on things - I hope that's okay. Thankfully, this is not just another 'hello world' post
Read more β