Feed
All content on seanmcp.com
- Board GamesSpeed Catan
- Board GamesSanders of Catan
- ArticlesDefaults 2026
- ArticlesAI use case: Asking questions of large files
- Adventure GamesI tried mapping and didn't like it
- Adventure GamesCairn Advancement Hack
- WebLost Stranger Things finale mid-credits scene
- Adventure GamesRandom Table of German Names
- ArticlesInstall curl with apt (and not snap)
- Adventure GamesGM Mistake #2: Blocking low-stakes exploration
- ArticlesFour perspectives on AI
- ArticlesAxe DevTools doesn't flag multiple h1 elements on a page
- ArticlesWriting code was never the bottleneck in software engineering
- Adventure GamesShadowdark characters are fragile
- Adventure GamesCairn 1999
- WebDog Poo
- ArticlesColocate functionally-related code
- ArticlesMaccy is a great clipboard manager for Mac
- Adventure GamesHazard table
- Adventure Games5 tips for designing better adventures
- LocalKellen Lovejoy presumptive winner in primary election for Wilkinsburg Council Ward 1
- Adventure GamesThe Copper Caves
- Adventure GamesGM Mistakes #1: Balancing Realism and Playability
- Adventure GamesRethinking wolves
- Adventure GamesSoloDark Together: Session 1
- ArticlesMy on-again-off-again relationship with AI assistants
- LocalWhat to do when you find a dead deer on the street in Allegheny County?
- ArticlesIntroducing Speed Catan
- Adventure GamesRandom Encounters
- ArticlesZed still isn't ready
- ArticlesRewriting in Eleventy (again)
- WebThe only line from Shrek with a Canadian accent
- ArticlesMc-Pher-son
- ArticlesBalance bikes are just better
- ArticlesDeleting my GPTs
- ArticlesSmile and wave
- ArticlesPittsburgh TechFest 2024
- ArticlesSeventy7 Ventures feigns credibility with fake "Best of British Business" award
- Adventure GamesSpellcasting Chaos Table
- ArticlesBypass "Error: There are no prompts" in promptfoo
- ArticlesUse state callbacks in React
- ArticlesVIVO sit/stand desk
- ArticlesSimplify event delegation with the Element.closest method
- ArticlesAlign content in Markdown tables
- Adventure GamesCairn Starter-package Table
- Adventure GamesFive-room Dungeons
- ArticlesSolo-playing Adventure Games with AI
- ArticlesCSS nesting is (almost) ready
- ArticlesLooking over the fence at Eleventy
- ResourcesGetting started with Eleventy
- ArticlesChatGPT 4o isn't a good researcher yet
- ArticlesAstro and release velocity
- ArticlesRender and effect call order in React
- ArticlesTweaking garden details
- Adventure GamesCairn RPG
- ResourcesDebugging
- ArticlesManage your photo archive
- ArticlesSite update May 2024
- ArticlesMeasuring and cutting
- ArticlesA Few Things #12
- ArticlesA Few Things #11
- ArticlesA Few Things #10
- ArticlesCreate a custom search for a static site
- ArticlesFix missing Astro files on GitHub pages
- ArticlesCreate a useIsOnline React hook
- ArticlesFix static file endpoints after Astro v4 upgrade
- ArticlesUpgrading from Astro v2 to v4
- ArticlesA Few Things #9
- ArticlesOn articles and blogs
- ArticlesA Few Things #8
- ArticlesWhy Microsoft Edge?
- ArticlesSwitching from Ubuntu to Linux Mint
- ArticlesA Few Things #7
- ArticlesA Few Things #6
- ArticlesRunning Ollama without a GPU
- ArticlesUse Ollama with the official Python library
- ArticlesA Few Things #5
- ArticlesGet started prompt engineering with local LLMs
- ArticlesAdding a components page
- ArticlesMaking a video game with my kids
- ArticlesA Few Things #4
- ResourcesPython Reference
- ArticlesA Few Things #3
- ArticlesAdobe has the worst captcha
- ArticlesA Few Things #2
- ArticlesReceiving cold-emails from GitHub stars
- ArticlesA Few Things #1
- ArticlesDid OpenAI's Web Browser GPT leak its prompt?
- ArticlesMigrating from Google Domains to Porkbun was...
- ArticlesNormalizing data is a good idea
- ArticlesHow I'm using AI in November 2023
- ResourcesFonts
- ArticlesSli.dev review
- ArticlesIs it better to have one large file or multiple small files with GPTs?
- ArticlesWhat is the file limit for GTPs?
- ArticlesHow I'm using AI in October 2023
- ArticlesGPTs read text files better than markdown
- ArticlesThoughts on Web Speech API
- ArticlesDeclarative code and cognitive load
- ArticlesAttempting #divtober 2023
- ArticlesHow I'm using AI in August & September 2023
- ArticlesSee what object properties are accessed in JavaScript
- ArticlesRemove duplicates from an array in JavaScript
- ArticlesOff to Kindergarten
- Articles1000 commits
- ArticlesHow I'm using AI in July 2023
- ArticlesTimeboxing types
- ArticlesCSS columns are neat
- ArticlesQuality requires iteration
- ArticlesA workable emoji picker on Ubuntu
- ResourcesWriting Prompts for Programmers
- ArticlesLosing steam
- ArticlesReviewing "Go By Example"
- ArticlesHow I'm Using AI in June 2023
- ArticlesA quick comparison of JavaScript and Go executables
- ResourcesPodcasts
- ArticlesI have never reviewed a podcast
- ArticlesCompairing Objects, Maps, and WeakMaps for lookup tables in JavaScript
- ArticlesWeb-browser Accessibility Tools
- ArticlesLinux Update in 2023
- ArticlesHow I'm using AI in May 2023
- ArticlesDeclaring variables in Go
- ArticlesWhat is nullish in JavaScript?
- ArticlesQA questions for everyone to ask
- ArticlesLearning Go
- ArticlesSet up Decap CMS
- ArticlesZed is a rocket-powered skateboard
- ArticlesFix failed Fastify deploy on Render
- ArticlesFind and replace with Regex groups
- ArticlesFix SVG CSS animation issue in Safari
- ArticlesListen for class change in JavaScript
- ArticlesReviewing my Netlify Analytics
- ArticlesCreate Axios-style articles with CSS
- ArticlesCSS :empty pseudo class
- ArticlesFix trailing whitespace in Astro components
- ArticlesFarewell Create React App
- ArticlesStarting an RSS Club
- ArticlesOn closings
- ArticlesHow long should it take to write an article?
- ArticlesMy writing process in February 2023
- ArticlesLearning about Smart Brevity for writing
- ArticlesValid JavaScript variable names
- ArticlesBurrito emoji
- ArticlesMigrating to IndieWeb.social
- ArticlesPublishing a Qwik component
- ArticlesFix Astro dev server hanging with new collections API
- ArticlesSite improvements in 2023
- ArticlesBack from time off
- ResourcesVS Code
- ArticlesBe careful parsing formatted numbers in JavaScript
- ArticlesNew command palette
- ArticlesFix "package esbuild-linux-64 could not be found" error on Netlify
- ArticlesAdding images to articles (again)
- ArticlesPortable custom search engines
- ArticlesA first look at Static CMS with Astro
- ArticlesAstro components do not merge HTML attributes
- ArticlesRun Netlify CMS and your dev server in one command
- ArticlesFix Netlify Dev's 'Multiple possible start commands found' issue
- ArticlesAstro components for Netlify features
- ArticlesCreate a "Dave Rupert"-inspired activity graph
- ArticlesUse your domain on Mastodon with Astro
- ArticlesThoughts on Steve Job on consulting
- ArticlesAre command bars the future?
- ArticlesNode.js is great for scripting
- ArticlesThere is no multi-tasking on the Raspberry Pi
- ArticlesFinding a Linux distro and software that work
- ArticlesGiving Linux another try
- ResourcesBrowser extensions
- ArticlesAwesome browser extensions
- ArticlesUsing dynamic routes to organize blog posts in Astro
- ArticlesRebuilding with Astro
- ResourcesJest
- ArticlesJest tips & tricks
- ArticlesSolid VS Code extensions
- ArticlesHow to use StackBlitz with Firefox
- ArticlesHow to replace Math.random with crypto in JavaScript
- ArticlesStarring content
- ArticlesUse multiple Chrome Profiles when debugging
- ArticlesWhen to use React's memo HOC
- ArticlesCalculate the sum of everything up to a given number
- ArticlesEnglish words by consonant-vowel pattern
- ArticlesMusic to code to
- ResourcesCoding Music
- ArticlesAdd a custom emulated device in Chrome
- ArticlesUpgrading an Eleventy site to 1.0.0
- ArticlesMake a web component
- ArticlesPrevent Chrome from adjusting audio input levels on Mac
- ResourcesSlack Emojis
- ArticlesMy best Slack emojis
- ArticlesHelpful online tools for diagramming
- ArticlesWhat is a build.gradle file?
- ArticlesThree new games on Toollama
- ResourcesReact Native
- ArticlesReact Native Glossary
- ArticlesWhat happened to @react-native-community packages?
- ArticlesFind an iOS simulator identifier
- ArticlesUsing BEM names in React Native
- ArticlesReflecting on a new role
- ArticlesWhat is Hermes in React Native?
- ArticlesWhat is the song from Boston Dynamic's Spot Launch video?
- ArticlesAdd a YouTube-embedder shortcode to your Eleventy site
- ArticlesGet innerHTML of Enzyme wrapper
- ArticlesUse remark to covert markdown into HTML
- ArticlesCount class methods in JavaScript
- ArticlesA modest redesign for 2021
- ResourcesLatin
- ArticlesLatin phrases to know
- ArticlesHandy git commands
- ResourcesGit
- ArticlesRead URL search parameters with JavaScript
- ArticlesFix 'downloadable font: rejected by sanitizer' error in Firefox
- ArticlesFix Netlify CMS YAML error 'Implicit map keys need to be on a single line'
- ArticlesCOVID-19 journal
- ArticlesCopy the last git commit hash on macOS
- ArticlesAdd Heroicons to an Eleventy site
- ArticlesCreate a URL shortener with Netlify
- ArticlesSet innerHTML of an element in Svelte
- ResourcesBuilding browser extensions
- ArticlesLet's stop skinning cats
- ArticlesSearch all files for two strings
- ArticlesSetup Netlify CMS with Eleventy
- ArticlesFix "Error: Could not resolve pagination key in template data" in Eleventy
- ArticlesGeddes' Guide to Crafting
- ArticlesSend data to the window with Eleventy
- ArticlesCheckout the previous git branch
- ArticlesMake all properties required in TypeScript
- ArticlesAdd text to the beginning of every file
- ArticlesSass converts hsla to hex incorrectly
- ArticlesChange extensions of all files in a directory
- ArticlesIncrease the playback speed on any audio or video online
- ArticlesStandardize character width with CSS
- ArticlesSee all package versions in npm cli
- ArticlesTypeScript without TypeScript
- ArticlesEmulate iPhone & iPad in Safari
- ArticlesGet started with Preact
- ArticlesMake a POST request with fetch
- ArticlesWhy you shouldn't mutate parameters
- ArticlesRemove an item at a given index in JavaScript
- ArticlesTab focus not working in Safari?
- ArticlesDon't remove default focus styles, enhance them
- ArticlesThe Economics of Software Development, Part III
- ArticlesFix 'EMFILE: too many open files' error in Jest
- ArticlesUpdated TypeScript mega-course on Egghead.io
- ArticlesThe Economics of Software Development, Part II
- ArticlesAccess the home directory in Deno
- ArticlesThe Economics of Software Development, Part I
- ArticlesManage analysis paralysis while programming
- ArticlesBefore You Debug
- ArticlesBefore Debugging
- ArticlesIntro to "The Economics of Software Development"
- ArticlesNodemon for Deno
- ArticlesAdding images to my articles
- ArticlesParse argument aliases in Deno
- ArticlesAwait multiple promises in JavaScript
- ArticlesTypeScript mega-course on Egghead.io
- ArticlesSix video update
- ArticlesRead a json file in Deno
- ArticlesRead a json file in Node.js
- ArticlesPublishing my first YouTube video
- ArticlesHow to get the browser and version in JavaScript
- ArticlesLogging with Eleventy and Nunjucks
- ArticlesStore readable data
- ArticlesMagnoliaJS 2020 conference notes
- ArticlesHow to open the Dev Tools
- ArticlesTools for custom Slack emojis
- ArticlesLaws I Love
- ArticlesProgramming reads
- ArticlesGreat programming reads
- ArticlesFree to grow
- ArticlesHow to check npm scripts in current directory
- ArticlesWhat to include in every node module
- ArticlesHow to remove duplicates from an object array?
- ArticlesWrite a draft script for your SSG blog
- ArticlesA new Twitter handle
- ArticlesWhat default parameters do (and don't do)
- ArticlesReviewing 2019 goals
- Articles2019 into 2020
- ArticlesThe fastest way to look for object properties
- Articles"Stop Teaching Code" in JavaScript
- Articles5 Lessons from 10k open-source downloads
- ArticlesShould I snapshot my UI components?
- ArticlesLessons Learned at Abstractions 2019
- ArticlesEdit a previous commit message
- ArticlesArguments or parameters?
- ArticlesReasons to use prop-types
- ArticlesHow to pronounce my name
- ArticlesAdd event listener for class change
- ArticlesWhy I switched from Gatsby to Eleventy
- ArticlesStoring data in state vs. class variable
- ArticlesFilter out premium Medium articles
- ArticlesAdding accessibility checks to your React app
- ArticlesThree reasons to learn Python
- ArticlesJS Basics: Generate a random number
- ArticlesJS Basics: Ternary Operator
- ArticlesConvert class components to functions with React Hooks
- ArticlesAccessibility Wednesday
- Articles2018 into 2019
- ArticlesWhy a blog?
- ArticlesHow to create a render prop component