# Evil Martians

Evil Martians is a developer tools consultancy founded in 2006. Creators of PostCSS, imgproxy, and 100+ open source projects with 25 billion downloads.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Rails Hyperdrive: supercharged agentic development for Rails

DevFeed: [Rails Hyperdrive: supercharged agentic development for Rails](<https://devfeed.tech/articles/rails-hyperdrive-supercharged-agentic-development-for-rails-26897.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/rails-hyperdrive-supercharged-agentic-development-for-rails>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-09-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Ruby on Rails](<https://devfeed.tech/topics/ruby-on-rails.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>)

Tags: [agent-experience](<https://devfeed.tech/tags/agent-experience.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding-agents](<https://devfeed.tech/tags/ai-coding-agents.md>), [claude-code](<https://devfeed.tech/tags/claude-code.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby-on-rails](<https://devfeed.tech/tags/ruby-on-rails.md>), [ruby-on-rails-consulting](<https://devfeed.tech/tags/ruby-on-rails-consulting.md>)

### AI overview

This tutorial introduces Rails Hyperdrive, a development-only Rails engine that gives AI coding agents live answers from a booted Rails application and lets gems provide agent guidance through Gemfile-gated knowledge. It covers installation, MCP server setup, skills, sub-agents, slash commands, upgrades, and integration for gem authors.

### Source excerpt

Introducing Rails Hyperdrive: a development-only Rails engine that gives AI coding agents live answers from your booted app and lets any gem in your bundle ship guidance gated to your Gemfile. Convention over configuration, applied to agent knowledge.

## How agentic development affects team collaboration

DevFeed: [How agentic development affects team collaboration](<https://devfeed.tech/articles/give-up-a-little-speed-get-your-team-back-19784.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/give-up-a-little-speed-get-your-team-back>)

Author: Irina Nazarova (inazarova@evilmartians.com)

Published: 2026-09-09T00:00:00Z

Content type: opinion

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Code](<https://devfeed.tech/topics/code.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>)

Tags: [agentic-development](<https://devfeed.tech/tags/agentic-development.md>), [ai](<https://devfeed.tech/tags/ai.md>), [code](<https://devfeed.tech/tags/code.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [developer-community](<https://devfeed.tech/tags/developer-community.md>), [development](<https://devfeed.tech/tags/development.md>), [dx](<https://devfeed.tech/tags/dx.md>), [teamwork](<https://devfeed.tech/tags/teamwork.md>)

### AI overview

This opinion article examines how agentic development can increase individual speed while making collaboration harder. It distinguishes learning work, such as testing hypotheses and building experiments, from other engineering work even when both produce code, and presents practical ideas for working together again.

### Source excerpt

Agentic speed turned all of us into super-ICs and broke our ability to collaborate. Two types of work that both produce code, and three recipes for working together again: a safe perimeter for experiments, shared rules everybody pays for, and an intent log your agents write themselves.

## Migrating evilmartians.com from Gatsby to Astro in two weeks with Claude

DevFeed: [Migrating evilmartians.com from Gatsby to Astro in two weeks with Claude](<https://devfeed.tech/articles/the-golden-switch-or-migrating-from-gatsby-to-astro-in-under-93-4-days-19785.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/golden-switch-or-migrating-from-gatsby-to-astro-in-under-9-days>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-09-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Astro](<https://devfeed.tech/topics/astro.md>), [gatsby](<https://devfeed.tech/topics/gatsby.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Claude](<https://devfeed.tech/topics/claude.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [React](<https://devfeed.tech/topics/react.md>), [Security](<https://devfeed.tech/topics/security.md>), [build performance](<https://devfeed.tech/topics/build-performance.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [astro](<https://devfeed.tech/tags/astro.md>), [build](<https://devfeed.tech/tags/build.md>), [claude](<https://devfeed.tech/tags/claude.md>), [dx](<https://devfeed.tech/tags/dx.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [migration](<https://devfeed.tech/tags/migration.md>), [react](<https://devfeed.tech/tags/react.md>), [security](<https://devfeed.tech/tags/security.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

Evil Martians describes migrating evilmartians.com from Gatsby to Astro in two weeks with Claude. The article outlines the site's Gatsby maintenance, security, and build-time costs, and discusses four bugs that could have shipped if the agent had operated without oversight.

### Source excerpt

367 posts, four years on Gatsby, and no dedicated team: here's how we moved evilmartians.com to Astro in two weeks with an LLM.

## Why Gusto hired Evil Martians for Sidekiq infrastructure

DevFeed: [Why Gusto hired Evil Martians for Sidekiq infrastructure](<https://devfeed.tech/articles/why-gusto-hired-evil-martians-for-sidekiq-infrastructure-19795.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/why-gusto-hired-evil-martians-for-sidekiq-infrastructure>)

Author: Irina Nazarova (inazarova@evilmartians.com)

Published: 2026-09-02T00:00:00Z

Content type: article

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Sidekiq](<https://devfeed.tech/topics/sidekiq.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [Redis](<https://devfeed.tech/topics/redis.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [case-study](<https://devfeed.tech/tags/case-study.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [rails](<https://devfeed.tech/tags/rails.md>), [redis](<https://devfeed.tech/tags/redis.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [scale](<https://devfeed.tech/tags/scale.md>), [sidekiq](<https://devfeed.tech/tags/sidekiq.md>)

### AI overview

This case study examines why Gusto hired Evil Martians to work on the Sidekiq and Redis infrastructure supporting background jobs in its large Rails monolith. It discusses the operational demands of running payroll-related jobs at scale and the tradeoffs involved when a company uses consultants instead of waiting for a perfect hire.

### Source excerpt

Gusto runs payroll for 500,000+ businesses on one of the largest Rails monoliths anywhere. Why a team this strong hired Evil Martians for Sidekiq at scale, what running background jobs at that size actually takes, and when to stop waiting for the perfect hire.

## Checks for safer review of rapidly generated TypeScript and React frontend code

DevFeed: [Checks for safer review of rapidly generated TypeScript and React frontend code](<https://devfeed.tech/articles/10-anti-ai-slop-moves-for-frontend-projects-going-faster-than-humans-can-review-19790.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/ten-anti-ai-slop-moves-for-frontend-projects-going-faster-than-humans-can-review>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-09-01T00:00:00Z

Content type: tutorial

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Front end](<https://devfeed.tech/topics/frontend.md>), [React](<https://devfeed.tech/topics/react.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [API](<https://devfeed.tech/topics/api.md>), [mutation-testing](<https://devfeed.tech/topics/mutation-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [agent-experience](<https://devfeed.tech/tags/agent-experience.md>), [agentic-development](<https://devfeed.tech/tags/agentic-development.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [api](<https://devfeed.tech/tags/api.md>), [code](<https://devfeed.tech/tags/code.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [dx](<https://devfeed.tech/tags/dx.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [llms](<https://devfeed.tech/tags/llms.md>), [mutation-testing](<https://devfeed.tech/tags/mutation-testing.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [react](<https://devfeed.tech/tags/react.md>), [testing](<https://devfeed.tech/tags/testing.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

This article presents ten checks for making rapidly generated TypeScript and React frontend code safer to trust and cheaper to review. It covers API contracts, generated types, boundary validation, mutation testing, dead-code detection, and mandatory checks.

### Source excerpt

Ten checks that catch what AI-written frontend code hides: contract codegen, boundary linting, mutation testing, and dead-code detectors.

## Why engineers should come to the SF Ruby Startup Conference in 2026

DevFeed: [Why engineers should come to the SF Ruby Startup Conference in 2026](<https://devfeed.tech/articles/why-engineers-should-come-to-the-sf-ruby-startup-conference-in-2026-19794.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/why-engineers-should-come-to-the-sf-ruby-startup-conference-in-2026>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-08-26T00:00:00Z

Content type: opinion

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Ruby](<https://devfeed.tech/topics/ruby.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Development](<https://devfeed.tech/topics/development.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [agentic](<https://devfeed.tech/tags/agentic.md>), [ai](<https://devfeed.tech/tags/ai.md>), [conference](<https://devfeed.tech/tags/conference.md>), [developer-community](<https://devfeed.tech/tags/developer-community.md>), [llms](<https://devfeed.tech/tags/llms.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [rails](<https://devfeed.tech/tags/rails.md>), [react](<https://devfeed.tech/tags/react.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

### AI overview

The SF Ruby Startup Conference is presented as an engineers' conference focused on Ruby, Rails, open source, production systems, and community connections. The article explains its emphasis on building Ruby success stories and highlights Inertia Rails as an approach for building Rails applications with React.

### Source excerpt

The SF Ruby Startup Conference is an engineers' conference: meet the people building Ruby open source, scaling Rails in production, and shaping what agentic Rails looks like next.

## Access control for AI agents on Rails: gating SQL with Action Policy

DevFeed: [Access control for AI agents on Rails: gating SQL with Action Policy](<https://devfeed.tech/articles/access-control-for-ai-agents-on-rails-gating-sql-with-action-policy-19778.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/access-control-for-ai-on-rails-gating-sql-with-action-policy>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-08-25T00:00:00Z

Content type: tutorial

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Access Control](<https://devfeed.tech/topics/access-control.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [agent observability](<https://devfeed.tech/topics/agent-observability.md>)

Tags: [access-control](<https://devfeed.tech/tags/access-control.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [llms](<https://devfeed.tech/tags/llms.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [prompt-injection](<https://devfeed.tech/tags/prompt-injection.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

This article explains how Evil Martians protected sensitive data in an internal Rails AI assistant that uses open-ended SQL analytics. It describes moving authorization from prompts into Action Policy so read-only database access also respects which rows and fields an employee may reveal.

### Source excerpt

Our Rails AI assistant had read-only SQL access and could still return peer review scores. Learn how we kept open-ended analytics in an in-app AI assistant while making database access honor application permissions.

## How to reduce Rails boot time with require-profiler and Bootsnap

DevFeed: [How to reduce Rails boot time with require-profiler and Bootsnap](<https://devfeed.tech/articles/get-in-human-cut-rails-boot-time-with-require-profiler-and-this-guide-19783.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/get-in-human-cut-rails-boot-time-with-require-profiler-and-this-guide>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-08-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Instrumentation](<https://devfeed.tech/topics/instrumentation.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [development](<https://devfeed.tech/tags/development.md>), [docker](<https://devfeed.tech/tags/docker.md>), [dx](<https://devfeed.tech/tags/dx.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

### AI overview

This guide explains how to profile and reduce Rails application boot time using require-profiler, sampling profilers, and Bootsnap. It describes profiling results from real projects, including a 40% reduction for a 200-component monolith, and covers cache precompilation and verification in Docker-based production builds.

### Source excerpt

Rails boot time is a DX metric in the AI age: meet require-profiler, learn to actually read sampling profilers, and see the pit stop that cut a 200-component monolith's boot by 40%.

## Ship agent skills like packages: discovery index, digests, and install sources

DevFeed: [Ship agent skills like packages: discovery index, digests, and install sources](<https://devfeed.tech/articles/ship-agent-skills-like-packages-discovery-index-digests-and-install-sources-19788.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/publishing-agent-skills-discovery-index>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-08-12T00:00:00Z

Content type: tutorial

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Agent Skills](<https://devfeed.tech/topics/agent-skills.md>), [Agent Skill](<https://devfeed.tech/topics/agent-skill.md>), [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [Publishing](<https://devfeed.tech/topics/publishing.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [make](<https://devfeed.tech/topics/make.md>), [rubygems](<https://devfeed.tech/topics/rubygems.md>)

Tags: [agent-experience](<https://devfeed.tech/tags/agent-experience.md>), [agent-skill](<https://devfeed.tech/tags/agent-skill.md>), [agent-skills](<https://devfeed.tech/tags/agent-skills.md>), [ai](<https://devfeed.tech/tags/ai.md>), [coding](<https://devfeed.tech/tags/coding.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [dx](<https://devfeed.tech/tags/dx.md>), [github](<https://devfeed.tech/tags/github.md>), [jamstack](<https://devfeed.tech/tags/jamstack.md>), [json](<https://devfeed.tech/tags/json.md>), [llms](<https://devfeed.tech/tags/llms.md>), [npm](<https://devfeed.tech/tags/npm.md>), [rubygems](<https://devfeed.tech/tags/rubygems.md>), [sha-256](<https://devfeed.tech/tags/sha-256.md>), [skills](<https://devfeed.tech/tags/skills.md>)

### AI overview

This tutorial explains how to publish agent skills so AI coding agents can discover and install them. It covers a .well-known/agent-skills/index.json discovery index, SHA-256 integrity digests, single-file, multi-file, and bundle packaging, multiple install commands, and hosting skills from a GitHub repository while re-hosting the served files on the publisher's domain.

### Source excerpt

How to publish agent skills so any AI coding agent can find and install them: the .well-known/agent-skills/index.json discovery index, SHA-256 integrity digests, single-file vs multi-file vs bundle packaging, and every install command. Worked from the catalog we just open-sourced.

## Fair by design: orchestrating background jobs in Ruby

DevFeed: [Fair by design: orchestrating background jobs in Ruby](<https://devfeed.tech/articles/fair-by-design-orchestrating-background-jobs-in-ruby-19782.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/fair-by-design-orchestrating-background-jobs-in-ruby>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-08-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Ruby](<https://devfeed.tech/topics/ruby.md>), [jobs](<https://devfeed.tech/topics/jobs.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [autoscaling](<https://devfeed.tech/topics/autoscaling.md>)

Tags: [autoscaling](<https://devfeed.tech/tags/autoscaling.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jobs](<https://devfeed.tech/tags/jobs.md>), [latency](<https://devfeed.tech/tags/latency.md>), [performance](<https://devfeed.tech/tags/performance.md>), [rails](<https://devfeed.tech/tags/rails.md>), [redis](<https://devfeed.tech/tags/redis.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [sidekiq](<https://devfeed.tech/tags/sidekiq.md>)

### AI overview

This tutorial examines fairness in Ruby background-job processing. It explains how queue latency affects quality of service, why adding workers or autoscaling may be limited by shared resources and operational cost, and introduces background-job prioritization as a way to address bottlenecks.

### Source excerpt

Are you treating your users fairly? They could be stuck in the queue while a greedy user monopolizes resources. And you might not even know it! In this post, you'll see if it's time for you to take background job prioritization seriously, and how to make it fair for all users.

## 5 best practices for preventing chaos in Tailwind CSS

DevFeed: [5 best practices for preventing chaos in Tailwind CSS](<https://devfeed.tech/articles/5-best-practices-for-preventing-chaos-in-tailwind-css-19777.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/5-best-practices-for-preventing-chaos-in-tailwind-css>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-08-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Tailwind CSS](<https://devfeed.tech/topics/tailwind.md>), [CSS Framework](<https://devfeed.tech/topics/css-framework.md>), [Design system](<https://devfeed.tech/topics/design-system.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [best-practices](<https://devfeed.tech/tags/best-practices.md>), [code](<https://devfeed.tech/tags/code.md>), [css](<https://devfeed.tech/tags/css.md>), [design-system](<https://devfeed.tech/tags/design-system.md>), [development](<https://devfeed.tech/tags/development.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [tailwind](<https://devfeed.tech/tags/tailwind.md>), [tailwind-css](<https://devfeed.tech/tags/tailwind-css.md>)

### AI overview

This tutorial presents best practices for using Tailwind CSS as applications grow, emphasizing the importance of a consistent design system and reusable design tokens to keep class lists and interfaces maintainable.

### Source excerpt

Tailwind CSS has become a very popular CSS framework, and it can speed up development. But using it without proper caution can add mayhem to your code. Learn best practices to avoid getting swept away!

## +14% activated users for AppSignal: designing a new homepage in code

DevFeed: [+14% activated users for AppSignal: designing a new homepage in code](<https://devfeed.tech/articles/14-activated-users-for-appsignal-designing-a-new-homepage-in-code-19787.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/plus-14-percent-activated-users-for-appsignal-designing-a-new-homepage-in-code>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-08-04T00:00:00Z

Content type: article

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Application Performance Management (APM)](<https://devfeed.tech/topics/apm.md>), [error tracking](<https://devfeed.tech/topics/error-tracking.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Code](<https://devfeed.tech/topics/code.md>), [Figma](<https://devfeed.tech/topics/figma.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>)

Tags: [agentic-development](<https://devfeed.tech/tags/agentic-development.md>), [ai](<https://devfeed.tech/tags/ai.md>), [apm](<https://devfeed.tech/tags/apm.md>), [case-study](<https://devfeed.tech/tags/case-study.md>), [code](<https://devfeed.tech/tags/code.md>), [design](<https://devfeed.tech/tags/design.md>), [design-for-devtools](<https://devfeed.tech/tags/design-for-devtools.md>), [developer-marketing](<https://devfeed.tech/tags/developer-marketing.md>), [developer-products](<https://devfeed.tech/tags/developer-products.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [error-tracking](<https://devfeed.tech/tags/error-tracking.md>), [figma](<https://devfeed.tech/tags/figma.md>), [product-development](<https://devfeed.tech/tags/product-development.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

### AI overview

Evil Martians designed and shipped a new AppSignal homepage primarily in code, combining code, Figma, and AI during exploration and prototyping. The selected direction was validated through an A/B test that showed a 14% increase in activated users over the previous site.

### Source excerpt

We designed and shipped a fresh AppSignal homepage in code, then validated it in an A/B test with a 14% lift in activated users.

## How to protect an npm package from supply chain attacks

DevFeed: [How to protect an npm package from supply chain attacks](<https://devfeed.tech/articles/the-secure-way-to-release-an-npm-package-in-2026-19792.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/the-secure-way-to-release-an-npm-package>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-07-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [npm](<https://devfeed.tech/topics/npm.md>), [supply-chain-security](<https://devfeed.tech/topics/supply-chain-security.md>), [Security](<https://devfeed.tech/topics/security.md>), [ci](<https://devfeed.tech/topics/ci.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [ci](<https://devfeed.tech/tags/ci.md>), [developer-community](<https://devfeed.tech/tags/developer-community.md>), [dx](<https://devfeed.tech/tags/dx.md>), [github](<https://devfeed.tech/tags/github.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [monorepo](<https://devfeed.tech/tags/monorepo.md>), [npm](<https://devfeed.tech/tags/npm.md>), [npm-packages](<https://devfeed.tech/tags/npm-packages.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [performance-scale](<https://devfeed.tech/tags/performance-scale.md>), [security](<https://devfeed.tech/tags/security.md>), [supply-chain](<https://devfeed.tech/tags/supply-chain.md>), [supply-chain-security](<https://devfeed.tech/tags/supply-chain-security.md>)

### AI overview

This tutorial explains how to protect npm packages from supply chain attacks. It covers Trusted Publishers, publishing restrictions, organization-wide 2FA, GitHub tag controls, pinned CI actions, CI security linting, cooldowns for new versions, and staged-release approval.

### Source excerpt

How to protect your npm package from being stolen in a supply chain attack and improve its position in security ratings

## Which AI actually reads your site? Two months of LLM traffic, measured

DevFeed: [Which AI actually reads your site? Two months of LLM traffic, measured](<https://devfeed.tech/articles/which-ai-actually-reads-your-site-two-months-of-llm-traffic-measured-19793.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/which-ai-actually-reads-your-site-two-months-of-llm-traffic-measured>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-07-21T00:00:00Z

Content type: article

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Claude Code](<https://devfeed.tech/topics/claude-code.md>), [ChatGPT](<https://devfeed.tech/topics/chatgpt.md>), [Google Analytics](<https://devfeed.tech/topics/google-analytics.md>), [Netlify](<https://devfeed.tech/topics/netlify.md>), [Back end](<https://devfeed.tech/topics/backend.md>)

Tags: [agent-experience](<https://devfeed.tech/tags/agent-experience.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [backend](<https://devfeed.tech/tags/backend.md>), [chatgpt](<https://devfeed.tech/tags/chatgpt.md>), [claude-code](<https://devfeed.tech/tags/claude-code.md>), [dx](<https://devfeed.tech/tags/dx.md>), [google-analytics](<https://devfeed.tech/tags/google-analytics.md>), [jamstack](<https://devfeed.tech/tags/jamstack.md>), [llm](<https://devfeed.tech/tags/llm.md>), [llms](<https://devfeed.tech/tags/llms.md>), [logs](<https://devfeed.tech/tags/logs.md>), [measurement](<https://devfeed.tech/tags/measurement.md>), [netlify](<https://devfeed.tech/tags/netlify.md>)

### AI overview

Evil Martians measured two months of server-side LLM traffic to its website. The study found that ChatGPT primarily fetches rendered HTML, while Claude Code requests Markdown most of the time through content negotiation. Most llms.txt requests came from bots other than the intended AI assistants, and a hidden AI hint received no measurable hits.

### Source excerpt

We told you to measure. So of course we did it ourselves too: two months of server-side LLM traffic to evilmartians.com. Find out which agents read HTML, which read Markdown, what llms.txt actually does, and the one technique that got zero hits.

## The joy of Inertia Rails: painting your own with 50 happy little lines

DevFeed: [The joy of Inertia Rails: painting your own with 50 happy little lines](<https://devfeed.tech/articles/the-joy-of-inertia-rails-painting-your-own-with-50-happy-little-lines-19791.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/the-joy-of-inertia-rails-painting-your-own-with-50-happy-little-lines>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-07-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [Single-page application (SPA)](<https://devfeed.tech/topics/spa.md>), [React](<https://devfeed.tech/topics/react.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [hotwire](<https://devfeed.tech/tags/hotwire.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [rails](<https://devfeed.tech/tags/rails.md>), [react](<https://devfeed.tech/tags/react.md>), [turbo](<https://devfeed.tech/tags/turbo.md>)

### AI overview

This tutorial rebuilds the Inertia Rails protocol on a real Rails app using a 50-line React client and a 16-line Rails renderer. It explains how rendering JSON instead of HTML on later visits connects server-owned navigation with a frontend component model, and audits what the official gem adds.

### Source excerpt

Inertia is Turbolinks with one twist: render JSON instead of HTML on the second visit. We rebuild the whole protocol on a real Rails app with a 50-line client and a 16-line server, then audit what the real gem adds on top.

## Using Storybook Workbench to audit AI-generated UIs for dead components and accessibility bugs

DevFeed: [Using Storybook Workbench to audit AI-generated UIs for dead components and accessibility bugs](<https://devfeed.tech/articles/storybook-workbench-audit-vibe-coded-uis-and-find-hidden-bugs-in-hours-19789.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/storybook-workbench-audit-vibe-coded-uis-and-find-hidden-bugs-in-hours>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-07-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Storybook](<https://devfeed.tech/topics/storybook.md>), [Agent Skills](<https://devfeed.tech/topics/agent-skills.md>), [agentic-coding](<https://devfeed.tech/topics/agentic-coding.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Design system](<https://devfeed.tech/topics/design-system.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [agent-experience](<https://devfeed.tech/tags/agent-experience.md>), [agent-skills](<https://devfeed.tech/tags/agent-skills.md>), [agentic-coding](<https://devfeed.tech/tags/agentic-coding.md>), [agentic-development](<https://devfeed.tech/tags/agentic-development.md>), [ai](<https://devfeed.tech/tags/ai.md>), [bugs](<https://devfeed.tech/tags/bugs.md>), [design](<https://devfeed.tech/tags/design.md>), [design-engineering](<https://devfeed.tech/tags/design-engineering.md>), [design-for-devtools](<https://devfeed.tech/tags/design-for-devtools.md>), [design-system](<https://devfeed.tech/tags/design-system.md>), [dx](<https://devfeed.tech/tags/dx.md>), [storybook](<https://devfeed.tech/tags/storybook.md>)

### AI overview

The article presents Storybook Workbench, a bundle of Agent Skills that audits AI-generated web applications by rendering components as Storybook stories. It describes finding dead components, coexisting design systems, conditional component states, and accessibility bugs, based on an internal audit of an agent-coded app.

### Source excerpt

Storybook Workbench is a bundle of Agent Skills that turn Storybook into an audit layer for AI-generated UIs: find dead components, design-system drift, and hidden accessibility bugs.

## AI vs. human illustrators? AI + human illustrators!

DevFeed: [AI vs. human illustrators? AI + human illustrators!](<https://devfeed.tech/articles/ai-vs-human-illustrators-ai-human-illustrators-19779.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/ai-vs-human-illustrators-ai-plus-human-illustrators>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-07-01T00:00:00Z

Content type: article

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [design](<https://devfeed.tech/tags/design.md>), [design-for-devtools](<https://devfeed.tech/tags/design-for-devtools.md>), [developer-community](<https://devfeed.tech/tags/developer-community.md>), [illustration](<https://devfeed.tech/tags/illustration.md>), [production](<https://devfeed.tech/tags/production.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

Evil Martians describes replacing attempts at fully automated AI illustrations with a human-in-the-loop workflow. The blog editor handles the first mile, AI performs most of the work, and a dedicated illustrator completes the final mile to produce illustrations the team considers high quality.

### Source excerpt

Evil Martians went from attempting to one-shot AI illustrations to a human-in-the-loop workflow with a dedicated illustrator. When a human owns first and last mile of this process, illustrations are crisp, high-quality and fun. Go BTS of our illustration production.

## Most MCP servers don't need to exist. Your case might be an exception.

DevFeed: [Most MCP servers don't need to exist. Your case might be an exception.](<https://devfeed.tech/articles/most-mcp-servers-don-t-need-to-exist-your-case-might-be-an-exception-19786.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/most-mcp-servers-dont-need-to-exist-your-case-might-be-an-exception>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-06-30T00:00:00Z

Content type: opinion

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [API](<https://devfeed.tech/topics/api.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [ai](<https://devfeed.tech/tags/ai.md>), [analysis](<https://devfeed.tech/tags/analysis.md>), [api](<https://devfeed.tech/tags/api.md>), [cli](<https://devfeed.tech/tags/cli.md>), [dx](<https://devfeed.tech/tags/dx.md>), [llms](<https://devfeed.tech/tags/llms.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [mcp-server](<https://devfeed.tech/tags/mcp-server.md>)

### AI overview

This article presents a framework for deciding whether a product needs an MCP server or would be better served by a direct API, CLI, or skill. It argues that MCP should be treated as a product interface with stable, narrow, opinionated operations and ongoing maintenance, rather than as an automatic AI feature.

### Source excerpt

An MCP server is a product interface for the age of agents, not an AI feature itself. This post presents a framework for deciding between direct API calls, CLI, Skills, and MCP, detailing the architectural signals, the hidden costs, and the failure modes you should know about before embarking on an MCP quest.

## Choose your fighter: benchmarking 5 WebSocket servers for Node.js

DevFeed: [Choose your fighter: benchmarking 5 WebSocket servers for Node.js](<https://devfeed.tech/articles/choose-your-fighter-benchmarking-5-websocket-servers-for-node-js-19781.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/choose-your-fighter-benchmarking-5-websocket-servers-for-nodejs>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-06-24T00:00:00Z

Content type: comparison

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [Socket.IO](<https://devfeed.tech/topics/socket-io.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [Latency](<https://devfeed.tech/topics/latency.md>)

Tags: [benchmark](<https://devfeed.tech/tags/benchmark.md>), [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [frontend-real-time](<https://devfeed.tech/tags/frontend-real-time.md>), [latency](<https://devfeed.tech/tags/latency.md>), [network](<https://devfeed.tech/tags/network.md>), [node](<https://devfeed.tech/tags/node.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-scale](<https://devfeed.tech/tags/performance-scale.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

Evil Martians compare five WebSocket server options for Node.js: Socket.io, Socket.io with Connection State Recovery, uWebSockets.js, AnyCable OSS, and AnyCable Pro. The benchmark finds similar raw latency at 10,000 subscribers, while resilience under network drops, reconnect storms, and broadcast load separates the systems. AnyCable delivered all messages during simulated drops and led broadcast throughput; the other systems showed different recovery, connection-capacity, or message-loss trade-offs.

### Source excerpt

Evil Martians benchmarked five WebSocket servers for Node.js: Socket.io, uWebSockets.js, and AnyCable (OSS and Pro). How we caught our own load generator lying, and how to make WebSocket benchmark numbers honest.

## Building a design system specced for engineers and agents

DevFeed: [Building a design system specced for engineers and agents](<https://devfeed.tech/articles/building-a-design-system-specced-for-engineers-and-agents-19780.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/building-a-design-system-specced-for-engineers-and-agents>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-06-17T00:00:00Z

Content type: article

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Design system](<https://devfeed.tech/topics/design-system.md>), [User interface design](<https://devfeed.tech/topics/ui-design.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [cursor](<https://devfeed.tech/topics/cursor.md>), [Claude](<https://devfeed.tech/topics/claude.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-assisted-coding](<https://devfeed.tech/tags/ai-assisted-coding.md>), [claude](<https://devfeed.tech/tags/claude.md>), [components](<https://devfeed.tech/tags/components.md>), [cursor](<https://devfeed.tech/tags/cursor.md>), [design](<https://devfeed.tech/tags/design.md>), [design-system](<https://devfeed.tech/tags/design-system.md>), [devtools](<https://devfeed.tech/tags/devtools.md>), [dx](<https://devfeed.tech/tags/dx.md>), [figma](<https://devfeed.tech/tags/figma.md>), [llms](<https://devfeed.tech/tags/llms.md>), [ui-design](<https://devfeed.tech/tags/ui-design.md>)

### AI overview

Evil Martians describes how it built a design system for Currents in seven weeks. The system standardized UI decisions and was structured to be readable by engineers and AI-assisted coding tools, including Cursor and Claude, helping the lean team reuse components and maintain a consistent product interface.

### Source excerpt

Coding without design guidelines can leave teams with an inconsistent UI design and a complex feature development process. Here's how we built a design system for Currents that's readable by engineers and AI agents.

## 2 Martians, greenfield to MVP in 4 weeks: agentic coding on Rails

DevFeed: [2 Martians, greenfield to MVP in 4 weeks: agentic coding on Rails](<https://devfeed.tech/articles/2-martians-greenfield-to-mvp-in-4-weeks-agentic-coding-on-rails-19776.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/2-martians-greenfield-to-mvp-in-4-weeks-agentic-coding-on-rails>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-06-09T00:00:00Z

Content type: article

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [agentic-coding](<https://devfeed.tech/topics/agentic-coding.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [coding](<https://devfeed.tech/topics/coding.md>), [React](<https://devfeed.tech/topics/react.md>), [Storybook](<https://devfeed.tech/topics/storybook.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [stripe](<https://devfeed.tech/topics/stripe.md>)

Tags: [agentic](<https://devfeed.tech/tags/agentic.md>), [agentic-coding](<https://devfeed.tech/tags/agentic-coding.md>), [ai](<https://devfeed.tech/tags/ai.md>), [app](<https://devfeed.tech/tags/app.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [building](<https://devfeed.tech/tags/building.md>), [case-study](<https://devfeed.tech/tags/case-study.md>), [coding](<https://devfeed.tech/tags/coding.md>), [designer](<https://devfeed.tech/tags/designer.md>), [developer-marketing](<https://devfeed.tech/tags/developer-marketing.md>), [developer-products](<https://devfeed.tech/tags/developer-products.md>), [google-analytics](<https://devfeed.tech/tags/google-analytics.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [payments](<https://devfeed.tech/tags/payments.md>), [platform](<https://devfeed.tech/tags/platform.md>), [product](<https://devfeed.tech/tags/product.md>), [product-development](<https://devfeed.tech/tags/product-development.md>), [production](<https://devfeed.tech/tags/production.md>), [prototype](<https://devfeed.tech/tags/prototype.md>), [rails](<https://devfeed.tech/tags/rails.md>), [react](<https://devfeed.tech/tags/react.md>), [skills](<https://devfeed.tech/tags/skills.md>), [storybook](<https://devfeed.tech/tags/storybook.md>)

### AI overview

A designer and an engineer describe how they shipped Thicket, a production MVP, in four weeks using agentic coding with Rails, Inertia, React, and Storybook. They discuss their workflow, project-specific skills, user validation, and the resulting open-source practices.

### Source excerpt

A designer and an engineer shipped a production MVP in four weeks on Rails + Inertia. In this post, we share our agentic coding stack, the skills we built, and why it clicked.