Don’t get burned, make your Stripe MRR boring and correctDon’t get burned, make your Stripe MRR boring and correctOctober 14, 2026Blog PostDeveloper ProductsProduct developmentRailsRuby
Don't bet on SELECT's order: shuffle your rows and see what foldsDon't bet on SELECT's order: shuffle your rows and see what foldsOctober 7, 2026Blog PostDXRailsPostgreSQLRubyPython
SF Ruby Conference: regular ticket prices end September 30SF Ruby Conference: regular ticket prices end September 30September 30, 2026Blog PostDeveloper CommunityRailsAI
AI makes design system guardrails mandatory; this framework delivers themAI makes design system guardrails mandatory; this framework delivers themSeptember 23, 2026SKILL availableBlog PostAIDXAgentic development
Rails Hyperdrive: supercharged agentic development for RailsRails Hyperdrive: supercharged agentic development for RailsSeptember 15, 2026SKILL availableBlog PostOpen SourceRailsAISDKs, extensions & pluginsRuby on Rails
The Golden Switch, or migrating from Gatsby to Astro in under 9¾ daysThe Golden Switch, or migrating from Gatsby to Astro in under 9¾ daysSeptember 8, 2026Blog PostDXAIFrontend & real-timeJavaScriptTypeScriptReact
10 anti-AI slop moves for frontend projects going faster than humans can review10 anti-AI slop moves for frontend projects going faster than humans can reviewSeptember 1, 2026Blog PostDXAIFrontend & real-timeProduct developmentTypeScriptReactAgentic development
Why engineers should come to the SF Ruby Conference in 2026Why engineers should come to the SF Ruby Conference in 2026August 26, 2026Blog PostDeveloper CommunityRailsAIRubyLLMs
Access control for AI agents on Rails: gating SQL with Action PolicyAccess control for AI agents on Rails: gating SQL with Action PolicyAugust 25, 2026Blog PostAIRailsOpen SourceRubyLLMs
Get in, human: cut Rails boot time with require-profiler and this guideGet in, human: cut Rails boot time with require-profiler and this guideAugust 19, 2026SKILL availableBlog PostRailsDXPerformanceRuby
Ship agent skills like packages: discovery index, digests, and install sourcesShip agent skills like packages: discovery index, digests, and install sourcesAugust 12, 2026SKILL availableBlog PostAIDXSDKs, extensions & pluginsFrontend & real-timeLLMsJamstack
Fair by design: orchestrating background jobs in RubyFair by design: orchestrating background jobs in RubyAugust 11, 2026Blog PostRailsPerformanceRuby on RailsProduct developmentRubySidekiqRedis
5 best practices for preventing chaos in Tailwind CSS5 best practices for preventing chaos in Tailwind CSSAugust 5, 2026SKILL availableBlog PostFrontend & real-timeTailwind CSSCSSJavaScript
+14% activated users for AppSignal: designing a new homepage in code+14% activated users for AppSignal: designing a new homepage in codeAugust 4, 2026Blog PostCase StudyDesignDeveloper ProductsDesign for devtoolsProduct developmentAgentic development
The secure way to release an npm package in 2026The secure way to release an npm package in 2026July 28, 2026SKILL availableBlog PostOpen SourceDeveloper CommunityDXFrontend & real-timeJavaScript
Which AI actually reads your site? Two months of LLM traffic, measuredWhich AI actually reads your site? Two months of LLM traffic, measuredJuly 21, 2026SKILL availableBlog PostAIDXSDKs, extensions & pluginsFrontend & real-timeLLMsJamstack
The joy of Inertia Rails: painting your own with 50 happy little linesThe joy of Inertia Rails: painting your own with 50 happy little linesJuly 14, 2026SKILLS availableBlog PostRailsOpen SourceProduct developmentRuby on RailsReactJavaScript
Storybook Workbench: audit vibe-coded UIs and find hidden bugs in hoursStorybook Workbench: audit vibe-coded UIs and find hidden bugs in hoursJuly 8, 2026SKILLS availableBlog PostAIDesignDXDesign for devtoolsSDKs, extensions & pluginsAgentic development
AI vs. human illustrators? AI + human illustrators!AI vs. human illustrators? AI + human illustrators!July 1, 2026Blog PostAIDesignDeveloper CommunityDesign for devtools
Most MCP servers don't need to exist. Your case might be an exception.Most MCP servers don't need to exist. Your case might be an exception.June 30, 2026Blog PostAIDXLLMs
Choose your fighter: benchmarking 5 WebSocket servers for Node.jsChoose your fighter: benchmarking 5 WebSocket servers for Node.jsJune 24, 2026Blog PostPerformanceReal-timeOpen SourceDB optimizationFrontend & real-timeNode.jsWebSocket
Building a design system specced for engineers and agentsBuilding a design system specced for engineers and agentsJune 17, 2026Blog PostAIDXDesignDesign for devtoolsUI coding harnessFigmaLLMs
2 Martians, greenfield to MVP in 4 weeks: agentic coding on Rails2 Martians, greenfield to MVP in 4 weeks: agentic coding on RailsJune 9, 2026SKILLS availableBlog PostCase StudyDeveloper ProductsProduct developmentGo-to-marketGoogle Analytics
Stop writing rules in AGENTS.md: use agent hooks and nano-staged insteadStop writing rules in AGENTS.md: use agent hooks and nano-staged insteadMay 26, 2026Blog PostAIDXOpen SourceSDKs, extensions & pluginsLLMs
AI-assisted engineers are burning out, is this fine?AI-assisted engineers are burning out, is this fine?May 19, 2026Blog PostAIDeveloper Community
600+ million people write right-to-left: 2 fixes your app needs600+ million people write right-to-left: 2 fixes your app needsMay 18, 2026Blog PostDeveloper ProductsFrontend & real-timeNext.jsCSSJavaScript
From React to native web with nanotags: a migration that saved 100 KBFrom React to native web with nanotags: a migration that saved 100 KBMay 6, 2026Blog PostPerformanceOpen SourceFrontend & real-timeJavaScriptTypeScriptAstro.js
From 0 signal to 128 cold signups: product validation on a $2K budgetFrom 0 signal to 128 cold signups: product validation on a $2K budgetMay 5, 2026Blog PostCase StudyDeveloper ProductsProduct developmentGo-to-marketGoogle Analytics
3 rules for getting AI agents to find, use—and not exploit—your devtool3 rules for getting AI agents to find, use—and not exploit—your devtoolApril 21, 2026Blog PostAIDeveloper Community
Making your site visible to LLMs: 6 techniques that work, 8 that don'tMaking your site visible to LLMs: 6 techniques that work, 8 that don'tApril 15, 2026SKILL availableBlog PostAIDXSDKs, extensions & pluginsFrontend & real-timeLLMsJamstack
Now you see it: Vite on Rails without the proxyNow you see it: Vite on Rails without the proxyApril 14, 2026Blog PostRailsDXOpen SourceProduct developmentRuby on RailsViteJavaScriptReact
Gemfile of dreams: the libraries we use to build Rails appsGemfile of dreams: the libraries we use to build Rails appsApril 10, 2026SKILL availableBlog PostRailsPerformanceOpen SourceRuby on RailsProduct developmentRubyPostgreSQLGraphQL
Migrating an event pipeline from NATS to Kafka with zero downtimeMigrating an event pipeline from NATS to Kafka with zero downtimeApril 8, 2026Blog PostCase StudyDXInfrastructureProduct developmentRuby on Rails
TestProf Digest 2026.4: surprising finds from 30k specsTestProf Digest 2026.4: surprising finds from 30k specsApril 6, 2026Blog PostPerformanceRailsOpen SourceRuby on RailsDB optimization
We analyzed 1,140 devtools funding rounds—here's who's writing checks and whyWe analyzed 1,140 devtools funding rounds—here's who's writing checks and whyApril 1, 2026Blog PostDeveloper Community
OpenAPI + NestJS: type-safe controllers from the contractOpenAPI + NestJS: type-safe controllers from the contractMarch 30, 2026Blog PostDXProduct developmentTypeScriptNode.js
Tutorialkit.rb: interactive Ruby tutorials entirely in the browserTutorialkit.rb: interactive Ruby tutorials entirely in the browserMarch 24, 2026Blog PostOpen SourceRailsLocal-firstDXProduct developmentRuby on RailsWasmRubyJavaScript
Web slides are web apps: live interactivity for Reveal.js and SlidevWeb slides are web apps: live interactivity for Reveal.js and SlidevMarch 17, 2026Blog PostOpen SourceReal-timeDXWebSocketJavaScript
Why devtools startups hire Evil MartiansWhy devtools startups hire Evil MartiansMarch 11, 2026SKILLS availableBlog PostCase StudyDeveloper Community
OpenAPI + Fastify: let the contract build your serverOpenAPI + Fastify: let the contract build your serverMarch 10, 2026Blog PostDXProduct developmentTypeScriptNode.js
The Flipper gem is amazing, here's how we extended it the Martian wayThe Flipper gem is amazing, here's how we extended it the Martian wayMarch 3, 2026Blog PostRailsRuby on RailsRuby
Solving the Nebraska problem with the Open Source EndowmentSolving the Nebraska problem with the Open Source EndowmentFebruary 26, 2026Blog PostDeveloper ProductsOpen SourceDeveloper CommunityCase Study
Life's too short to hand-write API types: OpenAPI-driven ReactLife's too short to hand-write API types: OpenAPI-driven ReactFebruary 25, 2026Blog PostProduct developmentFrontend & real-timeReactTypeScript
Ruby on Whales: Dockerizing Ruby and Rails developmentRuby on Whales: Dockerizing Ruby and Rails developmentFebruary 23, 2026Blog PostPerformanceRailsDXRuby on RailsProduct developmentRubyDockerPostgreSQL
Writing custom RuboCop rules in 2026Writing custom RuboCop rules in 2026February 18, 2026Blog PostDXRuby
PostCSS creator shares how to make your open source popularPostCSS creator shares how to make your open source popularFebruary 17, 2026SKILL availableBlog PostOpen SourceDeveloper Community
The 4 most common security risks when vibe coding your appThe 4 most common security risks when vibe coding your appFebruary 11, 2026Blog PostAIFrontend & real-timeAgentic developmentJavaScript
Tutorialkit.rb: the ruby.wasm journey goes onwardTutorialkit.rb: the ruby.wasm journey goes onwardFebruary 10, 2026Blog PostOpen SourceRailsLocal-firstDXProduct developmentRuby on RailsWasmRubyJavaScript
Super speed, super quality: lessons from the Aptos Network site launchSuper speed, super quality: lessons from the Aptos Network site launchFebruary 4, 2026Blog PostCase StudyDXAIFrontend & real-timeAstro.jsReactTailwind CSS
So, your developers use AI now—here's what to knowSo, your developers use AI now—here's what to knowFebruary 3, 2026Blog PostAIFrontend & real-timeLLM benchmarking
Building dev tools with AI: the product decisions that need to be yoursBuilding dev tools with AI: the product decisions that need to be yoursJanuary 29, 2026Blog PostAIDesign for devtools
Optimistic UI in Rails with optimism... and InertiaOptimistic UI in Rails with optimism... and InertiaJanuary 27, 2026SKILLS availableBlog PostRailsProduct developmentRuby on RailsReactJavaScript
How to detect Safari and iOS versions with ease in 2026How to detect Safari and iOS versions with ease in 2026January 15, 2026Blog PostiOSJavaScriptCSS
What devtools founders making $100M+ ARR told me in San FranciscoWhat devtools founders making $100M+ ARR told me in San FranciscoJanuary 7, 2026Blog PostDeveloper ProductsAIDevtools startup advisory
6 things developer tools must have in 2026 to earn trust and adoption6 things developer tools must have in 2026 to earn trust and adoptionJanuary 6, 2026Blog PostDeveloper ProductsAIDXPerformanceDesignFrontend & real-timeDesign for devtoolsJavaScriptA11yLLMs
Inertia.js in Rails: a new era of effortless integrationInertia.js in Rails: a new era of effortless integrationDecember 31, 2025SKILLS availableBlog PostRailsProduct developmentRuby on RailsReactJavaScriptTailwind CSS
AnyCable, Rails, and the pitfalls of LLM-streamingAnyCable, Rails, and the pitfalls of LLM-streamingDecember 18, 2025Blog PostReal-timeAIOpen SourceFrontend & real-timeRailsHotwireWebSocket
Why your vibe-coded project needs a developerWhy your vibe-coded project needs a developerDecember 11, 2025Blog PostDesignDXAIProduct developmentFrontend & real-timeAgentic development
Why Evil Martians hosted a Ruby conference in San FranciscoWhy Evil Martians hosted a Ruby conference in San FranciscoDecember 10, 2025Blog PostDeveloper CommunityRuby
Unparser: real life lessons migrating Ruby tools from Parser to PrismUnparser: real life lessons migrating Ruby tools from Parser to PrismNovember 25, 2025Blog PostOpen SourceDXRuby
Vibecoding tools can learn from design UX and win over everyoneVibecoding tools can learn from design UX and win over everyoneNovember 19, 2025Blog PostDesignDXAIDesign for devtools
Payment form best coding practices that don't drop salesPayment form best coding practices that don't drop salesNovember 10, 2025Blog PostDeveloper ProductsFrontend & real-timeDesign for devtoolsJavaScript
Why startups choose React (and when you shouldn't)Why startups choose React (and when you shouldn't)October 29, 2025Blog PostDeveloper CommunityFrontend & real-timeJavaScriptReactVue.js
Migrating Whop from PostgreSQL to PlanetScale MySQL with 0 downtimeMigrating Whop from PostgreSQL to PlanetScale MySQL with 0 downtimeOctober 28, 2025Blog PostCase StudyRailsProduct developmentRuby on RailsPostgreSQL
Why we're excited about the SF Ruby conferenceWhy we're excited about the SF Ruby conferenceOctober 22, 2025Blog PostDeveloper Community
Debug AI fast with this open source library to visualize agent tracesDebug AI fast with this open source library to visualize agent tracesOctober 15, 2025Blog PostAISDKs, extensions & plugins
How to add fast, client-side search to Astro static sitesHow to add fast, client-side search to Astro static sitesOctober 8, 2025Blog PostFrontend & real-timeAstro.js
Martian Summer: blog, talks, open source, and ready for SFRuby in NovMartian Summer: blog, talks, open source, and ready for SFRuby in NovOctober 7, 2025Blog PostDeveloper CommunityProduct developmentFrontend & real-time
Contract shock therapy: the way to API-first documentation blissContract shock therapy: the way to API-first documentation blissOctober 1, 2025Blog PostDXProduct developmentFrontend & real-timeTypeScriptViteReact
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, 2025Blog PostRailsDXProduct developmentRuby on RailsCIRubyJavaScript
OKLCH in CSS: why we moved from RGB and HSLOKLCH in CSS: why we moved from RGB and HSLSeptember 17, 2025Blog PostDeveloper ProductsDesignDXFrontend & real-timeDesign 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, 2025Blog PostRailsProduct developmentRuby on RailsGoRust
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, 2025Blog PostAIRailsOpen SourceRuby on RailsSDKs, extensions & pluginsLLMs
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, 2025Blog PostCase StudyDeveloper CommunityRailsProduct developmentRuby on Rails
The scenic route: lessons building an IntelliJ IDEA plugin for LuauThe scenic route: lessons building an IntelliJ IDEA plugin for LuauAugust 26, 2025Blog PostCase StudyDeveloper ProductsSDKs, extensions & plugins
Circuit breakers and Ruby in 2025: don't break your launchCircuit breakers and Ruby in 2025: don't break your launchAugust 13, 2025Blog PostOpen SourceRuby on RailsDB optimizationRuby
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, 2025Blog PostOpen SourceDeveloper CommunityRailsProduct developmentRuby on RailsJavaScriptTailwind CSSAgentic development
What we learned from creating PostCSSWhat we learned from creating PostCSSAugust 5, 2025Blog PostOpen SourceFrontend & real-timeA11yCSSJavaScript
Simplicity, vanished?! Solving the mystery with Inertia.js + RailsSimplicity, vanished?! Solving the mystery with Inertia.js + RailsJuly 29, 2025SKILLS availableBlog PostRailsProduct developmentRuby on RailsReact
API contracts and everything I wish I knew: a frontend survival guideAPI contracts and everything I wish I knew: a frontend survival guideJuly 23, 2025Blog PostDXProduct developmentFrontend & real-timeTypeScript
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, 2025Blog PostDeveloper ProductsDesignDesign for devtoolsProduct development
The early validation lesson: designing Quotient AI’s prompt sandboxThe early validation lesson: designing Quotient AI’s prompt sandboxJuly 2, 2025Blog PostDeveloper ProductsDesignCase StudyAIDesign for devtoolsSDKs, extensions & plugins
The Hotwire-Rails summit, or interactive multi-step forms at peak UXThe Hotwire-Rails summit, or interactive multi-step forms at peak UXJune 24, 2025Blog PostCase StudyRailsRuby on RailsProduct developmentHotwireRubyJavaScript
How to make an AI clone of your CEO for the world's biggest hackathonHow to make an AI clone of your CEO for the world's biggest hackathonJune 23, 2025Blog PostDeveloper ProductsDesignCase StudyAIDesign for devtoolsSDKs, extensions & plugins
Weeks → days: a case for expert-led, AI-driven design engineeringWeeks → days: a case for expert-led, AI-driven design engineeringJune 17, 2025Blog PostDeveloper ProductsDesignCase StudyAIDesign for devtoolsSDKs, extensions & plugins
How AI startups use changelogs to win developer trustHow AI startups use changelogs to win developer trustJune 4, 2025Blog PostDeveloper ProductsDesign for devtoolsGo-to-market
Exploring the OKLCH ecosystem and its toolsExploring the OKLCH ecosystem and its toolsMay 28, 2025Blog PostDeveloper ProductsDesignDXFrontend & real-timeDesign for devtoolsOKLCHCSS
How Recraft's lean team is challenging the AI image generation giantsHow Recraft's lean team is challenging the AI image generation giantsMay 20, 2025Blog PostCase StudyDeveloper ProductsDesign for devtoolsProduct development
Demo app design for Medplum, open source healthcare developer platformDemo app design for Medplum, open source healthcare developer platformMay 15, 2025Blog PostDeveloper ProductsDesignCase StudyDesign for devtools
GMI Cloud meets Webflow and speeds ahead in the AI compute raceGMI Cloud meets Webflow and speeds ahead in the AI compute raceApril 30, 2025Blog PostDeveloper ProductsDesignAICase StudyDesign for devtoolsForward deployed
UI for Quotient AI: the developer tool for prompt engineersUI for Quotient AI: the developer tool for prompt engineersApril 23, 2025Blog PostDesignAICase StudyDesign for devtoolsFigmaLLMs
Making desktop apps with revved-up potential: Rust + Tauri + sidecarMaking desktop apps with revved-up potential: Rust + Tauri + sidecarApril 22, 2025Blog PostCase StudyFrontend & real-timeProduct developmentRustTypeScript
Let there be docs! Generating an OpenAPI schema across the Rails stackLet there be docs! Generating an OpenAPI schema across the Rails stackApril 8, 2025Blog PostRailsRuby on RailsRuby
Attention: An Important Brand Update From The Evil Martians BlogAttention: An Important Brand Update From The Evil Martians BlogApril 1, 2025Blog PostAI
Hey developer tool teams, don’t copy these copywriting clichés!Hey developer tool teams, don’t copy these copywriting clichés!March 26, 2025Blog PostDeveloper ProductsDeveloper MarketingDeveloper Community
Simple Declarative Presence for Hotwire apps with AnyCableSimple Declarative Presence for Hotwire apps with AnyCableMarch 18, 2025Blog PostReal-timeRailsProduct developmentRuby on RailsWebSocketHotwire
How to kill conversions on your developer tool's landing pageHow to kill conversions on your developer tool's landing pageMarch 5, 2025Blog PostDeveloper ProductsDeveloper MarketingGo-to-market
How Doximity brought real-time Go power to their Rails appHow Doximity brought real-time Go power to their Rails appFebruary 25, 2025Blog PostReal-timeCase StudyRailsPerformanceGo & performanceGo
Hire better, 10X faster: how we screen 50 engineers weekly with no HRHire better, 10X faster: how we screen 50 engineers weekly with no HRFebruary 19, 2025Blog PostDeveloper ProductsDeveloper CommunityHiring & training
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, 2025Blog PostRailsLocal-firstOpen SourceProduct developmentRuby on RailsWasmRubyJavaScript
3 smart ways to highlight features for landing pages or launch weeks3 smart ways to highlight features for landing pages or launch weeksJanuary 28, 2025Blog PostDesignDeveloper ProductsDesign for devtoolsProduct development
Martian Kubernetes Kit: running apps—and running them wellMartian Kubernetes Kit: running apps—and running them wellJanuary 22, 2025Blog PostInfrastructurePlatform engineeringProduct developmentKubernetesPrometheusDocker
Devs in mind 2025: how to design interfaces for developer toolsDevs in mind 2025: how to design interfaces for developer toolsJanuary 14, 2025Blog PostDesignDeveloper ProductsDeveloper CommunityDesign for devtools
The 16 most active developer tool investors and VCs going into 2025The 16 most active developer tool investors and VCs going into 2025January 7, 2025Blog PostDeveloper ProductsAIDevtools startup advisory
Railsmas on Mars: 12 Days of Mandatory Developer Joy and ChallengeRailsmas on Mars: 12 Days of Mandatory Developer Joy and ChallengeDecember 31, 2024Blog PostRailsOpen SourceRuby
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 askDecember 30, 2024Blog PostCase StudyDesignAIDeveloper ProductsLLMsMLDeep Learning
Ease and epiphany: 4 ways to stop misguided dev tools user onboardingEase and epiphany: 4 ways to stop misguided dev tools user onboardingDecember 17, 2024Blog PostDesignDeveloper ProductsDXDesign for devtools
Keeping Rails cool: the modern frontend toolkitKeeping Rails cool: the modern frontend toolkitDecember 10, 2024SKILLS availableBlog PostOpen SourceRailsGo & performanceGo
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, 2024Blog PostDeveloper ProductsAIRailsDeveloper CommunityDeveloper MarketingCase StudyForward deployedDB optimization
Founders, if you want A+ startup success, do the homework first!Founders, if you want A+ startup success, do the homework first!November 19, 2024Blog PostDeveloper ProductsDeveloper MarketingDevtools startup advisory
Hey, AnyCable speaking! Needing help with a Twilio-OpenAI connection?Hey, AnyCable speaking! Needing help with a Twilio-OpenAI connection?November 12, 2024Blog PostCase StudyAIRailsOpen SourceReal-timeRuby on RailsGo & performanceLLMsMLTwilio
How to do launch weeks for developer tools, startups, and small teamsHow to do launch weeks for developer tools, startups, and small teamsNovember 5, 2024Blog PostDeveloper ProductsDeveloper MarketingDeveloper CommunityGo-to-market
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, 2024Blog PostDesignDXDesign for devtools
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, 2024Blog PostOpen SourcePerformanceDXGo & performanceGo
Designing Tegon: a signature vision for the AI-driven issue trackerDesigning Tegon: a signature vision for the AI-driven issue trackerSeptember 25, 2024Blog PostDeveloper ProductsDesignAICase StudyDesign for devtoolsSDKs, extensions & pluginsLLMsMLDeep Learning
Creating a winning sales flow with authentic writing from engineersCreating a winning sales flow with authentic writing from engineersSeptember 18, 2024Blog PostDeveloper ProductsDeveloper MarketingDeveloper CommunityGo-to-market
A letter to founders: join the local-first movement!A letter to founders: join the local-first movement!September 10, 2024Blog PostDeveloper ProductsLocal-firstAIFrontend & real-time
How to quickly (and weightlessly) convert Chrome extensions to SafariHow to quickly (and weightlessly) convert Chrome extensions to SafariAugust 28, 2024Blog PostCase StudyDeveloper ProductsSDKs and PluginsFrontend & real-timeSDKs, extensions & pluginsJavaScriptTypeScriptSwift
Dev tools AI‑fication 101: lessons from Martian robotsDev tools AI‑fication 101: lessons from Martian robotsAugust 20, 2024Blog PostAIPerformanceDXSDKs, extensions & pluginsDB optimizationLLMsMLRails
Railing against time: tools and techniques that got us 5X faster testsRailing against time: tools and techniques that got us 5X faster testsAugust 14, 2024Blog PostCase StudyDB optimizationRails CI speedupRubyRailsCI
TestProf III: guided and automated Ruby test profilingTestProf III: guided and automated Ruby test profilingAugust 13, 2024Blog PostPerformanceOpen SourceRuby on RailsDB optimizationRubyCI
The SDK Imperative: why developer tools live or die by their SDKsThe SDK Imperative: why developer tools live or die by their SDKsAugust 10, 2024Blog PostDeveloper ProductsSDKs and PluginsOpen SourceProduct developmentSDKs, extensions & pluginsGitHeroku
Want to make a great developer tool UI? Follow this fundamental rule!Want to make a great developer tool UI? Follow this fundamental rule!August 5, 2024Blog PostDesignDesign for devtools
git push --force and how to deal with itgit push --force and how to deal with itJuly 30, 2024Blog PostDXProduct developmentGitHeroku
Engineering connections: a conference talk primer for humansEngineering connections: a conference talk primer for humansJuly 29, 2024Blog PostDeveloper Community
Flying free: a tale of partitioning with canaries in PostgreSQLFlying free: a tale of partitioning with canaries in PostgreSQLJuly 23, 2024Blog PostDB optimizationPostgreSQL
How to make complex Chrome extensions: a zero gravity guideHow to make complex Chrome extensions: a zero gravity guideJuly 16, 2024Blog PostDeveloper ProductsSDKs and PluginsFrontend & real-timeSDKs, extensions & pluginsJavaScriptTypeScriptReact
Startups on Rails in 2024: my keynote at RailsConfStartups on Rails in 2024: my keynote at RailsConfJuly 15, 2024Blog PostDeveloper ProductsRailsProduct development
Connection avalanche safety tips and prepping for real-time applicationsConnection avalanche safety tips and prepping for real-time applicationsJuly 9, 2024Blog PostReal-timeInfrastructurePerformanceDB optimizationRuby on RailsWebSocketHotwire
Recapping the first Local‑First conference in 15 minutesRecapping the first Local‑First conference in 15 minutesJuly 8, 2024Blog PostLocal-firstDeveloper CommunityFrontend & real-timeCRDTJavaScript
Realtime diagnostic logging, or how to really spy on your Go web appsRealtime diagnostic logging, or how to really spy on your Go web appsJuly 2, 2024Blog PostDXGo & performanceProduct developmentGo
Beyond monospace: the search for the perfect coding fontBeyond monospace: the search for the perfect coding fontJune 25, 2024Blog PostDesignDesign for devtoolsFonts
The art of Turbo Mount: Hotwire meets modern JS frameworksThe art of Turbo Mount: Hotwire meets modern JS frameworksJune 11, 2024Blog PostRailsProduct developmentRuby on RailsHotwireReactJavaScript
The lion's den: NestJS and authentication with AWS CognitoThe lion's den: NestJS and authentication with AWS CognitoJune 10, 2024Blog PostProduct developmentTypeScriptNode.jsAWS
How does your chatbot UX size up? The 5 laws of ChatRoboticsHow does your chatbot UX size up? The 5 laws of ChatRoboticsMay 22, 2024Blog PostAIFrontend & real-timeProduct developmentJavaScriptNode.js
Keep it together: 5 essential design patterns for dev tool UIsKeep it together: 5 essential design patterns for dev tool UIsMay 7, 2024Blog PostDesignDesign for devtoolsA11y
Let's have more tech meetups! A quick-start guide to holding your ownLet's have more tech meetups! A quick-start guide to holding your ownApril 30, 2024Blog PostDeveloper CommunityRuby
Next-level docs with Next.js: Teleport’s new customer acquisition channelNext-level docs with Next.js: Teleport’s new customer acquisition channelApril 24, 2024Blog PostDeveloper ProductsDXOpen SourceSDKs and PluginsFrontend & real-timeDesign for cybersecurityNext.js
How to manifest streamlined authentication: AWS Cognito in a React appHow to manifest streamlined authentication: AWS Cognito in a React appApril 22, 2024Blog PostProduct developmentFrontend & real-timeReactTypeScriptAWS
CLI UX best practices: 3 patterns for improving progress displaysCLI UX best practices: 3 patterns for improving progress displaysApril 15, 2024Blog PostDesignDXDesign for devtoolsGo & performanceLean 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, 2024Blog PostRailsRuby on RailsRubyMicroservices
MVPs, prototypes, results: how to win with a Martian Design SprintMVPs, prototypes, results: how to win with a Martian Design SprintApril 8, 2024Blog PostDesignDeveloper ProductsDesign for devtoolsProduct developmentCJMFigma
Kamal: hot deployment tool to watch—or a total game changer?Kamal: hot deployment tool to watch—or a total game changer?April 2, 2024Blog PostInfrastructurePlatform engineeringProduct developmentKamalKubernetesAWS
Beyond bars and lines: 7 cool ways to visualize data in your dev toolBeyond bars and lines: 7 cool ways to visualize data in your dev toolMarch 26, 2024Blog PostDesignDesign for devtoolsA11y
Why should developers write? 3 reasons and 3 common blocksWhy should developers write? 3 reasons and 3 common blocksMarch 20, 2024Blog PostDeveloper Marketing
Martian Kubernetes Kit: unboxing our toolkit's technical secretsMartian Kubernetes Kit: unboxing our toolkit's technical secretsMarch 12, 2024Blog PostInfrastructurePlatform engineeringProduct developmentKubernetesPrometheusDocker
How to make complex serverless file processing a piece of cakeHow to make complex serverless file processing a piece of cakeMarch 6, 2024Blog PostInfrastructureServerlessGoogle CloudTypeScript
The complete guide to multi-tenant SaaS, part 1: collaborationThe complete guide to multi-tenant SaaS, part 1: collaborationFebruary 28, 2024Blog PostDeveloper ProductsDesignProduct developmentDesign for devtools
“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, 2024Blog PostRailsPerformanceRuby on RailsDB optimizationRubySidekiqRedis
First steps with ruby.wasm: or how we built Ruby Next PlaygroundFirst steps with ruby.wasm: or how we built Ruby Next PlaygroundFebruary 6, 2024Blog PostOpen SourceLocal-firstProduct developmentRuby on RailsWasmRubyJavaScript
Hiring a product designer: 1 hard skill and 3 soft skills to look forHiring a product designer: 1 hard skill and 3 soft skills to look forJanuary 30, 2024Blog PostDesignDeveloper ProductsDesign for devtoolsProduct developmentLean Software Development
Value pricing for Dev Tools: a strategy beneficial for both sidesValue pricing for Dev Tools: a strategy beneficial for both sidesJanuary 24, 2024Blog PostDeveloper ProductsProduct developmentDevtools startup advisory
ViewComponent in the Wild III: TailwindCSS classes & HTML attributesViewComponent in the Wild III: TailwindCSS classes & HTML attributesJanuary 23, 2024Blog PostRailsProduct developmentFrontend & real-timeRubyCSS
5 cool (and surprising) ways to configure Lefthook for automation joy5 cool (and surprising) ways to configure Lefthook for automation joyJanuary 18, 2024Blog PostOpen SourcePerformanceProduct developmentRuby on RailsGoRubyJavaScript
How to cultivate capital: 6 tips from developer tools founders and VCsHow to cultivate capital: 6 tips from developer tools founders and VCsJanuary 10, 2024Blog PostDeveloper ProductsOpen SourceDevtools startup advisory
UX research for dev tools must not be neglected: our quick-start guideUX research for dev tools must not be neglected: our quick-start guideDecember 27, 2023Blog PostDesignDeveloper ProductsDesign for devtoolsProduct development
Martian Kubernetes Kit: a smooth-sailing toolkit from our SRE teamMartian Kubernetes Kit: a smooth-sailing toolkit from our SRE teamDecember 20, 2023Blog PostInfrastructurePlatform engineeringProduct developmentKubernetesPrometheusDocker
Figma plugin magic tricks: mixing colors with SVG and Canvas APIFigma plugin magic tricks: mixing colors with SVG and Canvas APIDecember 12, 2023Blog PostSDKs and PluginsDXProduct developmentFrontend & real-timeFigmaTypeScriptReact
Pen, paper, IDE: a DevTool Founder’s early-stage product design guidePen, paper, IDE: a DevTool Founder’s early-stage product design guideDecember 4, 2023Blog PostDesignDeveloper ProductsDesign for devtoolsProduct developmentLean Software Development
Care beyond code: 7 best design practices for frontend developersCare beyond code: 7 best design practices for frontend developersNovember 28, 2023Blog PostDesignFrontend & real-timeCSSJavaScript
Extremely open and incredibly close: should you go open source?Extremely open and incredibly close: should you go open source?November 20, 2023Blog PostDeveloper ProductsProduct development
Freezolite: the magic gem for keeping Ruby literals safely frozenFreezolite: the magic gem for keeping Ruby literals safely frozenNovember 14, 2023Blog PostPerformanceDXRuby on RailsDB optimizationRuby
Figma plugin API: diving into advanced algorithms & data structuresFigma plugin API: diving into advanced algorithms & data structuresNovember 13, 2023Blog PostSDKs and PluginsDXProduct developmentFrontend & real-timeFigmaTypeScriptReact
DIY PaaS: serverless real-time with one commandDIY PaaS: serverless real-time with one commandNovember 8, 2023Blog PostReal-timeProduct developmentFrontend & real-timeServerlessWebSocketNode.js
Midjourney vs. human illustrators II: more Martians join the battle!Midjourney vs. human illustrators II: more Martians join the battle!November 6, 2023Blog PostDesignAIDesign for devtoolsSDKs, extensions & pluginsNeural Networks
Better dynamic themes in Tailwind with OKLCH color magicBetter dynamic themes in Tailwind with OKLCH color magicOctober 31, 2023Blog PostDesignDXTailwind CSSOKLCHCSS
The future of full-stack Rails II: Turbo View TransitionsThe future of full-stack Rails II: Turbo View TransitionsOctober 23, 2023Blog PostRailsRuby on RailsProduct developmentHotwireRubyJavaScript
The future of full-stack Rails: Turbo Morph DriveThe future of full-stack Rails: Turbo Morph DriveOctober 16, 2023Blog PostRailsRuby on RailsProduct developmentHotwireRubyJavaScript
It’s dangerous to go alone: take our guide to the “IDEAL” HTTP client!It’s dangerous to go alone: take our guide to the “IDEAL” HTTP client!September 12, 2023Blog PostPerformanceProduct developmentRuby on RailsMicroservicesRuby
It deserved its own tome: Layered Design and the Extended Rails WayIt deserved its own tome: Layered Design and the Extended Rails WayAugust 29, 2023SKILL availableBlog PostRailsDeveloper CommunityRuby on RailsProduct developmentHotwireRuby
Successful balance: gracefully and tactfully raising a dev tool priceSuccessful balance: gracefully and tactfully raising a dev tool priceAugust 23, 2023Blog PostDeveloper ProductsDesignProduct developmentDesign for devtools
How to make next-level Figma plugins: auth, routing, storage, and moreHow to make next-level Figma plugins: auth, routing, storage, and moreAugust 22, 2023Blog PostDeveloper ProductsDXSDKs and PluginsFrontend & real-timeSDKs, extensions & pluginsFigmaJavaScriptTypeScript
Super GitHub Pages: budget frontend staging, with Storybook and moreSuper GitHub Pages: budget frontend staging, with Storybook and moreAugust 4, 2023Blog PostFrontend & real-timeProduct developmentGit
imgproxy goes solo: unveiling a bold future for this new companyimgproxy goes solo: unveiling a bold future for this new companyJuly 20, 2023Blog PostDeveloper ProductsProduct developmentML
Enter AnyCable v1.4: reliable real-time features for apps of any sizeEnter AnyCable v1.4: reliable real-time features for apps of any sizeJuly 14, 2023Blog PostReal-timeRuby on RailsProduct developmentHotwireWebSocketRuby
How a year-long LeetCode habit upped my professional gameHow a year-long LeetCode habit upped my professional gameJuly 5, 2023Blog PostDeveloper MarketingProduct developmentFrontend & real-timeJavaScript
“AI” marks the spot: a quick AI treasure map for businesses“AI” marks the spot: a quick AI treasure map for businessesJune 28, 2023Blog PostDeveloper ProductsAIDesignDesign for devtoolsProduct developmentML
Before your next frontend pull request, use this checklistBefore your next frontend pull request, use this checklistJune 7, 2023Blog PostFrontend & real-timeA11yCSSJavaScript
How to turn an open source project into a profitable businessHow to turn an open source project into a profitable businessMay 31, 2023Blog PostDeveloper ProductsOpen SourceProduct developmentHiring & training
From Ruby to Crystal? Writing and distributing a CLI toolFrom Ruby to Crystal? Writing and distributing a CLI toolMay 16, 2023Blog PostCase StudyRuby on RailsProduct developmentCrystalRuby
Icon transcendence: customizing icons to complement fontsIcon transcendence: customizing icons to complement fontsMay 3, 2023Blog PostDesignDesign for devtoolsFrontend & real-time
Go integration testing with courage and coverageGo integration testing with courage and coverageApril 19, 2023Blog PostDXGo & performanceProduct developmentGoWebSocket
Don’t wait, let’s use the browser Contact Picker API nowDon’t wait, let’s use the browser Contact Picker API nowApril 13, 2023Blog PostFrontend & real-timeJavaScriptTypeScriptReact
Ruby Bytes, or generating standalone generatorsRuby Bytes, or generating standalone generatorsApril 4, 2023Blog PostDXRuby on RailsProduct developmentRuby
AnyCable off Rails: connecting Twilio streams with HanamiAnyCable off Rails: connecting Twilio streams with HanamiMarch 21, 2023Blog PostReal-timeRuby on RailsGo & performanceGoWebSocketTwilio
Cool frontend arts of local-first: storage, sync, conflictsCool frontend arts of local-first: storage, sync, conflictsMarch 15, 2023Blog PostDesignDeveloper ProductsLocal-firstProduct developmentFrontend & real-timeCRDTJavaScriptLean Software Development
“Design first, then build”: let’s bury this myth forevermore“Design first, then build”: let’s bury this myth forevermoreMarch 10, 2023Blog PostDesignDeveloper ProductsDesign for devtoolsProduct developmentLean Software Development
How to avoid tricky async state manager pitfalls in ReactHow to avoid tricky async state manager pitfalls in ReactFebruary 21, 2023Blog PostFrontend & real-timeReactJavaScript
OK, OKLCH: a color picker made to help think perceptivelyOK, OKLCH: a color picker made to help think perceptivelyFebruary 7, 2023Blog PostDeveloper ProductsDesignDXDesign for devtoolsFrontend & real-timeOKLCHCSS
How to build a better React map with Pigeon Maps and MapboxHow to build a better React map with Pigeon Maps and MapboxJanuary 24, 2023Blog PostDesignDeveloper ProductsFrontend & real-timeDesign for devtoolsJavaScriptReactGatsby
Decentralized app design: first aid for common dApp UI painsDecentralized app design: first aid for common dApp UI painsDecember 19, 2022Blog PostDesignDesign for devtoolsBlockchainEthereum
Midjourney vs. human illustrators: has AI already won?Midjourney vs. human illustrators: has AI already won?December 13, 2022Blog PostDesignAIDesign for devtoolsSDKs, extensions & pluginsNeural Networks
Blend to my will! Fonts on cylinder objects in BlenderBlend to my will! Fonts on cylinder objects in BlenderDecember 5, 2022Blog PostDesignDesign for devtoolsFrontend & real-timeFontsBlender
Realtime text analysis with Word Tagger: recipe reader, part 2Realtime text analysis with Word Tagger: recipe reader, part 2November 22, 2022Blog PostAIProduct developmentSDKs, extensions & pluginsiOSSwiftComputer Vision
One does not simply design: designers as product ownersOne does not simply design: designers as product ownersNovember 17, 2022Blog PostDesignDeveloper ProductsDesign for devtoolsProduct developmentLean Software Development
Web Summit 2022: what you missed and how to be ready for next yearWeb Summit 2022: what you missed and how to be ready for next yearNovember 14, 2022Blog PostDeveloper CommunityDeveloper ProductsProduct developmentHiring & training
ViewComponent in the Wild II: supercharging your componentsViewComponent in the Wild II: supercharging your componentsOctober 18, 2022Blog PostProduct developmentFrontend & real-timeRubyCSSJavaScript
ViewComponent in the Wild I: building modern Rails frontendsViewComponent in the Wild I: building modern Rails frontendsOctober 12, 2022Blog PostRailsProduct developmentRuby on RailsRuby
RubyKaigi 2022: a report from an Evil Martian in JapanRubyKaigi 2022: a report from an Evil Martian in JapanOctober 3, 2022Blog PostDeveloper CommunityRuby on RailsRuby
WebSocket Director: scenario-based integration tests for realtime appsWebSocket Director: scenario-based integration tests for realtime appsSeptember 20, 2022Blog PostInfrastructureReal-timeDXProduct developmentRuby on RailsWebSocketRuby
The journey from CircleCI to GitHub ActionsThe journey from CircleCI to GitHub ActionsSeptember 15, 2022Blog PostInfrastructureRuby on RailsPlatform engineeringCIDockerNode.js
5 signs your project needs a design system5 signs your project needs a design systemSeptember 8, 2022Blog PostDesignDeveloper ProductsProduct developmentDesign for devtools
Martians unveiled: infusing a new site with extraterrestrial tech and soulMartians unveiled: infusing a new site with extraterrestrial tech and soulSeptember 5, 2022Blog PostDesignDeveloper ProductsProduct developmentDesign for devtoolsFontsOKLCHJamstack
The sword is yours: transferring projects to another team unscathedThe sword is yours: transferring projects to another team unscathedAugust 19, 2022Blog PostInfrastructureProduct developmentPlatform engineeringGoogle CloudCI
Lefthook: refactoring the Git Hooks automation tool back into shapeLefthook: refactoring the Git Hooks automation tool back into shapeAugust 18, 2022Blog PostDXProduct developmentGo & performanceGoCIGit
Taking off the Heroku training wheels: the Rails preflight checklistTaking off the Heroku training wheels: the Rails preflight checklistAugust 9, 2022Blog PostInfrastructureRailsRuby on RailsProduct developmentHerokuRubyAWS
Phone inputs and you: the designer's essential UI guidePhone inputs and you: the designer's essential UI guideAugust 3, 2022Blog PostDesignDesign for devtoolsFrontend & real-time
And they lived happily ever after… the M&AAnd they lived happily ever after… the M&AJuly 27, 2022Blog PostDeveloper ProductsProduct developmentLean Software Development
Down the caching‑hole: adventures in 'HTTP caching and Faraday' landDown the caching‑hole: adventures in 'HTTP caching and Faraday' landJuly 15, 2022Blog PostPerformanceRuby on RailsDB optimizationRuby
The joy of Variable Fonts: getting started on the FrontendThe joy of Variable Fonts: getting started on the FrontendJuly 6, 2022Blog PostDesignFrontend & real-timeDesign for devtoolsFontsCSS
How to make absolutely any app look like a macOS appHow to make absolutely any app look like a macOS appJune 16, 2022Blog PostDesignDesign for devtools
How to use P3 colors with SVGsHow to use P3 colors with SVGsMay 25, 2022Blog PostFrontend & real-timeDesign for devtoolsOKLCHCSS
Soft deletion with PostgreSQL: but with logic on the database!Soft deletion with PostgreSQL: but with logic on the database!May 16, 2022Blog PostPerformanceRuby on RailsPostgreSQLRuby
Realtime text analysis with Word Tagger: pro computer vision, part 1Realtime text analysis with Word Tagger: pro computer vision, part 1April 27, 2022Blog PostAIProduct developmentSDKs, extensions & pluginsiOSSwiftComputer Vision
A slice of life: table partitioning in PostgreSQL databasesA slice of life: table partitioning in PostgreSQL databasesApril 12, 2022Blog PostPerformanceRailsRuby on RailsDB optimizationPostgreSQLRuby
Variable fonts in real life: how to use and love themVariable fonts in real life: how to use and love themMarch 24, 2022Blog PostDesignDesign for devtoolsFonts
Object Detection with Create ML: training and demo appObject Detection with Create ML: training and demo appFebruary 17, 2022Blog PostAIProduct developmentSDKs, extensions & pluginsiOSTLML
Object Detection with Create ML: images and datasetObject Detection with Create ML: images and datasetFebruary 9, 2022Blog PostAIProduct developmentSDKs, extensions & pluginsiOSML
Our slice of the metaverse: 7 key AR features for iOS devsOur slice of the metaverse: 7 key AR features for iOS devsJanuary 5, 2022Blog PostAIProduct developmentSDKs, extensions & pluginsiOSARML
AI and the auteur: using neural networks as artistic toolsAI and the auteur: using neural networks as artistic toolsDecember 21, 2021Blog PostDeveloper MarketingAISDKs, extensions & pluginsMLNeural NetworksPython
Kubing Rails: stressless Kubernetes deployments with KubyKubing Rails: stressless Kubernetes deployments with KubyNovember 30, 2021Blog PostInfrastructureRailsRuby on RailsPlatform engineeringKubernetesCIRuby
The Martian Design Sprint: starting and running projects fasterThe Martian Design Sprint: starting and running projects fasterNovember 24, 2021Blog PostDesignDeveloper ProductsDesign for devtoolsProduct developmentCJMFigma
TimescaleDB: integrating time-series data with Ruby on RailsTimescaleDB: integrating time-series data with Ruby on RailsNovember 16, 2021Blog PostRailsRuby on RailsTimescaleDBPostgreSQLRuby
A no-go fantasy: writing Go in Ruby with Ruby NextA no-go fantasy: writing Go in Ruby with Ruby NextNovember 9, 2021Blog PostRuby on RailsGo & performanceGoRuby
Pro becomes smart: imgproxy Pro engages machine learningPro becomes smart: imgproxy Pro engages machine learningOctober 5, 2021Blog PostDeveloper ProductsAIProduct developmentGo & performanceGoML
Narrative Reflections: Transmuting Ruby Code into Storytelling GoldBy Travis TurnerNarrative Reflections: Transmuting Ruby Code into Storytelling GoldMay 30–31, 2024Blue Ridge RubyTalkDeveloper MarketingHiring & training
Bites and Bytes: meetup for developers in TbilisiBy Pasha Kalashnikov, Nina Torgunakova and Travis TurnerBites and Bytes: meetup for developers in TbilisiMar 30, 2023Bites and BytesTalkDesignDeveloper MarketingProduct developmentRuby on RailsRuby