Blog tags:
ThoughtsRedesignCareerSide ProjectsMetaCommunicationFamilyThanksSocial MediaStartupsIdeasRecapLooking AheadTechnologyCompetitionProjectsTwitterDevelopmentCSSWebGoogleRoundupCollectionAIWeb DevelopmentCalendarJavaScriptNext.jsReactComponentsBurnoutTravelPhotosLaunchLogArticleGraphQLSuspenseTestingDesign TokensDesign SystemsBendBack BayCollaborationCode ReviewDevelopment PracticesNoteMeetingsTeamsSlackProduct DevelopmentResolutionsThemeHackingSnippetsYarnMonoreposNodeWorkObsidianDropboxReact Testing LibraryGitTipWritingProductivityGuidesRantTools for ThoughtmicropoststubReviewAndroidiOSiPhoneNote TakingNotionDollarTailwindAdviceRandomDenoBirthdayGoalsOrganizationsGoLearningTypeScriptHot TakeChatGPTProject Deep DiveCloudflareZedCSS-in-JSObservabilityOSSVercelwebpackswcRefactorsAPIsToolsNotesTask ManagementProductGhosttyReact Server ComponentsServer ActionsFormsBlueskyRecommendationsTalksNode.jsCultureTeam
Thoughts:
- A New Look
- Blogging vs Working
- 10,000 Characters
- Redesign
- Pull Quotes
- Redesign v5
- My New Website
- Redesign v6
- Starting Fresh
- Learning
- The Squeeze
- Write it down
- Leaving Wayfair
Redesign:
Career:
Side Projects:
- A New Resume
- Weekend Projects
- Building a Live Editor
- Start Small, Accept Change
- The Rabbit Hole
- NextJS Analytics with Airtable
- Building a Web Sandbox: Part 1
- Simple Props
Meta:
Communication:
Family:
Thanks:
Social Media:
Startups:
Ideas:
Recap:
Looking Ahead:
Technology:
Competition:
Projects:
- My First Project of 2016
- Building in 2016
- Dollar: Devlog 1
- Dollar: Devlog 2
- Project Deep Dive: Microfibre
- Project Deep Dive: Tails
- Building Better Beacon
- The Library-Docs Monorepo Template
- Hohoro
Twitter:
Development:
- Clientside
- Attribute Selectors
- The Great CSS Debate
- Rebuilding Mustache
- Taking a Break
- Building a Live Editor
- Hooks Tips Ep. 1 - The Dependency Array
- Hooks Tips Ep. 2 - Migrating Instance Variables
- yw
- useConsole
- Writing Node Scripts
- Array Chunking
- React Testing Library: Checkboxes and events
- Updating Forked Repos
- Build Your Developer Toolbox
- My Two Favorite React Tricks
- My Opinionated Next.js Setup
- Upgrade Guides
- Moving to PNPM
- On Writing Tests
- Yarn Berry Gitignore Settings
- Dollar: Devlog 1
- Navigating Monorepos with Ease
- Dollar: Devlog 2
- Setting up Shiki on Next.js
- 10x Engineers
- Fractal Refactoring
- Deno
- Principles for Automated Testing
- Learning Go
- Finding React Artifacts
- Using Marquee with React and TypeScript
- Go To Git Utils
- AI Driven Development
- Pair Programming
- Stop Snacking
- Churn Anxiety
- Building Better Beacon
- The Library-Docs Monorepo Template
- Corporate Sponsored OSS
- Custom Favicon Recipes
- React Error Boundaries: Revisited
- Configuring Cloudflare Domains with Vercel
- My Current AI Stack
- Funport: True Dynamic Imports in webpack
- Hohoro
- Using Feature Toggles to De-risk Refactors
- Tip: Request and Response Headers
- There Is No Standard Markdown
- My Current Dev Setup
- Git Notes as a Tool for Thought
- Dogfooding
- More Thoughts on Dogfooding
- Offload Complexity, Don't Offload Learning
- Building a Custom Ghostty Theme
- Bluesky Tips and Tools
- Request for a (minimal) RSC Framework
- Recommended Tech Talks
- A Quick Look at Import Maps
CSS:
Web:
Google:
Roundup:
Collection:
AI:
Web Development:
- Rebuilding Mustache
- Calendar
- JavaScript Weirdness
- Redesign v6
- CSS in JS
- Understanding React 16.3 Updates
- Managing Complex UI Component State
- Taking a Break
- You've Launched, Now What?
- Suspense Plus GraphQL
- Testing Software
- React Error Boundaries
- Start Small, Accept Change
- useReducer, don't useState
- Snapshot Testing
- Maintenance Costs
- Simpler and Smaller
- Deploying Automatically using GitHub Actions
- Theme First UI Development
- A Note On Anti-Patterns
- My Updated Next.js Setup
- Navigating Monorepos with Ease
- Setting up Shiki on Next.js
- Setting up Next.js with Tailwind
- My Thoughts on Tailwind
- Deno
- Learning Go
- Finding React Artifacts
- Using Marquee with React and TypeScript
- Go To Git Utils
- AI Driven Development
- Pair Programming
- Project Deep Dive: Microfibre
- On Adopting CSS-in-JS
- Consistent Local Ports with Wrangler
- Type Safe process.env
- Service Monitors and Observability
- Churn Anxiety
- Project Deep Dive: Tails
- Building Better Beacon
- The Library-Docs Monorepo Template
- Corporate Sponsored OSS
- Custom Favicon Recipes
- Hohoro
- Using Feature Toggles to De-risk Refactors
- Tip: Request and Response Headers
- Abstract Your API
- There Is No Standard Markdown
- My Current Dev Setup
- A Better useSSR Implementation
- Don't Break the Implicit Prop Contract
- Next.js with Deno v2
- Monorepo Tips and Tricks
- TSLite
- The Bookkeeping Pattern
- Bluesky Tips and Tools
- Request for a (minimal) RSC Framework
- Recommended Tech Talks
- A Quick Look at Import Maps
Calendar:
JavaScript:
- JavaScript Weirdness
- CSS in JS
- Understanding React 16.3 Updates
- useConsole
- Array Chunking
- TSLite
- The Bookkeeping Pattern
Next.js:
- Redesign v6
- My Opinionated Next.js Setup
- My Updated Next.js Setup
- Setting up Shiki on Next.js
- Setting up Next.js with Tailwind
- Project Deep Dive: Microfibre
- Project Deep Dive: Tails
- Funport: True Dynamic Imports in webpack
- Using Feature Toggles to De-risk Refactors
- Next.js with Deno v2
- The Bookkeeping Pattern
React:
- Understanding React 16.3 Updates
- Managing Complex UI Component State
- Suspense Plus GraphQL
- React Error Boundaries
- Hooks Tips Ep. 1 - The Dependency Array
- Hooks Tips Ep. 2 - Migrating Instance Variables
- useReducer, don't useState
- Theme First UI Development
- Stateful Providers
- useConsole
- React Testing Library: Checkboxes and events
- My Two Favorite React Tricks
- Using Marquee with React and TypeScript
- React Error Boundaries: Revisited
- A Better useSSR Implementation
- Don't Break the Implicit Prop Contract
- Request for a (minimal) RSC Framework
Components:
Burnout:
Travel:
Photos:
Launch:
Log:
Article:
GraphQL:
Suspense:
Testing:
Design Tokens:
Design Systems:
Bend:
Back Bay:
Collaboration:
Code Review:
Development Practices:
Note:
Meetings:
Teams:
Slack:
Product Development:
Resolutions:
Theme:
Hacking:
Snippets:
Yarn:
Monorepos:
Node:
Work:
Obsidian:
- Roll your own Obsidian sync
- Switching back to Notion
- Switching back to Obsidian
- Simple Obsidian Task Management
- My Updated Obsidian Task Management
Dropbox:
React Testing Library:
Git:
Tip:
- Updating Forked Repos
- Fixing Zed's language server
- Exporting Custom Slack Emoji
- Tip: Request and Response Headers
- A Better useSSR Implementation
- Don't Break the Implicit Prop Contract
- The Bookkeeping Pattern
- Bluesky Tips and Tools
Writing:
Productivity:
Guides:
- Mac Setup Guide
- Exporting Custom Slack Emoji
- React Error Boundaries: Revisited
- Configuring Cloudflare Domains with Vercel
Rant:
Tools for Thought:
micropost:
- Delete it
- Video Games
- Fast Feedback Systems
- Deno
- Finding React Artifacts
- Jabs and Fluff: On CTO Office Hours
- No Process is Invisible Process
- Stop Snacking
- Being Unopinionated
- Consistent Local Ports with Wrangler
- Type Safe process.env
- Service Monitors and Observability
stub:
Review:
Android:
iOS:
iPhone:
Note Taking:
- Switching back to Notion
- On Note Taking
- Switching back to Obsidian
- Simple Obsidian Task Management
- My Updated Obsidian Task Management
Notion:
Dollar:
Tailwind:
Advice:
Random:
Deno:
Birthday:
Goals:
Organizations:
Go:
Learning:
TypeScript:
Hot Take:
ChatGPT:
Project Deep Dive:
Cloudflare:
- Project Deep Dive: Microfibre
- Consistent Local Ports with Wrangler
- Project Deep Dive: Tails
- Configuring Cloudflare Domains with Vercel