Inertia.js in Rails: a new era of effortless integrationInertia.js in Rails: a new era of effortless integrationDecember 31, 2025RailsReactJavaScriptTailwind CSS
Devs in mind 2025: how to design interfaces for developer toolsDevs in mind 2025: how to design interfaces for developer toolsEditors’ choiceDesignDeveloper ProductsDeveloper CommunityDesign for devtools
Railing against time: tools and techniques that got us 5X faster testsRailing against time: tools and techniques that got us 5X faster testsEditors’ choiceCase StudyRubyRailsCI
AnyCable, Rails, and the pitfalls of LLM-streamingAnyCable, Rails, and the pitfalls of LLM-streamingDecember 18, 2025Real-timeAIOpen SourceReal-time featuresRailsHotwireWebSocket
Why your vibe-coded project needs a developerWhy your vibe-coded project needs a developerDecember 11, 2025DesignDXAIDesign for devtoolsVibe coding
How to make complex Chrome extensions: a zero gravity guideHow to make complex Chrome extensions: a zero gravity guideEditors’ choiceDeveloper ProductsSDKs and PluginsSDKs, extensions & pluginsJavaScriptTypeScriptReact
Join our email newsletterGet all the new posts delivered directly to your inbox. Unsubscribe anytime.Your emailSubscribeOr subscribe to a feed
Why Evil Martians hosted a Ruby conference in San FranciscoWhy Evil Martians hosted a Ruby conference in San FranciscoDecember 10, 2025Developer CommunityRuby
Don't just slap on a chatbot: building AI that works before you askDon't just slap on a chatbot: building AI that works before you askEditors’ choiceDesignAIDeveloper ProductsLLMsMLDeep Learning
Unparser: real life lessons migrating Ruby tools from Parser to PrismUnparser: real life lessons migrating Ruby tools from Parser to PrismNovember 25, 2025Open SourceDXRuby
Vibecoding tools can learn from design UX and win over everyoneVibecoding tools can learn from design UX and win over everyoneNovember 19, 2025DesignDXAIDesign for devtools
PostCSS creator shares how to make your open source popularPostCSS creator shares how to make your open source popularEditors’ choiceOpen SourceDeveloper Community
Payment form best coding practices that don't drop salesPayment form best coding practices that don't drop salesNovember 10, 2025Developer ProductsJavaScript
Why startups choose React (and when you shouldn't)Why startups choose React (and when you shouldn't)October 29, 2025Developer CommunityJavaScriptReactVue.js
Hey, AnyCable speaking! Needing help with a Twilio-OpenAI connection?Hey, AnyCable speaking! Needing help with a Twilio-OpenAI connection?Editors’ choiceAIRailsOpen SourceReal-timeAI integrationLLMsMLTwilio
Migrating Whop from PostgreSQL to PlanetScale MySQL with 0 downtimeMigrating Whop from PostgreSQL to PlanetScale MySQL with 0 downtimeOctober 28, 2025RailsPostgreSQL
Why we're excited about the SF Ruby conferenceWhy we're excited about the SF Ruby conferenceOctober 22, 2025Developer Community
5 best practices for preventing chaos in Tailwind CSS5 best practices for preventing chaos in Tailwind CSSEditors’ choiceTailwind CSSCSSJavaScript
Debug AI fast with this open source library to visualize agent tracesDebug AI fast with this open source library to visualize agent tracesOctober 15, 2025AIAI integration
How to add fast, client-side search to Astro static sitesHow to add fast, client-side search to Astro static sitesOctober 8, 2025Astro.js
Ruby on Whales: Dockerizing Ruby and Rails developmentRuby on Whales: Dockerizing Ruby and Rails developmentEditors’ choicePerformanceRailsDXPerformance & scalabilityRubyDockerPostgreSQL
Martian Summer: blog, talks, open source, and ready for SFRuby in NovMartian Summer: blog, talks, open source, and ready for SFRuby in NovOctober 7, 2025Developer Community
Contract shock therapy: the way to API-first documentation blissContract shock therapy: the way to API-first documentation blissOctober 1, 2025DXTypeScriptViteReact
Gemfile of dreams: the libraries we use to build Rails appsGemfile of dreams: the libraries we use to build Rails appsEditors’ choiceRailsPerformanceOpen SourcePerformance & scalabilityInfrastructureRubyPostgreSQLGraphQL
How to detect Safari and iOS versions with ease in 2025How to detect Safari and iOS versions with ease in 2025September 30, 2025iOSJavaScriptCSS
Flaky tests, be gone: long-lasting relief for chronic CI retry irritation!Flaky tests, be gone: long-lasting relief for chronic CI retry irritation!September 23, 2025RailsDXCIRubyJavaScript
What we learned from creating PostCSSWhat we learned from creating PostCSSEditors’ choiceOpen SourceA11yCSSJavaScript
OKLCH in CSS: why we moved from RGB and HSLOKLCH in CSS: why we moved from RGB and HSLSeptember 17, 2025Developer ProductsDesignDXDesign for devtoolsOKLCHCSSPostCSS
Baking with Rails at scale: recipes in Ruby, cookware from Go, C, and RustBaking with Rails at scale: recipes in Ruby, cookware from Go, C, and RustSeptember 15, 2025RailsGoRust
How to Favicon in 2025: Three files that fit most needsHow to Favicon in 2025: Three files that fit most needsFebruary 4, 2025CSS
PostCSS 8.0: Plugin migration guidePostCSS 8.0: Plugin migration guideSeptember 14, 2020PostCSSCSSJavaScript
Exploring Active Agent, or can we build AI features the Rails way?Exploring Active Agent, or can we build AI features the Rails way?September 10, 2025AIRailsOpen SourceAI integrationLLMs
We studied 100 dev tool landing pages—here’s what really works in 2025We studied 100 dev tool landing pages—here’s what really works in 2025July 8, 2025Developer ProductsDesignDesign engineering
The Whop chop: how we cut a Rails test suite and CI time in halfThe Whop chop: how we cut a Rails test suite and CI time in halfSeptember 3, 2025Developer CommunityRails
Circuit breakers and Ruby in 2025: don't break your launchCircuit breakers and Ruby in 2025: don't break your launchAugust 13, 2025Open SourceRuby
Exploring the OKLCH ecosystem and its toolsExploring the OKLCH ecosystem and its toolsMay 28, 2025Developer ProductsDesignDXDesign for devtoolsOKLCHCSS
API contracts and everything I wish I knew: a frontend survival guideAPI contracts and everything I wish I knew: a frontend survival guideJuly 23, 2025DXTypeScript
TestProf: a good doctor for slow Ruby testsTestProf: a good doctor for slow Ruby testsAugust 11, 2024PerformanceOpen SourceRailsPerformance & scalabilityRubyCI
Lefthook: knock your team’s code back into shapeLefthook: knock your team’s code back into shapeJuly 30, 2019PerformancePerformance & scalabilityCIGoJavaScript
Phone inputs and you: the designer's essential UI guidePhone inputs and you: the designer's essential UI guideAugust 3, 2022DesignDesign for devtools
How to quickly (and weightlessly) convert Chrome extensions to SafariHow to quickly (and weightlessly) convert Chrome extensions to SafariAugust 28, 2024Developer ProductsSDKs and PluginsSDKs, extensions & pluginsJavaScriptTypeScriptSwift
Simplicity, vanished?! Solving the mystery with Inertia.js + RailsSimplicity, vanished?! Solving the mystery with Inertia.js + RailsJuly 29, 2025RailsReact
Better dynamic themes in Tailwind with OKLCH color magicBetter dynamic themes in Tailwind with OKLCH color magicOctober 31, 2023DesignDXTailwind CSSOKLCHCSS
TestProf II: Factory therapy for your Ruby testsTestProf II: Factory therapy for your Ruby testsAugust 12, 2024PerformanceOpen SourceRailsPerformance & scalabilityRubyCI
imgproxy: Resize your images instantly and securelyimgproxy: Resize your images instantly and securelySeptember 26, 2017Developer ProductsGoDockerHeroku
How to make web videos way smaller in 2025 using the AV1 codecHow to make web videos way smaller in 2025 using the AV1 codecMarch 4, 2025Design for devtools
11 HTML best practices for login & sign-up forms11 HTML best practices for login & sign-up formsOctober 23, 2024Open SourceA11yCSSJavaScript
5 cool (and surprising) ways to configure Lefthook for automation joy5 cool (and surprising) ways to configure Lefthook for automation joyJanuary 18, 2024Open SourcePerformancePerformance & scalabilityGoRubyJavaScript
OK, OKLCH: a color picker made to help think perceptivelyOK, OKLCH: a color picker made to help think perceptivelyFebruary 7, 2023Developer ProductsDesignDXDesign for devtoolsOKLCHCSS
Soft deletion with PostgreSQL: but with logic on the database!Soft deletion with PostgreSQL: but with logic on the database!May 16, 2022PerformancePostgreSQLRailsRuby
Keeping Rails cool: the modern frontend toolkitKeeping Rails cool: the modern frontend toolkitDecember 10, 2024Open SourceRailsGo
ViewComponent in the Wild II: supercharging your componentsViewComponent in the Wild II: supercharging your componentsOctober 18, 2022RailsRubyCSS
Let there be docs! Generating an OpenAPI schema across the Rails stackLet there be docs! Generating an OpenAPI schema across the Rails stackApril 8, 2025RailsRuby
A taste of Go code generator magic: a quick guide to getting startedA taste of Go code generator magic: a quick guide to getting startedOctober 15, 2024Open SourcePerformanceDXGo
The art of Turbo Mount: Hotwire meets modern JS frameworksThe art of Turbo Mount: Hotwire meets modern JS frameworksJune 11, 2024RailsHotwireReactJavaScript
How to make next-level Figma plugins: auth, routing, storage, and moreHow to make next-level Figma plugins: auth, routing, storage, and moreAugust 22, 2023Developer ProductsDXSDKs and PluginsSDKs, extensions & pluginsFigmaJavaScriptTypeScript
Making desktop apps with revved-up potential: Rust + Tauri + sidecarMaking desktop apps with revved-up potential: Rust + Tauri + sidecarApril 22, 2025RustTypeScript
The Hotwire-Rails summit, or interactive multi-step forms at peak UXThe Hotwire-Rails summit, or interactive multi-step forms at peak UXJune 24, 2025RailsHotwireRubyJavaScript
Meet Yabeda: A Ruby instrumentation frameworkMeet Yabeda: A Ruby instrumentation frameworkOctober 22, 2018InfrastructureRubyRailsPrometheus
Woah, opacity! A full guide to this badass hero of efficient UI designWoah, opacity! A full guide to this badass hero of efficient UI designOctober 29, 2024DesignDXDesign for devtools
CLI UX best practices: 3 patterns for improving progress displaysCLI UX best practices: 3 patterns for improving progress displaysApril 15, 2024DesignDXDesign engineeringDesign for devtoolsLean Software DevelopmentGoRust
Let there be docs! A documentation-first approach to Rails API developmentLet there be docs! A documentation-first approach to Rails API developmentApril 9, 2024RailsRubyMicroservices
The future of full-stack Rails: Turbo Morph DriveThe future of full-stack Rails: Turbo Morph DriveOctober 16, 2023RailsHotwireRubyJavaScript
ViewComponent in the Wild I: building modern Rails frontendsViewComponent in the Wild I: building modern Rails frontendsOctober 12, 2022RailsRuby
System of a test: Proper browser testing in Ruby on RailsSystem of a test: Proper browser testing in Ruby on RailsJuly 14, 2020RailsRubyWebpackDocker
git push --force and how to deal with itgit push --force and how to deal with itJuly 30, 2024DXGitHeroku
RuboCoping with legacy: Bring your Ruby code up to StandardRuboCoping with legacy: Bring your Ruby code up to StandardMarch 28, 2023DXRubyRailsCI
Object Detection with Create ML: images and datasetObject Detection with Create ML: images and datasetFebruary 9, 2022AIAI integrationiOSML
Kamal: hot deployment tool to watch—or a total game changer?Kamal: hot deployment tool to watch—or a total game changer?April 2, 2024InfrastructureKamalKubernetesAWS
The 16 most active developer tool investors and VCs going into 2025The 16 most active developer tool investors and VCs going into 2025January 7, 2025Developer ProductsAI
TestProf III: guided and automated Ruby test profilingTestProf III: guided and automated Ruby test profilingAugust 13, 2024PerformanceOpen SourcePerformance & scalabilityRubyRailsCI
It deserved its own tome: Layered Design and the Extended Rails WayIt deserved its own tome: Layered Design and the Extended Rails WayAugust 29, 2023RailsDeveloper CommunityHotwireRuby
Ruby on Rails on WebAssembly: a guide to full-stack in‑browser actionRuby on Rails on WebAssembly: a guide to full-stack in‑browser actionFebruary 18, 2025RailsLocal-firstOpen SourceWasmRubyJavaScript
Object Detection with Create ML: training and demo appObject Detection with Create ML: training and demo appFebruary 17, 2022AIAI integrationiOSTLML
Designing Tegon: a signature vision for the AI-driven issue trackerDesigning Tegon: a signature vision for the AI-driven issue trackerSeptember 25, 2024Developer ProductsDesignAICase StudyDesign for devtoolsDesign engineeringLLMsMLDeep Learning
ViewComponent in the Wild III: TailwindCSS classes & HTML attributesViewComponent in the Wild III: TailwindCSS classes & HTML attributesJanuary 23, 2024RailsRubyCSS
Wrapping JSON-based ActiveRecord attributes with classesWrapping JSON-based ActiveRecord attributes with classesFebruary 26, 2019RailsRubyPostgreSQL
The Long Game: why Rails survived the hype cycle and what it means for your startupThe Long Game: why Rails survived the hype cycle and what it means for your startupAugust 18, 2025RailsDeveloper Community
Icon transcendence: customizing icons to complement fontsIcon transcendence: customizing icons to complement fontsMay 3, 2023DesignDesign for devtools
Variable fonts in real life: how to use and love themVariable fonts in real life: how to use and love themMarch 24, 2022DesignDesign for devtoolsFonts
How to GraphQL with Ruby, Rails, Active Record, and no N+1How to GraphQL with Ruby, Rails, Active Record, and no N+1November 9, 2020RailsRubyGraphQL
Redprints CFP: an open source CFP management app built with Rails + Inertia.jsRedprints CFP: an open source CFP management app built with Rails + Inertia.jsAugust 6, 2025Open SourceDeveloper CommunityRailsJavaScriptTailwind CSSVibe coding
Faster WebGL/Three.js 3D graphics with OffscreenCanvas and Web WorkersFaster WebGL/Three.js 3D graphics with OffscreenCanvas and Web WorkersApril 2, 2019PerformancePerformance & scalabilityWebGLJavaScript
Vite-lizing Rails: get live reload and hot replacement with Vite RubyVite-lizing Rails: get live reload and hot replacement with Vite RubyJune 28, 2022RailsDXViteWebpackRuby
Recapping the first Local‑First conference in 15 minutesRecapping the first Local‑First conference in 15 minutesJuly 8, 2024Local-firstDeveloper CommunityCRDTJavaScript
Try Astrograph: Your GraphQL lens for Stellar blockchainTry Astrograph: Your GraphQL lens for Stellar blockchainApril 9, 2019StellarBlockchainGraphQL
“Fair” multi-tenant prioritization of Sidekiq jobs—and our gem for it!“Fair” multi-tenant prioritization of Sidekiq jobs—and our gem for it!February 14, 2024RailsPerformanceRubyRedis
The scenic route: lessons building an IntelliJ IDEA plugin for LuauThe scenic route: lessons building an IntelliJ IDEA plugin for LuauAugust 26, 2025Developer ProductsSDKs, extensions & plugins
A slice of life: table partitioning in PostgreSQL databasesA slice of life: table partitioning in PostgreSQL databasesApril 12, 2022PerformanceRailsPerformance & scalabilityPostgreSQLRuby
Keep it together: 5 essential design patterns for dev tool UIsKeep it together: 5 essential design patterns for dev tool UIsMay 7, 2024DesignDesign for devtoolsA11y
Care beyond code: 7 best design practices for frontend developersCare beyond code: 7 best design practices for frontend developersNovember 28, 2023DesignCSSJavaScript
The lion's den: NestJS and authentication with AWS CognitoThe lion's den: NestJS and authentication with AWS CognitoJune 10, 2024TypeScriptNode.jsAWS
Asynchronous adventures: Aborting queries and mutations in react-apolloAsynchronous adventures: Aborting queries and mutations in react-apolloJuly 9, 2019ReactApolloGraphQL
Level up for UX: Design lessons from video gamesLevel up for UX: Design lessons from video gamesJune 28, 2018DesignDesign for devtools
Demo app design for Medplum, open source healthcare developer platformDemo app design for Medplum, open source healthcare developer platformMay 15, 2025Developer ProductsDesignCase StudyDesign for devtoolsDesign engineering
Fighting the Hydra of N+1 queriesFighting the Hydra of N+1 queriesMay 16, 2017PerformancePerformance & scalabilityRailsRubyPostgreSQL
Accessible design from the get-goAccessible design from the get-goJuly 26, 2021DesignDXDesign for devtoolsA11yFigmaSketch
Optimizing React: Virtual DOM explainedOptimizing React: Virtual DOM explainedMarch 28, 2018PerformancePerformance & scalabilityReactReduxJavaScript
First steps with ruby.wasm: or how we built Ruby Next PlaygroundFirst steps with ruby.wasm: or how we built Ruby Next PlaygroundFebruary 6, 2024Open SourceLocal-firstWasmRubyJavaScript
bolt.new from StackBlitz: how they surfed the AI wave—with no wipeoutsbolt.new from StackBlitz: how they surfed the AI wave—with no wipeoutsDecember 2, 2024Developer ProductsAIRailsDeveloper CommunityDeveloper MarketingCase Study
Figma plugin API: diving into advanced algorithms & data structuresFigma plugin API: diving into advanced algorithms & data structuresNovember 13, 2023SDKs and PluginsDXSDKs, extensions & pluginsFigmaTypeScriptReact
One row, many threads: How to avoid database duplicates in Rails applicationsOne row, many threads: How to avoid database duplicates in Rails applicationsAugust 18, 2021RailsRubyPostgreSQL
Cool frontend arts of local-first: storage, sync, conflictsCool frontend arts of local-first: storage, sync, conflictsMarch 15, 2023DesignDeveloper ProductsLocal-firstDesign for devtoolsCRDTJavaScriptLean Software Development
Real-time stress: AnyCable, k6, WebSockets, and YabedaReal-time stress: AnyCable, k6, WebSockets, and YabedaSeptember 7, 2021PerformanceReal-timeRailsRubyPrometheus
Evil Front Part 1: Modern Frontend in RailsEvil Front Part 1: Modern Frontend in RailsDecember 5, 2017RailsWebpackPostCSS
Climbing Steep hills, or adopting Ruby 3 types with RBSClimbing Steep hills, or adopting Ruby 3 types with RBSDecember 10, 2020DXRuby