# Evil Martians > Evil Martians is a developer tools consultancy that helps startups build AI agents, AI-native products, scale infrastructure, and reach product-market fit. Founded in 2006, we work with 40+ developer tools startups each year, many backed by Y Combinator. Our verticals are AI agents and AI-native development, developer tools, infrastructure, and cybersecurity. Our core stack spans Ruby on Rails, TypeScript, Python, Go, Rust, React, and Next.js. We are the leading Ruby on Rails consultancy and build AI Harnesses that make agentic coding more productive for Rails and TypeScript teams. - Founded: 2006 - Website: https://evilmartians.com - GitHub: https://github.com/evilmartians - Contact: https://evilmartians.com/contact-us Evil Martians is a product development consultancy for developer tools startups. We design and develop high-performance developer tools that scale. Our core verticals are AI agents and AI-native development, developer tools, infrastructure, and cybersecurity. We are the leading Ruby on Rails consultancy—we authored the book Layered Design for Ruby on Rails Applications, maintain dozens of Rails open source projects, and build AI Harnesses that encode architectural patterns into AI coding tools for more productive agentic coding. We work with 40+ developer tools startups each year, many backed by Y Combinator. Our core stack spans Ruby on Rails, TypeScript, Python, Go, Rust, React, and Next.js. We help open-source devtools companies build commercial products. 65% of our clients raise Series A or B within 1–3 years. 8 startups grew from seed to unicorn with our help. 25B+ total downloads of our open source projects. ## Offices - **New York**: 77 Sands St. Brooklyn, New York 11201 - **California**: 535 Mission St. San Francisco, California 94105 - **Portugal**: Rua Alexandre Oneill, 38, Porto 4400-008 - **Japan**: 19F Osaka Umeda Twin Towers North, 8-1 Kakuda-cho, Kita‑ku, Osaka 530-0017 ## Services ### Agent Experience URL: https://evilmartians.com/services/agent-experience Build Agent Experience for your product: discovery optimization, agent-friendly APIs and CLIs, and security guardrails against abuse. 80% of databases on Neon are created by agents, not humans. 30% of new Supabase signups come from AI builder platforms. 10% of Vercel signups arrive via ChatGPT. The next wave of developer tool growth is driven by AI agents that discover, provision, and operate infrastructure on behalf of developers. This isn't about building agents. It's about building _for_ agents. Agent Experience (AX)—a term coined by Matt Billmann at Netlify—extends Developer Experience into a world where agents increasingly act on developers' behalf. We help devtools, infrastructure, and security products become first-class citizens in agentic workflows. #### Discovery optimization Agents don't watch demo videos, respond to ads, or care about your brand. They search the web, read docs, scan repos—and pick whichever tool has the clearest technical content. If your docs are rendered client-side, gated behind auth, or buried in PDFs, you're invisible. Mintlify reports that nearly half of docs traffic now comes from AI agents. Discovery happens two ways. Your buyers—founders, engineering leads, developers—ask LLMs directly: "best WebSocket library for Rails," "who can help us scale Kubernetes." And agents acting on their behalf evaluate tools programmatically, parsing docs and benchmarks to make provisioning decisions. Both paths reward the same thing: clear, structured, machine-readable content. We start with your ICP: who's searching for tools like yours, what stacks do they use, and what will they ask? We research your target market—engineering blogs, job postings, open source activity, founder profiles—then align your content so LLMs surface your product for those queries. This means structured content formats (`llms.txt`, per-page `.md` endpoints, JSON-LD schema, `ai.txt`) but also the content strategy itself: tech stack mentions calibrated to your market, client stories with quantified outcomes, and descriptions that read naturally to humans but signal clearly to machines. We built this methodology for [evilmartians.com](/). We researched 90+ target companies across AI agents, developer tools, infrastructure, and cybersecurity. We aligned every page—services, client stories, blog posts—to the queries their buyers ask. Our `llms.txt` serves structured content that LLMs consume directly. Every page has a `.md` version. We wrote the playbook by shipping it ourselves. #### Agent-friendly CLIs and APIs If your product requires a browser to sign up, create resources, or check logs, agents will use a competitor that doesn't. Supabase, Railway, Vercel, Stripe—the companies winning agent-driven growth all share one pattern: programmatic access from signup to production. We build that layer. - **Programmatic signup and provisioning** — account creation, API key generation, resource provisioning, all via CLI. No browser tab required - **CLI-complete workflows** — we audit existing CLIs for gaps where agents hit a wall and fall back to "please visit the dashboard" - **Structured output and feedback loops** — `--json` flags, machine-readable error codes, webhooks and health checks that let agents verify and self-correct - **MCP server integrations** — expose your product's capabilities directly to agent workflows so they can invoke your tool without leaving the editor We proved this on our own projects. **AnyCable+ CLI**, built with [Terminalwire](https://terminalwire.com/), lets users sign up, create [AnyCable](https://anycable.io/) instances, manage credentials, and check status—all from the terminal. #### Security guardrails Everything that makes a product agent-friendly is also what bad actors exploit at machine speed. Heroku, GitLab, Travis CI, and Fly.io all killed or restricted free tiers after automated abuse overwhelmed them. Railway spent a third to half of all engineering cycles fighting fraud. Companies that skip fraud _prevention_ end up fighting it reactively. The reactive response damages their own product. We build the guardrails that prevent this. - **Agent-aware authentication** — token-based auth where every agent action is traceable to a human identity, without browser redirects or CAPTCHAs - **Least-privilege authorization** — agent permissions scoped to the minimum required for each operation, enforced as code - **Abuse detection and blocking** — WAF configuration, rate limiting, and bot detection tuned for agent traffic patterns - **Free tier verification** — identity verification before granting compute access, keeping the acquisition funnel open while filtering out abuse #### AI Harnesses AI coding tools produce generic code by default. An AI harness encodes your architecture, conventions, and constraints so agent output matches what your team would actually write. Here's what that looks like in practice. - **[Layered Rails skills](https://github.com/palkan/skills)** — architecture-aware rules that enforce service objects, query objects, and policy patterns - **[Inertia Rails skills](https://github.com/inertia-rails/skills)** — integration-specific constraints for Inertia.js and Rails - **SAST rules tuned for LLM patterns** — catching the mistakes agents make most: SQL injection via string interpolation, path traversal, SSRF, hardcoded secrets - **CI guardrails with [TestProf](https://test-prof.evilmartians.io/)** — agents generate tests prolifically. Without constraints, they bloat your suite and CI time. TestProf keeps it fast - **Dev Containers for isolated execution** — agents build, test, and iterate in sandboxed environments, not on your machine or in production - **`CLAUDE.md` and `AGENTS.md` rules** — project-level instructions that shape every AI interaction The harness approach works because it meets agents where they are: define constraints upfront, let the agent operate within them. At the [SF Bay Area Ruby Meetup](/events/the-silicon-heel-sf-ruby-meetup), Vladimir Dementyev showed that an agent with a proper harness changed 33 files with zero unprotected actions. Without one, it changed 52 files and left 7 unprotected. #### Agent observability When agents act on behalf of your users, you need visibility into what they're doing. Traditional APM wasn't designed for multi-step agent workflows where one user action triggers dozens of LLM calls and branching decisions. We built [AgentPrism](/chronicles/debug-ai-fast-agent-prism-open-source-library-visualize-agent-traces), an open source React component library for visualizing AI agent traces. Debug agent behavior without reading raw logs. For real-time AI, we built [AnyCable](https://anycable.io/) support for [LLM streaming](/chronicles/anycable-rails-and-the-pitfalls-of-llm-streaming), handling token-by-token delivery over WebSockets at scale. ### AI harness URL: https://evilmartians.com/services/ai-harness Your AI coding agents can do far more. Evil Martians build the harness that unlocks your team's full productivity potential. Point Cursor, Claude Code, or Codex at your codebase and it simply reaches for two patterns: the most common one from its training data, and the one already most common in your repo, usually legacy code. An AI harness fixes that. [GitHub](https://github.blog/ai-and-ml/github-copilot/how-github-copilot-is-getting-better-at-understanding-your-code/) describes how coding agents read your open files to match the surrounding code. #### What you're aiming for - Agent output following the architecture your team agreed on, keeping the codebase consistent as it grows. - Every engineer shipping at the level of your strongest one, with hard-won conventions encoded and shared across the team. - AI spend you can account for: clarity on which tools and workflows pay off, and tokens going where they earn their keep. - One playbook for the whole team, so engineers, designers, and writers pull from the same source of truth. #### The AI harnesses Evil Martians build An AI harness encodes your conventions, architecture, and guardrails as deterministic tools, skills, evals, and telemetry. We build it for your stack, whether you ship Rails, TypeScript, Go, or Python, so agents produce code your senior engineers would approve. - **Skills and a shared marketplace**: your team's best practices and unique expertise, encoded once and reused by everyone. Designers encode brand guidelines, writers distribute tone of voice, and business folks share ICP and research skills with the whole team. - **Guardrails that hold as you grow**: when you ship a new design system or architectural pattern, agents default to the legacy version because there's more of it in the code. We ship deterministic linters and hooks that catch the divergence and tell the agent how to follow the new convention. - **Evals**: tests that confirm skills behave correctly and fire on the right requests. - **Observability**: telemetry and a dashboard into skill usage and gaps, built on AgentPrism, our open source agent-trace visualization library. - **Cost control**: telemetry on where your AI tokens go, with expensive AI calls swapped for cheaper deterministic checks where the task allows. Every rule you can encode as a tool is [a rule the LLM cannot forget](/chronicles/stop-writing-rules-in-agents-md-use-agent-hooks-and-nano-staged-instead). #### What we've already shipped this way Evil Martians [cut the Rails test suite and CI time in half](/chronicles/the-whop-chop-how-we-cut-a-rails-test-suite-and-ci-time-in-half) for the Rails unicorn [Whop](/clients/whop), then scoped a full AI harness for their codebase: automated linting on skills, evals that confirmed skills behaved correctly and fired on the right requests, telemetry into skill usage and gaps, and gating that caught regressions before they shipped. In February 2026, Tether invested $200 million in [Whop](/clients/whop), driving the valuation to a whopping $1.6 billion. Evil Martians added LLM safeguards to [Playbook](/clients/playbook), cutting engineering managers' PR review time by filtering routine issues before a human reads the pull request. For the [fastest-growing AI support startup](/clients/ai-startup-under-nda), Evil Martians run forward-deployed engineering at scale. Internally, Evil Martians run the same harness architecture across our 50-person distributed team. The skills, hooks, conventions, and dashboards we use every day are the same ones we bring into client codebases. #### What it takes to start Over 20 years of consulting startups, we've found that a 2-week engagement is the right way to start. It's enough time for us to ship something valuable, and enough time for you to get a real sense of what Martians can deliver. A 2-week sprint is $14,000. A senior Martian engineer works alongside your team for two weeks. We read your Git history, strategize with your principal engineers, and ship the first working version of the harness. **From you**: access to your codebase and Git history, plus time with your principal engineers to set direction. **From us**: a senior Martian for two weeks at $14,000. Extendable at $7,000 per week. ### Product development URL: https://evilmartians.com/services/product-development Forward-deployed engineers who ship your product from PoC to PMF: embedded in your repo, your stack, your cadence. We embed directly with your team—your repo, your Slack, your standups. Not consultants who hand off a deck, but forward-deployed engineers who ship production code from day one. We've built products across AI, developer tools, cybersecurity, fintech, healthcare, and e-commerce. We come when needed and disconnect when done, so you hire full-time at your own pace. #### AI products In our long-term partnership with [StackBlitz](/clients/stackblitz), we helped scale [bolt.new](https://bolt.new/) from zero to $40M+ ARR in five months. We've been [StackBlitz](/clients/stackblitz)'s engineering partner since 2021, building the Ruby on Rails backend, enterprise features, and performance infrastructure that enabled bolt.new to become one of the fastest-growing AI products ever launched. For [Recraft](/clients/recraft), an AI image generation platform with $42M in funding, we built a custom Discord bot as an acquisition channel. For [BetterUp](/clients/betterup), we built their React frontend and scalable AWS backend for the AI coaching platform. For [GMI Cloud](/clients/gmicloud), we delivered their marketing site in weeks—$82M+ in Series A funding; they needed to move fast. We also build autonomous AI-powered workflows: LLM integrations, agent infrastructure, and the evaluation tooling that keeps AI systems reliable in production. #### Developer tools and infrastructure For [HTTPie](/clients/httpie), the API testing tool, we led the product design that hit 4th Product of the Day on Product Hunt. For [Steel](/clients/steel), an open source browser API, we built backend services within their TypeScript monorepo. For [Playbook](/clients/playbook), a cloud platform for creatives with 700K+ users, we built serverless TypeScript features, ML pipelines, and GraphQL API optimizations on Google Cloud. For [NATS](/clients/nats), we made their Ruby SDK 3x faster. For [Akeero](/clients/akeero), an AWS security audit platform, we built real-time multi-user editing with our open source sync library [Logux](/products/logux). For [Rootly](/clients/rootly), we redesigned the incident management platform frontend and backend. #### Cybersecurity [Teleport](/clients/teleport) is a Go-based privileged access management platform. We built access control plugins and transformed their documentation into a customer acquisition channel. They reached unicorn status. [Tines](/clients/tines) automates security workflows. We designed and built the product with 100x performance improvements in target areas. They reached unicorn status. For [Wallarm](/clients/wallarm), an API security platform protecting 20,000+ apps, we optimized their Go-based event processing pipeline for high-throughput security data. For [Certora](/clients/certora), a blockchain security startup backed by Tiger Global, we built a [VS Code extension](/chronicles/smartly-contracted-ui-design-and-frontend-for-certora) for smart contract verification in two months—from design sprint to marketplace. For [Ghost Security](/clients/ghost-security), we designed and built the enterprise security platform MVP. #### Ruby on Rails We are the leading Ruby on Rails consultancy. Our team created [TestProf](https://test-prof.evilmartians.io/), [AnyCable](https://anycable.io/), [Action Policy](https://actionpolicy.evilmartians.io/), and dozens of other open source tools the Rails ecosystem depends on. Our Head of Backend, Vladimir Dementyev, is the author of [Layered Design for Ruby on Rails Applications](https://www.packtpub.com/en-us/product/layered-design-for-ruby-on-rails-applications-9781801813785)—now in its second edition. We run the [SF Bay Area Ruby Meetup](/events/the-silicon-heel-sf-ruby-meetup). Here's who runs Rails with us. [bolt.new](/clients/stackblitz)—$40M+ ARR, the Rails backend behind one of the fastest-growing AI products ever launched. [Doximity](/clients/doximity)—used by 80% of US doctors. [Tines](/clients/tines)—security automation unicorn, $90M+ raised. [BetterUp](/clients/betterup)—AI coaching platform, $570M+ in funding. [Whop](/clients/whop)—$150M+ in yearly payments on a Rails monolith. [ClickFunnels](/clients/clickfunnels)—the sales funnel platform, AnyCable at scale. [Rootly](/clients/rootly)—YC-backed incident management on Hotwire. [Fountain](/clients/fountain)—YC-backed HR tech. [Chowbus](/clients/chowbus)—food delivery platform. [Healthie](/clients/healthie)—virtual-first healthcare. Lago—open source billing, $22M+ raised. We know Rails inside out because we build the tools the ecosystem runs on. #### Fullstack TypeScript We build TypeScript frontends and backends across React, Next.js, Node.js, and Electron. For [Steel](/clients/steel), an open source browser API, we built backend services within their TypeScript monorepo. For [Playbook](/clients/playbook), a cloud platform for creatives with 700K+ users, we built serverless TypeScript features, ML pipelines, and GraphQL API optimizations on Google Cloud. For [HTTPie](/clients/httpie), we built the desktop app with React, TypeScript, and Electron. For [Aptos](/clients/aptos), a Layer-1 blockchain with $350M+ in funding, we built the developer portal and AI assistant with React and Next.js. For [Certora](/clients/certora), we built a [VS Code extension](/chronicles/smartly-contracted-ui-design-and-frontend-for-certora) with TypeScript and Svelte. For [Blockscout](/clients/blockscout), the open source blockchain explorer, we designed and built the React frontend. We also maintain open source TypeScript projects used by millions: [Nano ID](https://github.com/ai/nanoid) (111M weekly npm downloads), [PostCSS](https://postcss.org/), [Nano Stores](https://github.com/nanostores/nanostores), and [size-limit](https://github.com/ai/size-limit). #### Fintech For [Aptos](/clients/aptos), a Layer-1 blockchain, we built the core developer portal and AI assistant. For [Fund That Flip](/clients/fund-that-flip), a real estate financing platform, we shipped full-stack features across their investment pipeline. For [Tesote](/clients/tesote), a treasury management platform for CFOs, we built bank integrations and monitoring systems. For [Blockscout](/clients/blockscout), the open source blockchain explorer, we designed and built the frontend. #### Healthcare and edtech For [Healthie](/clients/healthie), a virtual-first healthcare SaaS, we migrated their real-time features to [AnyCable](https://anycable.io/)—our own open source WebSocket infrastructure. For [Doximity](/clients/doximity), a digital platform for medical professionals, we [integrated Go-powered real-time features](/chronicles/growing-pains-and-a-dose-of-go-real-time-features-for-this-rails-app) into their Rails app. For [2U](/clients/2u), a large edtech platform, we executed a GraphQL migration with zero downtime. #### E-commerce and marketplaces For [Whop](/clients/whop), we [cut their Rails test suite and CI time in half](/chronicles/the-whop-chop-how-we-cut-a-rails-test-suite-and-ci-time-in-half) and [migrated from PostgreSQL to PlanetScale with zero downtime](/chronicles/migrating-whop-from-postgresql-to-planetscale-zero-downtime). For [Zipline](/clients/zipline), a retail communication platform, we improved infrastructure and built key product features with large-scale performance optimization. For [Groupon](/clients/groupon), we spent six years as part of the core tech team—scaling, shipping features, and defending against DDoS attacks. #### When to engage There are several points where working with us makes the most sense. **Right after a funding round**, when there's pressure to ship and hiring takes months. **At the scaling stage**, when you need specific expertise—AI integration, real-time infrastructure, performance optimization—that doesn't justify a full-time hire. **Pre-PMF**, when you need to validate fast: our design sprints have launched products in as little as two weeks. Many of our clients—including several backed by Y Combinator—started with us at this stage. We work with TypeScript, Python, Go, Ruby on Rails, Rust, and React. We charge $7,000/week per engineer. We run 2–3 week sprints with clear deliverables, focused on what matters for the business. ### Design for devtools URL: https://evilmartians.com/services/design-developer-tool CLI, dashboard, SDK, and AI product interfaces that developers actually love: we design UX for developer tools, not consumer apps. Most consumer app design patterns break when applied to developer tools. Developers are expert users with different needs: information density over whitespace, keyboard shortcuts over click targets, customizable layouts over guided flows. We've been designing interfaces for this audience since 2006. #### What we've designed *Read also Evil Martians' article*: https://evilmartians.com/chronicles/ui-design-for-httpie-macos-vibes-for-the-api-testing-client [HTTPie](/clients/httpie)—product design for the API testing client, hitting 4th Product of the Day on Product Hunt. [Tines](/clients/tines)—a drag-and-drop workflow builder for security teams that helped them reach unicorn status. [Ghost Security](/clients/ghost-security)—a noise-free security dashboard that groups and prioritizes events visually instead of burying them in cluttered tables. [Tegon](/clients/tegon)—a full [UI/UX redesign](/chronicles/designing-tegon-a-signature-vision-for-the-ai-driven-issue-tracker) for this YC-backed AI-first issue tracker. [Quotient](/clients/quotient)—a [prompt evaluation sandbox](/chronicles/ui-for-quotient-ai-the-developer-tool-for-prompt-engineers) for testing LLMs. [Rootly](/clients/rootly)—product redesign for a YC-backed incident management platform. [Medplum](/clients/medplum)—designing a healthcare developer platform from a demo app. #### How we think about developer UX Developer tools have no "happy path." Users jump between panels and features based on their current task. We design for three contexts: immediate (debugging a specific error), intermediate (building a feature), and broad (shipping to production). Each demands different [layout patterns](/chronicles/devtool-layout-rule) and [information density](/chronicles/keep-it-together-5-essential-design-patterns-for-dev-tool-uis). *Read also Evil Martians' article*: https://evilmartians.com/chronicles/devs-in-mind-how-to-design-interfaces-for-developer-tools We design with radio buttons over dropdowns, sliders with precise text inputs, resizable panels, and persistent interface states. These patterns are for people who live in their tools eight hours a day—whether that's a dashboard, a CLI, or an AI-powered interface. #### Documentation and onboarding The first experience with your product isn't the dashboard—it's the docs. We design documentation as a product surface: information architecture that matches how developers actually search, code examples that copy-paste cleanly, and onboarding flows that get users to their first success in minutes. For [Teleport](/clients/teleport), we transformed their documentation into a [customer acquisition channel](/chronicles/next-level-docs-with-nextjs-teleports-new-customer-aquisition-channel) with Next.js—docs that don't just explain the product but sell it. #### Design sprints for devtools Many of our client relationships start with a design sprint: two weeks from first conversation to validated product design. We've kicked off engagements this way for Tines, Ghost Security, HTTPie, Tegon, and Quotient. For pre-PMF startups, this is the fastest path from idea to something you can test with real developers. ### Frontend & real-time URL: https://evilmartians.com/services/real-time Dev tool interfaces, small libraries, design systems, real-time collaboration, LLM streaming, and voice AI: the frontend infrastructure for products developers use daily. AI products live or die by how fast they feel. When an agent generates code, the user needs to see tokens streaming in real time. When teammates collaborate on a document, edits need to appear instantly. When a dashboard monitors production systems, data can't be seconds stale. The frontend infrastructure behind these interactions is a specialty—not something you bolt on at the end. #### Zero-latency interfaces Every spinner, every loading state, every moment your product feels sluggish—that's a user losing flow state. For professional tools where people spend hours per day, latency isn't a UX issue. It's a retention issue. We build zero-latency interfaces using local-first principles: data lives on the device first, syncs in the background, and works offline by default. [Optimistic UI patterns](/chronicles/optimistic-ui-in-rails-with-optimism-and-inertia) make server-rendered apps feel instant. WebAssembly runs [heavy computation in the browser](/chronicles/ruby-on-rails-on-webassembly-a-guide-to-full-stack-in-browser-action) without server round-trips. [bolt.new](/clients/stackblitz)—$40M+ ARR, the fastest-growing AI product ever launched—runs a full Node.js environment inside the browser via WebAssembly. No server round-trips for builds, installs, or file operations. #### Dev tool interfaces Developer tools demand interfaces that handle high information density, complex interactive workflows, and keyboard-first navigation. We build the frontend engineering behind these products. For [Tines](/clients/tines), we built a React frontend with interactive node diagrams and real-time state management across hundreds of connected actions, delivering [100x performance improvements](/chronicles/product-design-that-sells-the-smart-ux-for-tines) in target areas. Tines reached unicorn status. For [Tegon](/clients/tegon), we engineered the React and Next.js frontend for a YC-backed AI-first issue tracker. For [HTTPie](/clients/httpie), we built the desktop app with React, TypeScript, and Electron. We maintain [KeyUX](https://github.com/ai/keyux), an open source library that adds keyboard navigation to web apps: hotkey support via `aria-keyshortcuts`, arrow navigation in menus, and focus management. These are the interaction patterns professional tools need but most teams skip. #### Small libraries The modern frontend ecosystem ships megabytes of JavaScript for routine tasks. We started a small libraries movement to push back: purpose-built packages that solve one problem in as few bytes as possible. [Nano ID](https://github.com/ai/nanoid) generates unique string IDs in 116 bytes—130 times smaller than uuid. It has 111M weekly npm downloads, more than React itself. [Nano Stores](https://github.com/nanostores/nanostores) is a tiny state manager (334 bytes) that works across React, Vue, Svelte, and vanilla JS. [size-limit](https://github.com/ai/size-limit) enforces bundle size budgets in CI. If a dependency pushes your bundle past the limit, the build fails before the PR merges. We also maintain [PostCSS](https://postcss.org/) (158M weekly downloads) and [Browserslist](https://github.com/browserslist/browserslist) (118M weekly downloads)—both bigger than React. This isn't just open source advocacy. When we build frontends for clients, we reach for the smallest tool that solves the problem. Fewer bytes mean faster loads, less complexity, and lower infrastructure costs. #### Design systems for agentic development When AI coding tools generate UI, they're only as good as the component system they work with. A well-structured design system with clear component APIs, typed props, and documented patterns produces consistent agent output. A messy one produces slop. We build component architectures that work for both humans and agents. In Rails, our [view_component-contrib](https://github.com/palkan/view_component-contrib) gem standardizes [ViewComponent](/chronicles/viewcomponent-in-the-wild-embracing-tailwindcss-classes-and-html-attributes) interfaces across the application. In React and TypeScript, we build typed component libraries with explicit prop APIs. The component catalog doubles as a specification that agents follow—the same principle behind [AI Harnesses](/services/agent-experience) applied to the view layer. #### Real-time collaboration *Read also Evil Martians' article*: https://evilmartians.com/chronicles/collaborative-real-time-security-logux-for-akeero For [Akeero](/clients/akeero), an AWS security audit platform, we built real-time multi-user editing with [Logux](/products/logux)—our open source library for local-first sync. Edits appear instantly for all participants, with conflict resolution handled automatically. For [Healthie](/clients/healthie), a virtual-first healthcare SaaS, we migrated their real-time features to [AnyCable](https://anycable.io/) for better performance and reliability. For [ClickFunnels](/clients/clickfunnels), we stabilized their AnyCable infrastructure at scale. We've solved WebSocket scaling, [connection avalanches](/chronicles/connection-avalanche-safety-tips-and-prepping-for-realtime-applications), and delivery guarantees at production scale. #### LLM streaming and generative UI Streaming AI responses over HTTP works until it doesn't. [Token-by-token delivery](/chronicles/anycable-rails-and-the-pitfalls-of-llm-streaming) over WebSockets solves the problems HTTP streaming creates: dropped connections, backpressure handling, multiplexing multiple streams, and delivering structured UI updates alongside raw tokens. We built this infrastructure for AI products and open sourced the patterns through [AnyCable](https://anycable.io/). #### Voice AI Voice AI needs real-time infrastructure with stricter latency requirements than chat or collaboration—bidirectional audio streaming, speech-to-text processing, and sub-second response times. We've built this stack with AnyCable. [Doximity](/clients/doximity), used by 80% of US doctors, ships voice features powered by AnyCable—including "Hold for Me," where a digital assistant handles phone holds and alerts the doctor when a real person picks up. We built a [voice assistant connecting Twilio with OpenAI's Realtime API](/chronicles/anycable-speaking-needing-help-with-a-twilio-openai-connection) through AnyCable Go—bidirectional audio, speech-to-text, and tool calling over WebSockets. We've also [connected Twilio streams with offline speech recognition](/chronicles/anycable-goes-off-rails-connecting-twilio-streams-with-hanami) for real-time call transcription. [LiveVoice](https://blog.anycable.io/p/livevoice-shares-how-they-use-anycable), an ultra-low-latency audio streaming platform for simultaneous interpretation, runs on AnyCable Pro. #### When you need this Zero-latency interfaces, devtool dashboards, interactive workflow builders, real-time collaboration, LLM streaming, voice AI, design systems, component architectures. If your product needs a frontend that's fast, interactive, and built for daily professional use, we've done it before. ### Ruby on Rails consulting URL: https://evilmartians.com/services/ruby-on-rails-consulting The leading Ruby on Rails consultancy for startups: 100+ open source projects, 25B+ downloads. Shipping production code at bolt.new, Whop, Lago, and ClickFunnels. Evil Martians have been building Rails applications since 2006, we maintain 100+ open source projects with 25 billion+ downloads, and we wrote the acclaimed book on Layered Ruby on Rails architecture. We're the team that helps you build and grow your Ruby and Rails products, while improving team's developer productivity. Based in New York and San Francisco, we work with startups globally. #### Your Rails app needs to ship faster You just raised a round and need to ship before the runway gets short. Or your team is small and hiring senior Rails engineers takes months. We embed directly with your team—your repo, your Slack, your standups. Not consultants who hand off a deck, but engineers who ship production code from day one. We build MVPs, APIs, billing systems, admin dashboards. We build on Rails 8 and help teams upgrade. We _teach_ your agents to generate maintainable code. We come when needed and disconnect when done, helping you hire internal team at your own pace. We helped [StackBlitz](/clients/stackblitz) build bolt.new's Rails backend from early architecture through $40M+ ARR. We've been their engineering partner since 2021. For [Lago](/clients/lago)—the YC-backed open source billing platform with $22M in funding—we are shipping product features while maintaining their high quality bar. For [BetterUp](/clients/betterup)—the AI coaching platform with $570M+ in funding—we built the React frontend and scalable AWS backend. For [Fountain](/clients/fountain), a YC-backed startup, we shipped features and scaled infrastructure. Many of our clients are backed by Y Combinator. #### Your Rails app needs to scale The app that got you to product-market fit isn't the app that handles 10x the traffic. Slow queries, background jobs backing up, test suites that take 30 minutes. We've fixed all of these. For [Whop](/clients/whop)—$150M+ in yearly payments on a Rails monolith—we [cut CI time in half](/chronicles/the-whop-chop-how-we-cut-a-rails-test-suite-and-ci-time-in-half) and [prepared the zero-downtime migration of 750GB from PostgreSQL to PlanetScale](/chronicles/migrating-whop-from-postgresql-to-planetscale-zero-downtime). For [ClickFunnels](/clients/clickfunnels), we [eliminated flaky tests](/chronicles/flaky-tests-be-gone-long-lasting-relief-chronic-ci-retry-irritation) and improved CI reliability from ~80% to near-100% across 9K+ unit tests. For PowerHRG, we optimized their CI pipeline. For [Tines](/clients/tines), a security automation unicorn with $90M+ raised, we delivered 100x performance improvements in target areas. For [Doximity](/clients/doximity)—used by 80% of US doctors—we [integrated Go-powered real-time features](/chronicles/growing-pains-and-a-dose-of-go-real-time-features-for-this-rails-app) into their Rails app. We built the tools Rails teams reach for when things get slow. [TestProf](https://test-prof.evilmartians.io/) diagnoses and fixes slow test suites. Thousands of teams use it daily. [AnyCable](https://anycable.io/) replaces Action Cable with a Go-based WebSocket server that uses 3x less memory. It powers real-time at [ClickFunnels](/clients/clickfunnels), [CoinGecko](https://www.coingecko.com/), and [Doximity](/clients/doximity). Scaling Rails doesn't mean rewriting it—it means [upgrading the cookware while keeping the recipes](/chronicles/baking-with-rails-at-scale-recipes-in-ruby-cookware-from-go-c-rust). You keep business logic in Ruby and delegate computationally intensive work to specialized tools in Go, C, and Rust: [imgproxy](https://imgproxy.net/) for image processing, AnyCable for WebSockets, [serverless functions for file processing](/chronicles/how-to-make-serverless-file-processing-a-piece-of-cake). For [Playbook](/clients/playbook)—a cloud platform for creatives with 700K+ users—we built serverless file processing pipelines on Google Cloud alongside their Rails app. #### Your Rails architecture is holding you back The monolith that worked at 3 engineers doesn't work at 30. Domain boundaries are blurred, callbacks are everywhere, and new features keep breaking old ones. Our Head of Backend, Vladimir Dementyev, wrote the highly-rated [Layered Design for Ruby on Rails Applications](/products/layered-design-book)—now in its second edition. The patterns in that book—faceless service objects replaced by form objects, workflows and operations, authorization extracted to [Action Policy](https://actionpolicy.evilmartians.io/), notifications unified through [Active Delivery](https://github.com/palkan/active_delivery), configuration made type-safe with [Anyway Config](https://github.com/palkan/anyway_config)—are the patterns we apply on every engagement. For the frontend layer, we use [Inertia Rails](https://inertia-rails.dev/) with [inertia_rails-contrib](https://github.com/skryukov/inertia_rails-contrib) (built by us)—React or Vue frontends powered by Rails, no separate API. We've refactored codebases at [Whop](/clients/whop), [Tines](/clients/tines), and [ClickFunnels](/clients/clickfunnels) without risky rewrites. For [Monograph](/clients/monograph)—$30M in funding from Index Ventures and Tiger—we migrated the backend to GraphQL and moved the frontend from the monolith to Next.js. #### Your Rails app needs real-time features Chats, notifications, typing indicators, presence, cursors, collaboration, live dashboards—most Rails apps need real-time eventually. Action Cable and Solid Cable are not delivering that instant and reliable real-time UX. We built [AnyCable](https://anycable.io/) to solve exactly this. It keeps the familiar Action Cable API while handling connections in Go—3x less memory, delivery guarantees, resumable sessions. For Hotwire-only apps, setup is simple: swap the adapter. For [ClickFunnels](/clients/clickfunnels), we run AnyCable at scale. For [Healthie](/clients/healthie), we migrated their real-time features to AnyCable. For [Doximity](/clients/doximity), we built Go-powered real-time features alongside their Rails app. #### You're adding autonomous AI workflows to your Rails product Rails is a great backend for AI products—bolt.new proved it at $40M+ ARR. We build autonomous agent pipelines in Ruby that triage issues, plan fixes, write code, self-review, open PRs, and loop on CI failures and review feedback until done. No human in the loop. Our internal agent systems run on Ruby, Roda, Sequel, and PostgreSQL with RubyLLM, checkpoint-recovery, per-task budget tracking, and CI-driven refinement. We integrate LLM APIs, build agent infrastructure, and add AI-powered features to existing Rails applications. For real-time AI responses, we built [AnyCable's LLM streaming support](/chronicles/anycable-rails-and-the-pitfalls-of-llm-streaming)—streaming LLM output over WebSockets to your frontend. We build AI Harnesses—open source skill sets that encode architectural patterns into AI coding tools like Claude Code and Codex, so agentic coding produces better Rails code. If you're building autonomous AI workflows on Ruby, this is our territory. #### Your Ruby app needs concurrency done right Threads, Fibers, Ractors, connection pools—Ruby's concurrency model has matured, but getting it right is still hard. Race conditions, non-atomic database transactions, and thread-safety bugs are invisible until they hit production under load. We maintain [rubocop-thread_safety](https://github.com/rubocop/rubocop-thread_safety) (21M+ downloads) to catch concurrency bugs statically, and [isolator](https://github.com/palkan/isolator) to detect non-atomic interactions within database transactions at runtime. We made the [NATS](/clients/nats) Ruby SDK 3x faster. NATS is a high-performance messaging system where concurrency correctness is everything. Our team speaks on this topic at conferences around the world: [testing multithreaded code](/events/dont-be-thread-ened-euruko) (Julia Egorova, EuRuKo 2025), [threads and execution context in Ruby](/events/ruby-threads-callbacks-osakarubykaigi) (Vladimir Dementyev, RubyKaigi and RubyConf AU). #### Why Evil Martians for Ruby on Rails We don't just use Rails—we build the tools the ecosystem runs on. 25 billion+ combined downloads across 100+ open source projects: [TestProf](https://test-prof.evilmartians.io/), [AnyCable](https://anycable.io/), [Action Policy](https://actionpolicy.evilmartians.io/), [Lefthook](https://github.com/evilmartians/lefthook) (1.2M weekly npm downloads), [Yabeda](https://github.com/yabeda-rb/yabeda), [Logidze](https://github.com/palkan/logidze), [isolator](https://github.com/palkan/isolator), [anyway_config](https://github.com/palkan/anyway_config), [Active Delivery](https://github.com/palkan/active_delivery), and dozens more. We keynote at all major Ruby and Rails conferences globally. We organize the [SF Ruby Conference](https://sfruby.com)—450+ attendees, 40+ speakers, demos from companies like bolt.new, Chime, and Gusto—and the [SF Bay Area Ruby Meetup](/events/the-silicon-heel-sf-ruby-meetup). We write books on writing maintainable sofwtare and receive awards for our open source projects. Eight of our clients grew from seed to unicorn. Here's who trusts us with their Rails code: [bolt.new](/clients/stackblitz) ($40M+ ARR), [Whop](/clients/whop) ($150M+ yearly payments), [Tines](/clients/tines) (unicorn, $90M+ raised), [Doximity](/clients/doximity) (80% of US doctors), [BetterUp](/clients/betterup) ($570M+ in funding), [ClickFunnels](/clients/clickfunnels), [Lago](/clients/lago) ($22M+ raised, open source billing), [Playbook](/clients/playbook) ($22M+ raised, 700K+ users), [Monograph](/clients/monograph) ($30M, Index Ventures), [Rootly](/clients/rootly) (YC-backed), [Fountain](/clients/fountain) (YC-backed), [Keygen](/clients/keygen), [Synonym](/clients/synonym) (a16z-backed), [Chowbus](/clients/chowbus), [Healthie](/clients/healthie), PowerHRG, and [NATS](/clients/nats). #### When to engage There are several points where working with us makes the most sense. **Right after a funding round**, when there's pressure to ship and hiring takes months. **At the scaling stage**, when your Rails app needs specific expertise—performance optimization, real-time infrastructure, database scaling—that doesn't justify a full-time hire. **Pre-PMF**, when you need to validate fast: our design sprints have launched products in as little as two weeks. We charge $7,000/week per engineer. We run 2–3 week sprints with clear deliverables. 65% of our clients raise their next round within 1–3 years. ### Platform engineering URL: https://evilmartians.com/services/sre Deploy anywhere and scale to millions: Kubernetes, Terraform, Go infrastructure, and cloud platforms for developer tools. Your product needs to deploy to Kubernetes, scale across cloud providers, and ship updates multiple times per day without breaking production. We've built this infrastructure for AI products, developer tools, and security platforms. We bring open source tooling we created specifically for this work. #### What we've built We've been [StackBlitz](/clients/stackblitz)'s infrastructure partner since 2021—building the backend and performance systems that support 3M+ monthly developers and bolt.new's explosive growth to $40M+ ARR. For [Whop](/clients/whop), we [cut their Rails test suite and CI time in half](/chronicles/the-whop-chop-how-we-cut-a-rails-test-suite-and-ci-time-in-half) and executed a [zero-downtime migration from PostgreSQL to PlanetScale](/chronicles/migrating-whop-from-postgresql-to-planetscale-zero-downtime). [Teleport](/clients/teleport) is a privileged access management platform used by 100+ enterprise customers. We built their Go-based plugin ecosystem and deployment infrastructure. [NATS](/clients/nats) is an open source messaging system for distributed systems. We improved their Ruby SDK performance by 3x. [BetterUp](/clients/betterup) needed a scalable AWS backend for their AI coaching platform ($570M+ in funding). We built it. #### Kubernetes and deployment Our [Martian Kubernetes Kit](/chronicles/martian-kubernetes-kit-running-apps-and-running-them-well) is a battle-tested toolkit for running production workloads on Kubernetes—covering deployment, monitoring, autoscaling, and security out of the box. We use it with our clients and ship it as open source. For teams not ready for Kubernetes, we work with [Kamal](/chronicles/mrsk-hot-deployment-tool-or-total-game-changer) for zero-downtime deployments, Docker-based development environments, and managed cloud platforms on AWS and GCP. #### Multi-tenancy and self-hosted deployments Enterprise customers want your product on their infrastructure. That means multi-tenant isolation, per-tenant resource limits, data residency compliance, and deployment automation that works across AWS, GCP, and on-prem Kubernetes clusters. We've built this for [bolt.new](/clients/stackblitz)—on-prem Kubernetes deployments for enterprise customers—and we bring that experience to every product that needs to deploy anywhere without the multi-tenancy pain. We handle [fair job prioritization](/chronicles/fair-multi-tenant-prioritization-of-sidekiq-jobs-and-our-gem-for-it) so one tenant's bulk import doesn't starve the rest, and the deployment tooling to ship updates across all environments simultaneously. #### CI/CD and developer productivity Slow CI kills momentum. We profile test suites with [TestProf](https://test-prof.evilmartians.io/) (our open source tool), eliminate [flaky tests](/chronicles/flaky-tests-be-gone-long-lasting-relief-chronic-ci-retry-irritation), optimize build pipelines, and set up monitoring that tells you what's wrong before users notice. The goal: your team deploys confidently, multiple times per day—with alerting, distributed tracing, and infrastructure as code via Terraform. ### Performance & scale URL: https://evilmartians.com/services/performance-scalability Handle explosive growth without re-architecting: database scaling, background jobs, and the profiling to know where it hurts. Your product is growing faster than your infrastructure can handle. The answer isn't a rewrite—it's knowing exactly where it hurts and fixing that. We profile, measure, and fix. We've done this for products handling millions of users, and we bring open source tools we built specifically for this work. #### What we've scaled We helped [StackBlitz](/clients/stackblitz) scale bolt.new through explosive growth—from zero to $40M+ ARR in five months. We've been their engineering partner since 2021, building the performance infrastructure that kept the product standing while usage went vertical. For [Whop](/clients/whop), we [cut their Rails test suite and CI time in half](/chronicles/the-whop-chop-how-we-cut-a-rails-test-suite-and-ci-time-in-half) and [migrated 750GB from PostgreSQL to PlanetScale with zero downtime](/chronicles/migrating-whop-from-postgresql-to-planetscale-zero-downtime)—dual-database mode, schema dialect differences, all while serving millions of users. For [Tines](/clients/tines), a security automation platform, we delivered 100x performance improvements in target areas. For [Wallarm](/clients/wallarm), we optimized their Go-based event processing pipeline for high-throughput security data. For [NATS](/clients/nats), we made their Ruby SDK 3x faster. #### Database architecture We design PostgreSQL schemas that scale without rewrites. Our [partitioning strategies](/chronicles/flying-free-a-tale-of-partitioning-with-canaries-in-postgresql) handle tables with tens of millions of rows and hundreds of gigabytes of data. We've executed zero-downtime database migrations for high-traffic products. We know when to partition, when to shard, when to add read replicas, and when the real problem is your query patterns—not your database. #### Background jobs and resilience We build [fair background job prioritization](/chronicles/fair-multi-tenant-prioritization-of-sidekiq-jobs-and-our-gem-for-it) for multi-tenant Sidekiq, so one customer's bulk import doesn't starve everyone else. We add [circuit breakers](/chronicles/circuit-breakers-and-ruby-in-2025-dont-break-your-launch) for production resilience—so a failing third-party API doesn't cascade into a full outage. We build [API-first architectures](/chronicles/contract-shock-therapy-the-way-to-api-first-documentation-bliss) with contract-driven development, so your services stay reliable as the team grows. #### Multi-language performance Most products outgrow a single language. We know when to keep Rails for auth, billing, and CRUD—and when to reach for [Go, C, or Rust](/chronicles/baking-with-rails-at-scale-recipes-in-ruby-cookware-from-go-c-rust) for data pipelines, agent runtimes, or high-throughput processing. For [Doximity](/clients/doximity), we [integrated Go-powered real-time features](/chronicles/growing-pains-and-a-dose-of-go-real-time-features-for-this-rails-app) into their Rails app. For [Steel](/clients/steel), we built backend services within their TypeScript monorepo. #### Profiling and test performance We built [TestProf](https://test-prof.evilmartians.io/), the open source toolkit for [diagnosing and fixing slow Ruby test suites](/chronicles/testprof-a-good-doctor-for-slow-ruby-tests)—used by thousands of teams worldwide. For [ClickFunnels](/clients/clickfunnels), we improved CI reliability from ~80% to near-100% across 9K+ unit tests and 1K+ feature tests. Slow tests mean slow deploys, which means slow shipping. In a world where AI writes code and tests verify it, fast tests are the bottleneck. We bring the same profiling discipline to application performance: flamegraphs, allocation tracking, query analysis, and the experience to know which numbers actually matter. Our Head of Backend, Vladimir Dementyev, wrote [Layered Design for Ruby on Rails Applications](https://www.packtpub.com/en-us/product/layered-design-for-ruby-on-rails-applications-9781801813785)—now in its second edition. The patterns in that book—service objects, query objects, bounded contexts—are also performance patterns. Clean architecture is fast architecture. #### Why Rails teams call us We're one of the leading Ruby on Rails consultancies—and performance is where it starts. We created the tools Rails teams reach for when things get slow: TestProf, [AnyCable](https://anycable.io/), [Action Policy](https://actionpolicy.evilmartians.io/), [Yabeda](https://github.com/yabeda-rb/yabeda). We run the [SF Bay Area Ruby Meetup](/events/the-silicon-heel-sf-ruby-meetup). If your Rails app is the bottleneck, we've fixed it before. ### Design engineering URL: https://evilmartians.com/services/design-engineer Ship features in weeks, not months. Our designers eliminate the design-to-dev handoff using AI-powered workflows and direct code implementation. #### 2-week design engineering sprint—$14,000 One Martian designer who codes. AI-powered prototyping with bolt.new, Claude, and no-code tools. Direct code fixes by the designer who created it—zero handoff. Production-ready output your team integrates immediately. Need more scope? Add weeks at $7,000 each. --- *Book a free 30-minute consultation to define exactly what we can ship for you in a 2-week design engineering sprint.* [Contact Evil Martians](https://evilmartians.com/contact-us) --- #### What we've shipped this way [GMI Cloud](/clients/gmicloud)—a conversion-driven website for this $82M+ GPU cloud infrastructure provider, [delivered in 3.5 weeks](/chronicles/gmi-cloud-meets-webflow-and-speeds-ahead-in-the-ai-compute-race) with Webflow and Spline.
[Aptos Network](/chronicles/super-speed-super-quality-lessons-from-the-aptos-network-site-launch)—a full website launch in one month using Astro, React, and Tailwind CSS with AI-assisted development. #### How it works Our designers use developer tools daily and understand code. When they spot a UI issue, they fix it directly—no ticket, no handoff, no waiting. They prototype in bolt.new, validate with real users, then hand off clean code to your engineers. One designer [compressed weeks of work into days](/chronicles/weeks-to-days-a-case-for-expert-led-ai-driven-design-engineering) using AI-assisted workflows—exploring dozens of chart types in Google Colab with Gemini, automating Figma layouts with custom scripts, and building interactive prototypes directly in bolt.new. #### Tools we've built this way [Harmonizer](https://harmonizer.evilmartians.com/)—a [Figma plugin](https://www.figma.com/community/plugin/1483474069475958506/harmonizer) for generating accessible, consistent color palettes. Prototyped in bolt.new, validated fast, then polished by an engineer. *Image: Harmonizer: a tool for generating accessible, consistent color palettes for user interfaces* [Code to markup](https://psd-coder.github.io/code-to-markup/)—an open source tool for converting code snippets into HTML for static sites. Built by a single engineer using Claude, from problem to shipped solution in days. *Image: Convert your code snippets into beautiful HTML markup for your static websites* ### Security product design URL: https://evilmartians.com/services/security-product-design Design and build security products that technical teams trust: threat dashboards, workflow automation, and access control interfaces for cybersecurity startups. #### Why security product design is different Security products serve users making high-stakes decisions under time pressure—incident response, vulnerability triage, access approvals. The tolerance for confusion is zero. Dense threat data needs clear hierarchy. Complex workflows need visual clarity. And the users are often security analysts and ops teams, not developers—a different design paradigm than most developer tools. We've designed security products that reached unicorn status. Twice. #### What we've designed and built [Tines](/clients/tines) is a security automation platform. We designed and built the core product, including the visual workflow builder that lets security teams automate complex processes without code. We covered UI design, React/GraphQL frontend, and Ruby on Rails backend, delivering [100x performance improvements](/chronicles/product-design-that-sells-the-smart-ux-for-tines) in target areas. Tines has raised $90M+ and reached unicorn status. [Ghost Security](/clients/ghost-security) helps enterprises find application vulnerabilities. We designed their MVP and built the Vue.js/TypeScript frontend—the threat visualization dashboard, vulnerability detail views, and the information architecture for complex security data. They raised $15M. Their CTO called us "truly in an elite class of modern design experts." [Teleport](/clients/teleport) is a privileged access management platform used by 100+ enterprise customers. We built Go-based access control plugins for Slack, Jira, PagerDuty, GitLab, and Mattermost—creating an ecosystem that made Teleport indispensable to ops teams. We transformed their documentation into a [customer acquisition channel](/chronicles/next-level-docs-with-nextjs-teleports-new-customer-aquisition-channel) with Next.js. Teleport has raised $170M and reached unicorn status. *Read also Evil Martians' article*: https://evilmartians.com/chronicles/smartly-contracted-ui-design-and-frontend-for-certora [Certora](/clients/certora) builds smart contract verification tools. We designed and built a [VS Code extension](/chronicles/smartly-contracted-ui-design-and-frontend-for-certora) for formal verification in two months, from design sprint to marketplace. The interface visualizes complex proof results in a way that blockchain security engineers can act on immediately. #### Security infrastructure Security products typically run on Go, TypeScript, and Python. We work across all three. For [Wallarm](/clients/wallarm), an API security platform protecting 20,000+ apps and ranked in the Top 150 Cybersecurity Companies, we optimized their Go-based event processing pipeline for high-throughput security data. We understand the architecture patterns behind threat detection, access control, and security data pipelines. #### AI and agentic security The next wave of security products protects AI systems—agent-to-agent communication, MCP tool integrations, LLM-powered APIs. We bring both security product design experience (Tines, Teleport, Wallarm) and AI infrastructure expertise (bolt.new, [AgentPrism](/chronicles/debug-ai-fast-agent-prism-open-source-library-visualize-agent-traces), [AI Harnesses](https://github.com/palkan/skills)) to teams building in this space. ### SDKs, extensions & plugins URL: https://evilmartians.com/services/plugin-and-extension-creation Build VS Code extensions, Figma plugins, browser extensions, and SDKs that make your developer tool indispensable. Your developer tool's ecosystem — extensions, plugins, SDKs — is what turns users into advocates. We've built all of these, for our clients and for our own open source projects. #### IDE extensions For [Certora](/clients/certora), a Series B blockchain security startup, we built a [VS Code extension](/chronicles/smartly-contracted-ui-design-and-frontend-for-certora) for smart contract verification in just two months — from design sprint to marketplace. We've also built [IntelliJ IDEA language support](/chronicles/the-scenic-route-lessons-building-intellij-idea-language-support) and documented the hard lessons of IDE plugin development across both platforms. #### Browser extensions and Figma plugins For [Playbook](/clients/playbook), a Series A storage platform for creatives, we built [Chrome extensions](/chronicles/how-to-make-complex-chrome-plugins-a-zero-gravity-guide), [converted them to Safari](/chronicles/how-to-quickly-and-weightlessly-convert-chrome-extensions-to-safari), and built a Figma plugin — all part of a multi-platform ecosystem strategy. *Image: Viewing images in the Gallery* *Image: Searching images* We build our own Figma plugins too: [Harmonizer](https://www.figma.com/community/plugin/1483474069475958506/harmonizer) for accessible color palettes, built with [advanced Figma API patterns](/chronicles/how-to-make-next-level-figma-plugins-auth-routing-storage-and-more) we've documented extensively. #### SDK development and optimization Developer tools [live or die by their SDKs](/chronicles/the-sdk-imperative-why-developer-tools-live-or-die-by-their-sdks). We optimized the Ruby SDK for [NATS](/clients/nats), an open source messaging system, achieving 3x performance improvement for high-load cases. This was a major enhancement to the client so I appreciate the practical solution that was implemented to boost the client's performance and scalability. #### Plugin ecosystems For [Teleport](/clients/teleport), the privileged access management platform, we built and documented five plugins — Slack, Jira, Mattermost, GitLab, and PagerDuty — creating an ecosystem that made Teleport indispensable to ops teams. ### Devtools startup advisory URL: https://evilmartians.com/services/advisory Refine your strategy and accelerate product-market fit for your devtools startup through a 6-month advisory program with our CEO. #### 6-month advisory program Six focused 1-hour sessions with Evil Martians CEO [Irina Nazarova](/martians/irina-nazarova). Irina advises devtools founders on growth strategy, product analytics, and business forecasting. She runs the [SF Ruby](https://sfruby.com/) community, speaks internationally about the business of developer tools, and meets hundreds of devtools founders every year. This is not generic startup coaching. Irina works exclusively with founders of technical products targeting software developers—the market she’s operated in since 2006. #### What we cover - **Positioning and pricing**—[value-based pricing models](/chronicles/value-pricing-for-dev-tools-a-strategy-beneficial-for-both-sides) that align with how developers evaluate and buy tools - **Fundraising strategy**—who invests in developer tools, and how to [approach them effectively](/chronicles/how-to-cultivate-capital-6-tips-from-developer-tools-founders-and-vcs) - **Product-market fit**—signals that matter for devtools: adoption curves, community engagement, and usage patterns - **Go-to-market**—open source strategy, developer community building, launch execution, and [what founders making $100M+ ARR have learned](/chronicles/what-devtools-founders-making-100m-arr-told-in-san-francisco) #### Why this works Evil Martians works with 40+ developer tools startups every year. Eight grew from seed to unicorn. 65% raise Series A or B within one to three years. Irina brings pattern recognition from this portfolio—[what to validate before building](/chronicles/founders-if-you-want-a-plus-startup-success-do-the-homework-first), when to invest in platform engineering, and where the devtools market is heading. ### Developer marketing URL: https://evilmartians.com/services/tech-marketing Convert technical audiences with landing pages, documentation, launch strategies, and content that developers actually trust. #### Landing pages that convert We [studied 100 developer tool landing pages](/chronicles/we-studied-100-devtool-landing-pages-here-is-what-actually-works-in-2025) and documented what actually works: specific metrics over vague claims, working code examples over screenshots, and CTAs that respect developers' intelligence. Our [conversion optimization](/chronicles/how-to-kill-conversions-on-your-developer-tool-landing-page) work shows how common mistakes — vague hero text, invisible CTAs, corporate speak — kill developer trust. #### Documentation as acquisition For [Teleport](/clients/teleport), we transformed their documentation into a [customer acquisition channel](/chronicles/next-level-docs-with-nextjs-teleports-new-customer-aquisition-channel) with Next.js — not just reference docs, but a designed experience that brought developers in and kept them. We've also built [API-first documentation workflows](/chronicles/contract-shock-therapy-the-way-to-api-first-documentation-bliss) for contract-driven development. #### Content and launch strategy Engineer-written content [generated $700K in revenue from 6 articles](/chronicles/creating-a-winning-sales-flow-with-authentic-writing-from-engineers) for one of our clients. We help developer tool teams [run launch weeks](/chronicles/how-to-do-launch-weeks-for-developer-tools-startups-and-small-teams) that drive adoption — our own AnyCable launch week achieved 5x trial signups. We've documented how AI startups [use changelogs to build developer trust](/chronicles/how-ai-startups-use-changelogs-to-win-developer-trust). We know what works because we do it ourselves — 100+ open source projects, a technical blog read by millions, and conference talks at RailsConf, RubyConf, and dozens of developer events worldwide. ### Hiring & training URL: https://evilmartians.com/services/training Build and upskill engineering teams with hands-on training from engineers who ship production systems at scale. #### Knowledge transfer that sticks When we embed with a client team, we don't just ship code — we transfer skills. For [Doximity](/clients/doximity), we ran training sessions so their engineers could maintain their AnyCable real-time infrastructure independently. For [Iterative](/clients/iterative), we [designed and built the DVC Studio UI](/chronicles/designing-machine-learning-for-dvc-studio), then enabled their frontend team to own it going forward. *Image: In a project for Iterative, an open source developer tools company, we [trained their frontend team](/chronicles/designing-machine-learning-for-dvc-studio) to work independently on the DVC Studio product.* We've documented the full process: our guide to [transferring projects to another team](/chronicles/the-sword-is-yours-transferring-projects-to-another-team-unscathed) covers architecture documentation, onboarding playbooks, and the handover practices we've refined over hundreds of engagements. #### Hiring process design [Our own hiring process](/chronicles/hire-better-10x-faster-how-we-screen-50-engineers-weekly-with-no-hr) screens 50+ engineers weekly without HR, focusing on fundamentals over frameworks — semantic HTML, accessibility, performance optimization, and problem-solving approach. We help developer tools companies design hiring funnels that find the right engineers faster while respecting candidates' time. #### Team mentorship We embed with your engineers for intensive pair programming, code reviews, and architecture discussions. Teams learn by shipping real features alongside experienced engineers — not through toy examples or slide decks. ## Clients ### AI concierge tool for enterprises URL: https://evilmartians.com/clients/ai-startup-under-nda Evil Martians partnered with a renowned agent support platform to streamline AI-driven development, building a scalable design system and efficient developer workflows. We delivered secure, enterprise-ready infrastructure, from DevContainers to production VoIP integrations. Industries: Developer Tools Key facts: $250M raised; $3B+ total valuation ### Bolt.new URL: https://evilmartians.com/clients/stackblitz Evil Martians and StackBlitz: tech partners since 2021. Our engineers helped scale their WebContainers platform from pioneering browser IDE to bolt.new—the AI-powered tool that hit $20M+ ARR in just 2 months and disrupted the industry of vibe coding. We've built core infrastructure powering 3M+ monthly developers, from backend Rails to enterprise features and performance optimization. Together, we're transforming how developers build worldwide. Industries: Developer Tools, AI Key facts: $113M total funding; $700M valuation ### Tines URL: https://evilmartians.com/clients/tines Evil Martians helped an advanced security orchestration and automation platform, Tines, with the core product, covering UI design, frontend, and backend. Our team designed a pro-oriented interface easy-to-use even for newcomers. Industries: Cyber Security, Developer Tools Key facts: $271M total funding; $1.125B valuation ### Teleport URL: https://evilmartians.com/clients/teleport Evil Martians has partnered with Teleport since 2020, engineering enterprise-ready features for their open-source infrastructure access platform. Our engineering and design teams work across the platform – from architecting the plugin ecosystem and deployment strategies to transforming their documentation into a powerful growth driver with Next.js. Combining deep Go expertise with product thinking, we continue as their technical partner driving R&D initiatives as well as building core features that support their growth.. Industries: Cloud Infrastructure, Developer Tools, Cyber Security, Y Combinator Key facts: $169M total funding; $1.1B valuation ### Daylight Security URL: https://evilmartians.com/clients/daylight-security Daylight Security is a cybersecurity platform that combines autonomous AI workflows with expert-led SOC/MDR services. As the platform scaled toward enterprise adoption, Evil Martians joined as a design partner to elevate the product experience. Industries: Developer Tools, Cyber Security, AI Key facts: $40M total funding ### NATS URL: https://evilmartians.com/clients/nats NATS by Synadia is an open-source messaging system, a secure connective technology for modern distributed systems at the edge and in the cloud. They reached out to Evil Martians to improve the performance of NATS's Ruby SDK, and we ended up speeding it up by more than three times for high-load cases. Industries: Developer Tools Key facts: $25M total funding ### Gusto URL: https://evilmartians.com/clients/gusto Gusto runs payroll for hundreds of thousands of American businesses, and a large share of that work happens asynchronously, in the background, on a deadline. When Gusto wanted deeper expertise in that layer, it brought in Evil Martians to work alongside its own engineering team. Industries: HR-tech, FinTech, Y Combinator Key facts: $9.3B+ valuation; $1B annual revenue; 500K+ businesses on payroll ### Lago URL: https://evilmartians.com/clients/lago Lago is an open-source metering and billing system that partnered with Evil Martians to scale their engineering team, keep product development moving fast, and maintain high quality. Industries: Developer Tools Key facts: $22M total funding ### Wallarm URL: https://evilmartians.com/clients/wallarm We helped Wallarm, an API security platform, redesign and optimize their Go-based event processing pipeline that handles critical security data through NATS messaging and ClickHouse storage, and guided their team through architectural improvements and urgent feature implementations. Industries: Developer Tools, Cyber Security Key facts: $75M total funding; 20K+ Protected apps and APIs ### Buildkite URL: https://evilmartians.com/clients/buildkite Buildkite is a CI/CD platform used by Airbnb, Canva, Pinterest, and Uber. Evil Martians are building a unified design system and migrating legacy components across all product surfaces. Industries: Developer Tools, Design Key facts: A$59M total funding; 60K+ developers; 1K+ organizations ### Lingo.dev URL: https://evilmartians.com/clients/lingo-dev Lingo.dev (YC F24) is a fast-growing localization engineering platform. Evil Martians rewrote their open-source bundler plugin from prototype to production in four weeks. Industries: Developer Tools, AI Key facts: $4.2M funding; 4 weeks prototype to production ### AppSignal URL: https://evilmartians.com/clients/appsignal AppSignal is an app monitoring tool for teams of 10 to 100 engineers, supporting Ruby, Elixir, Node.js, JavaScript, Python, PHP, Java, Rust, Go, and more. Evil Martians partnered with them to rebuild their website with a bold creative direction, shipping designs directly into the codebase. Industries: Developer Tools Key facts: $22M total funding ### BetterUp URL: https://evilmartians.com/clients/betterup BetterUp, the leading coaching and professional development platform, enhanced their cutting-edge AI capabilities with Evil Martians’ support. We collaborated to create an intuitive interface with sophisticated React frontend and scalable AWS backend that maintained BetterUp’s commitment to enterprise-grade security. All while pushing the boundaries of AI-powered coaching. Industries: Business Tools, AI Key facts: $570M+ total funding; 4,000+ ICF-certified coaches ### Factorial URL: https://evilmartians.com/clients/factorial Factorial is an AI-first workforce operations platform and one of the EU’s top 20 most valuable scale-ups. Evil Martians are helping its engineering team optimize a large Ruby monolith, improve the GraphQL layer, and prepare the database for global scale. Industries: HR-tech, Business Tools Key facts: $300M+ total funding; $2.5B valuation ### Playbook URL: https://evilmartians.com/clients/playbook Since 2021, Evil Martians has collaborated with Playbook to build a next-generation cloud platform for creatives that serves 700,000+ users worldwide. Our engineering teams have developed their core platform features – from ML-powered visual search and AI-assisted file management to Figma plugin and third-party integrations. Our relationship deepened when Playbook acquired CanFY, an AI assistant platform we incubated, bringing advanced image recognition and natural language processing capabilities to their creative ecosystem. Industries: Business Tools, AI Key facts: $22M+ total funding ### Recraft URL: https://evilmartians.com/clients/recraft Recraft is shaping the future of AI-driven creativity. Our collaboration introduced a custom Discord bot, streamlining client acquisition and engagement. Plus, our tailored analytics enabled data-driven decisions, allowing for monitoring of the success of this customer acquisition channel. Industries: Business Tools, AI Key facts: $42M total funding; 1M+ users ### Thicket URL: https://evilmartians.com/clients/thicket Thicket is an educational marketplace where PhD-level experts share knowledge with curious learners. Evil Martians built a course marketplace in two weeks to validate the idea; now we're about to open it for sign-ups so anyone can enroll in a live course they're interested in. Industries: AI, EdTech, Design Key facts: 2 weeks to a live homepage ### Devpost URL: https://evilmartians.com/clients/devpost Devpost is the leading platform for hackathons and developer communities. Evil Martians migrated their infrastructure from EngineYard to Railway and strengthened their security and performance posture. Industries: Developer Tools Key facts: 1,200+ hackathons per year; $10.5M total funding ### Rootly URL: https://evilmartians.com/clients/rootly Rootly is a Y Combinator startup developing an incident management platform. The team needed an urgent design makeover for their core marketing assets—and they asked Evil Martians to implement it on the frontend and backend, add new design elements, and systematize the UI components. Industries: Cyber Security, Developer Tools, Y Combinator, AI Key facts: $15M+ total funding; Backed by Y Combinator ### Whop URL: https://evilmartians.com/clients/whop Evil Martians worked with Whop, a creator marketplace platform, on resolving critical performance challenges. We implemented data denormalization strategies, developed data seeding solutions with evil-seed, and enhanced their developer experience to support their rapid growth. Industries: eCommerce, Business Tools, Retail Key facts: $273M total funding; $1.6B valuation ## Open Source Projects - [Rails Startup Stack](https://evilmartians.com/opensource/rails-startup-stack-link): Our selection of services, gems, guides, and materials to build and grow fast-paced businesses with Ruby on Rails. - [AgentPrism](https://evilmartians.com/opensource/agent-prism): Open course React component library that turn AI agent traces into clear, visual diagrams for debugging. (https://github.com/evilmartians/agent-prism) - [Overmind](https://evilmartians.com/opensource/overmind): Advanced Procfile-based process manager for web application development. With it, you can efficiently run several processes from your Procfile in a single terminal. (https://github.com/DarthSim/overmind) - [Agent Skills](https://evilmartians.com/opensource/agent-skills): Our engineering practice packaged as agent skills: install one and your AI coding agent builds the way we do. (https://github.com/evilmartians/agent-skills) - [Hivemind](https://evilmartians.com/opensource/hivemind): Advanced Procfile-based process manager to run several processes from your Procfile in a single terminal. (https://github.com/DarthSim/hivemind) - [Autoprefixer](https://evilmartians.com/opensource/autoprefixer): Autoprefixer lets you write your CSS rules without vendor prefixes. (https://github.com/postcss/autoprefixer) - [Browserslist](https://evilmartians.com/opensource/browserslist): Defines and shares the list of target browsers between various frontend build tools. (https://github.com/browserslist/browserslist) - [Gon](https://evilmartians.com/opensource/gon): A Ruby gem that provides a straightforward way to pass Ruby variables to the Rails frontend code. (https://github.com/gazay/gon) - [Lefthook](https://evilmartians.com/opensource/lefthook): Git hooks manager for Node.js, Ruby, or any other type of projects. (https://github.com/evilmartians/lefthook) - [Ruby Next](https://evilmartians.com/opensource/ruby-next): A transpiler and a collection of polyfills for supporting new and upcoming Ruby features in older versions and alternative implementations. (https://github.com/ruby-next/ruby-next) - [Size Limit](https://evilmartians.com/opensource/size-limit): Linter for your JavaScript application that makes the Web lighter by preventing JS library bloat. (https://github.com/ai/size-limit) - [TestProf](https://evilmartians.com/opensource/testprof): A Ruby test profiling toolkit with a collection of different tools to analyze your test suite performance. (https://github.com/test-prof/test-prof) - [Action Policy](https://evilmartians.com/opensource/action-policy): An authorization framework for Ruby on Rails applications. (https://github.com/palkan/action_policy) - [Mock Suey](https://evilmartians.com/opensource/mock-suey): A collection of tools to keep Ruby mocks in line with real objects. (https://github.com/test-prof/mock-suey) - [OKLCH Color Picker & Converter](https://evilmartians.com/opensource/oklch-color-picker): OKLCH Color Picker & Converter helps designers and web developers pick and convert colors in OKLCH and LCH color space, enhance a11y in their projects, and prepare for a future with a vibrant P3 color space. (https://github.com/evilmartians/oklch-picker) - [Polychrom](https://evilmartians.com/opensource/polychrom): A Figma plugin that ensures UI text is readable by leveraging the new APCA algorithm. (https://github.com/evilmartians/figma-polychrom) - [Harmony](https://evilmartians.com/opensource/harmony): Accessible UI Color Palette (https://github.com/evilmartians/harmony) - [Harmonizer](https://evilmartians.com/opensource/harmonizer): Accessible Color Palettes Generator (https://github.com/evilmartians/harmonizer) - [RunRuby.dev](https://evilmartians.com/opensource/runruby): Brings Ruby programming into your browser, streamlining the process of writing and running Ruby code. (https://github.com/skryukov/runruby.dev) - [apcach](https://evilmartians.com/opensource/apcach): JavaScript color calculator for composing colors with consistent APCA contrast ratio. (https://github.com/antiflasher/apcach) - [Yabeda](https://evilmartians.com/opensource/yabeda): Make Ruby and Rails application monitoring as easy as possible. (https://github.com/yabeda-rb/yabeda) - [Ossert](https://evilmartians.com/opensource/ossert): An open source SaaS that provides maturity maintenance certification for Ruby libraries. (https://github.com/ossert/ossert) - [Nano ID](https://evilmartians.com/opensource/nanoid): A nano-sized unique string ID generator for JavaScript. (https://github.com/ai/nanoid) - [Storeon](https://evilmartians.com/opensource/storeon): An event-based, Redux-like state manager for React, Preact, Angular, Vue, and Svelte. (https://github.com/storeon/storeon) - [Color Name](https://evilmartians.com/opensource/color-name): A Figma plugin that answers the question “How should I name this color?” once and for all. (https://github.com/romashamin/figma-color-name) - [PostCSS-modules](https://evilmartians.com/opensource/postcss-modules): A PostCSS plugin to use CSS Modules everywhere: not only at the client side. (https://github.com/css-modules/postcss-modules) - [State Machine](https://evilmartians.com/opensource/state-machine): A Sketch plugin that allows you to use ⌃⌘S to switch an active tab on a tab bar you’re designing, an active navigation section in a menu, or a page number in a pagination control. (https://github.com/romashamin/statemachine-sketch) - [Compo](https://evilmartians.com/opensource/compo): A Sketch plugin that makes it easier to work with interface components. (https://github.com/romashamin/compo-sketch) - [Sort Me](https://evilmartians.com/opensource/sort-me): A Sketch plugin that makes sorting artboards and layers dead simple. (https://github.com/romashamin/sort-me-sketch) - [Size Marks](https://evilmartians.com/opensource/size-marks): A Photoshop™ script for web designers and frontend engineers. (https://github.com/romashamin/Size-Marks-PS) ## Products - [imgproxy](https://evilmartians.com/products/imgproxy): imgproxy is a blazing fast and secure image processing tool. Built with a focus on developer productivity, imgproxy saves time and money on developing hand-rolled image processing pipelines. Our Pro version provides priority support, advanced image adjustments, ML features, watermarking, and video support. (https://imgproxy.net/) - [Layered Design for Ruby on Rails Applications](https://evilmartians.com/products/layered-design-book): Discover practical design patterns for maintainable web applications. Transition from the traditional Rails MVC trio to an abstraction model and evolve your application codebase with synchronized components, boosting flexibility and maintainability. (https://www.amazon.com/Layered-Design-Ruby-Rails-Applications/dp/1801813787) - [AnyCable](https://evilmartians.com/products/anycable): Building realtime features at scale is easy with the dedicated realtime server, AnyCable. It runs next to your main app (or, in our cloud) and handles realtime load, while ensuring the deliverability of messages and reliability of connections. Use powerful high-level abstractions to build chats, collaboration, IoT data features, gen-AI streaming, etc. (https://anycable.io/) - [PostCSS](https://evilmartians.com/products/postcss): One of the most popular and most depended-on npm libraries, PostCSS transforms CSS using an extensible plugins API. With more than 200 plugins, developers can lint CSS, support variables and mixins, transpile future CSS syntax, and more. (https://postcss.org/) - [Martian Grotesk](https://evilmartians.com/products/martian-grotesk): An open typeface family with a strong personality designed for web and digital projects. It contains a variable font and 63 styles. Martian Grotesk appears legible on most platforms, even when being rendered in small sizes. (https://github.com/evilmartians/grotesk) - [Martian Mono](https://evilmartians.com/products/martian-mono): Martian Mono is a monospaced version of the Martian Grotesk for code style design. It's the first Evil Martians open source typeface on the market. (https://github.com/evilmartians/mono) - [Logux](https://evilmartians.com/products/logux): A new way to connect clients and server. Instead of sending HTTP requests (AJAX/REST), it synchronizes the log of operations between client, server, and other clients through WebSockets. (https://logux.org) - [LaunchKit](https://evilmartians.com/products/launchkit): Free template for devtool landing pages (https://launchkit.evilmartians.io) ## Agent Skills - [llms-visibility](https://github.com/evilmartians/agent-skills): Make a site readable to ChatGPT, Claude, Perplexity, and the coding agents that fetch URLs: Markdown routes, Accept content negotiation, llms.txt, and crawler signals in robots.txt. Pushes back on the AI-SEO advice we tested and found useless. - [storybook-workbench](https://github.com/strongeron/storybook-workbench): Eleven skills that turn Storybook into an audit layer for vibe-coded React and Vite apps: tell real components from dead ones, map routes and flows, check design-system health, bridge Figma both ways, and write CSF3 stories for the states that matter. - [layered-rails](https://github.com/palkan/skills): Write, refactor, and review Rails code by the principles from the Layered Design for Ruby on Rails Applications book: service, form, policy, and query objects, plus a codebase analysis that scores callbacks, finds god objects by churn and complexity, and flags layer violations in a diff. - [good-readme](https://github.com/evilmartians/agent-skills): Write or rewrite an open source README the way PostCSS, Nano ID, imgproxy, and AnyCable did it: lead with what the project does and how it differs, drop the badges, and never invent a benchmark the repo can't back up. - [inertia-rails-skills](https://github.com/inertia-rails/skills): Fixes what LLMs get wrong about Inertia.js on Rails, across React, Vue 3, and Svelte: controllers and prop types, forms without react-hook-form, pages and navigation, shared-prop typing, shadcn/ui, and Alba serializers with auto-generated types. - [skills-visibility](https://github.com/evilmartians/agent-skills): Publish a catalog of agent skills and make it discoverable to AI coding agents: the .well-known/agent-skills/index.json index, integrity digests, single-file vs multi-file vs bundle packaging, and every install method. Pushes back on pointing the index at raw GitHub URLs instead of a domain you control. - [secure-npm-package](https://github.com/evilmartians/agent-skills): Release an npm package with no token left to steal: Trusted Publishing, provenance, and staged publishes from a single GitHub Actions workflow, plus click-by-click npmjs.com and GitHub settings with every URL resolved from your own package.json. - [rails-boot-profiling](https://github.com/palkan/require-profiler): Profile Rails boot time with require-profiler: find the slowest requires and initializers, catch boot-time YAML parsing and HTTP calls, deep-dive into stubborn files with Stackprof, and turn the findings into fixes that speed up your Rails app startup. - [tailwind-best-practices](https://github.com/evilmartians/agent-skills): Writes and audits Tailwind CSS with the five practices that keep a fast-to-write codebase maintainable: design tokens over magic values, short and consistently ordered class lists, semantically grouped tokens, and fixed variants for design-system components instead of arbitrary className props. ## Guides ### Evil Martians: Product Development Consulting for Devtools Startups URL: https://evilmartians.com/devtools Evil Martians transform growth-stage startups into unicorns, build developer tools, and create open source products. # Product Development Consulting for Dev Tools Startups ## Our services - [Ruby on Rails consulting](https://evilmartians.com/services/ruby-on-rails-consulting) - [Frontend & real-time](https://evilmartians.com/services/real-time) - [Design for devtools](https://evilmartians.com/services/design-developer-tool) - [Platform engineering](https://evilmartians.com/services/sre) - [Developer marketing](https://evilmartians.com/services/tech-marketing) ## Our clients - [HTTPie](https://evilmartians.com/clients/httpie) - [Teleport](https://evilmartians.com/clients/teleport) - [StackBlitz](https://evilmartians.com/clients/stackblitz) - [Certora](https://evilmartians.com/clients/certora) - [Tines](https://evilmartians.com/clients/tines) - [Iterative](https://evilmartians.com/clients/iterative) ## Open source we developed - **autoprefixer** (21+K GitHub stars): Parse CSS and add vendor prefixes to rules by Can I Use - **postcss** (28+K GitHub stars): Transforming styles with JS plugins - **nanoid** (22+K GitHub stars): A tiny (130 bytes), secure, URL-friendly, unique string ID generator for javaScript - **imgproxy** (7+K GitHub stars): Fast and secure standalone server for resizing and converting remote images - **150,000** stars on GitHub across all projects built by Martians - **25 Billion** downloads of our projects ### Let’s see how we can help ## UX Design - UX Design - Web, Mobile and Desktop - Rapid Experimentation - User Interviews - Analytics Let’s start with a design sprint. - Price: $14K - Duration: 2 weeks ## Real-time and Collaborative UI - Collaboration mode for your users - Scalable real-time updates - Real-time IoT data processing - Action Cable and Hotwire at scale Let’s start with a proof of concept solution. - Price: $21K - Duration: 3 weeks Powered by AnyCable, a scalable real-time framework built by Evil Martians ## Performance Bottlenecks - Backend scalability - Frontend perfomance - Complex upgrades - Refactoring legacy applications Let’s start with a performance audit. - Price: $7K - Duration: 1 week ## Infrastructure Optimization - CI/CD setup - Auto-scaling - Observability - Cloud migration - Cloud cost optimization Let’s fix one problem in your current setup. - Price: $7K - Duration: 1 week ## Technical Marketing - Strategy - Technical articles - Content distribution - Documentation Let’s start with 2–3 articles. - Price: $7K - Duration: 2 weeks ### One more thing… ### Evil Martians: Product Development Consulting for Startups URL: https://evilmartians.com/for-startups Evil Martians get startups to product-market fit fast. # Product Development Consulting for Startups ## Our services - [Ruby on Rails consulting](https://evilmartians.com/services/ruby-on-rails-consulting) - [Frontend & real-time](https://evilmartians.com/services/real-time) - [Design for devtools](https://evilmartians.com/services/design-developer-tool) - [Platform engineering](https://evilmartians.com/services/sre) - [Developer marketing](https://evilmartians.com/services/tech-marketing) ## Our clients - [HTTPie](https://evilmartians.com/clients/httpie) - [Teleport](https://evilmartians.com/clients/teleport) - [StackBlitz](https://evilmartians.com/clients/stackblitz) - [Certora](https://evilmartians.com/clients/certora) - [Tines](https://evilmartians.com/clients/tines) - [Iterative](https://evilmartians.com/clients/iterative) ## Open source we developed - **autoprefixer** (21+K GitHub stars): Parse CSS and add vendor prefixes to rules by Can I Use - **postcss** (28+K GitHub stars): Transforming styles with JS plugins - **nanoid** (22+K GitHub stars): A tiny (130 bytes), secure, URL-friendly, unique string ID generator for javaScript - **imgproxy** (7+K GitHub stars): Fast and secure standalone server for resizing and converting remote images - **150,000** stars on GitHub across all projects built by Martians - **25 Billion** downloads of our projects ### Let’s see how we can help ## UX Design - UX Design - Web, Mobile and Desktop - Rapid Experimentation - User Interviews - Analytics Let’s start with a design sprint. - Price: $6K per week - Duration: 2-4 weeks ## Real-time and Collaborative UI - Collaboration mode for your users - Scalable real-time updates - Real-time IoT data processing - Action Cable and Hotwire at scale Let’s start with a proof of concept solution. - Price: $6K per week - Duration: 2–4 weeks Powered by AnyCable, a scalable real-time framework built by Evil Martians ## Performance Bottlenecks - Backend scalability - Frontend perfomance - Complex upgrades - Refactoring legacy applications Let’s start with a performance audit. - Price: $6K - Duration: 1 week ## Infrastructure Optimization - CI/CD setup - Auto-scaling - Observability - Cloud migration - Cloud cost optimization Let’s fix one problem in your current setup. - Price: $6K per week - Duration: 1 week ## Technical Marketing - Strategy - Technical articles - Content distribution - Documentation Let’s start with 2–3 articles. - Price: $6K - Duration: 2 weeks ### Evil Martians: Ruby on Rails Startup Stack URL: https://evilmartians.com/rails-startup-stack Why Ruby on Rails is the best startup stack in 2026, including for AI products: architecture, essential gems, CI, deployment, and the open source power-ups that make Rails startups ship faster. # Ruby on Rails Startup Stack Ruby on Rails is the best startup stack. Garry Tan, YC's president, is building and evangelizing Ruby on Rails and Claude Code. Intercom's AI agent Fin resolves 1M+ tickets per week on a 2M-line Rails monolith. bolt.new hit $40M+ ARR on a Rails backend. Chime, Figma, and Omada Health, all built with Ruby, had IPOs in 2025. [NexHealth](https://www.nexhealth.com/) hit a $1B valuation on Rails. [Thatch](https://www.thatch.ai/)—founded by ex-Stripe engineers—raised $84.5M building on Rails. This is our opinionated stack for building on Rails today. It comes from 20 years of shipping Rails applications, maintaining 100+ open source projects with 25 billion+ downloads, and organizing the [SF Ruby Conference](https://sfruby.com) (450+ attendees, 40+ speakers) and the [SF Bay Area Ruby Meetup](/events/the-silicon-heel-sf-ruby-meetup). Every recommendation here is what we use on client projects, in our own internal tools, and in our public-facing products like [AnyCable Plus](https://plus.anycable.io/) (managed AnyCable). It's what we'd use if we were starting a company tomorrow. --- *Evil Martians is the leading Ruby on Rails consultancy. We embed with your team and ship production code from day one. Let's talk about what you're building.* [Contact Evil Martians](https://evilmartians.com/contact-us) --- - [Rails for AI startups](#rails-for-ai-startups) - [Architecture](#architecture) - [Essential gems](#essential-gems) - [Database](#database) - [Frontend](#frontend) - [Real-time](#real-time) - [Concurrency](#concurrency) - [Observability](#observability) - [Image processing](#image-processing) - [Testing](#testing) - [Developer tools](#developer-tools) - [Deployment and clouds](#deployment-and-clouds) - [Agentic coding with layered architecture](#agentic-coding-with-layered-architecture) ## Rails for AI startups The biggest misconception in 2026: "AI products need Python backends." They don't. bolt.new—the fastest-growing AI product ever launched—runs on Rails. Garry Tan, YC's president, is building and evangelizing Ruby on Rails and Claude Code. He open-sourced "gstack"—6 Claude Code skills for planning, review, and shipping. 12 out of 25 startups that demoed at [SF Ruby Conference 2025](https://sfruby.com) were AI-native companies. Ruby is actually faster than Python in benchmarks. 2.9x faster in loops, 1.9x faster in Levenshtein distance, 2.8x faster in n-body simulation. Default Rails (43K req/s) beats optimized Django (33K req/s) in TechEmpower benchmarks. And Ruby is 15–25% more token-efficient than Python. That matters when AI coding tools generate your code. Rails conventions function as context engineering for AI. Twenty years of training data creates tighter predictions. The framework structure eliminates the need for extensive project documentation—your AI coding assistant already knows how a Rails app works. Both Anthropic and OpenAI now ship official Ruby SDKs. Rails gives AI startups what they actually need: fast iteration on product, battle-tested auth and billing, background jobs for async LLM calls, WebSocket streaming for real-time AI responses, and a mature ecosystem that lets a small team move fast. You don't write your model inference in Ruby—you write your product in Ruby and call the model APIs. Use [RubyLLM](https://github.com/crmne/ruby_llm) for a unified interface to OpenAI, Anthropic, Google, and other LLM providers. It handles streaming, tool use, and embeddings with a clean Ruby API. For LLM response streaming over WebSockets, see [AnyCable, Rails, and the pitfalls of LLM-streaming](/chronicles/anycable-rails-and-the-pitfalls-of-llm-streaming). For building AI features the Rails way, read [Exploring Active Agent](/chronicles/exploring-active-agent-or-can-we-build-ai-features-the-rails-way). ## Architecture This follows Vladimir Dementyev's highly-rated [Layered Design for Ruby on Rails Applications](/products/layered-design-book)—now in its second edition. The core idea: instead of dumping logic into service objects, extend Rails conventions with purpose-built abstraction layers. Domain logic lives in models. Complex operations are namespaced under the model they belong to. Controllers stay thin. Every other layer—policies, deliveries, notifiers, configs—has a clear purpose. ``` app/ ├── models/ # Domain logic lives HERE │ ├── mission.rb │ └── mission/ │ └── report.rb # Domain services namespaced under the model ├── controllers/ # Thin—HTTP concerns only |-- forms/ # Handling complex UI forms, wizards ├── policies/ # action_policy ├── deliveries/ # active_delivery + abstract_notifier ├── presenters/ # SimpleDelegator wrappers ├── components/ # ViewComponent ├── configs/ # anyway_config classes ├── jobs/ # Coordinate workflow, models execute └── clients/ # External API wrappers ``` No catch-all `app/services/` directory. The book calls services "a waiting room for abstractions that have yet to reveal themselves"—so we extract to purpose-built layers instead. Jobs coordinate workflow; models execute business logic. Policies handle authorization. Deliveries unify notifications. Configs are typed. For modular monoliths, watch [Between Monoliths and Microservices](/events/between-monoliths-and-microservices). For legacy rescue, see [Terraforming Legacy Rails Applications](/events/terraforming-legacy-rails-applications). ## Essential gems These are the gems we reach for on every new Rails project. Most of them we built. | Gem | Role | Replaces | |-----|------|----------| | [anyway_config](https://github.com/palkan/anyway_config) | Type-safe config from credentials/ENV/YAML | `.env` files, hand-rolled config | | [action_policy](https://actionpolicy.evilmartians.io/) | Authorization with scoping + params filtering | Pundit, CanCanCan | | [active_delivery](https://github.com/palkan/active_delivery) | Single notification entry point → mailer/Slack/SMS | Scattered `deliver_later` calls | | [abstract_notifier](https://github.com/palkan/abstract_notifier) | Non-email notification channels | Custom Slack wrappers | | [view_component](https://viewcomponent.org) | Testable, encapsulated UI components | Deep partial trees | | [n_plus_one_control](https://github.com/palkan/n_plus_one_control) | Catches N+1s in tests automatically | Manual includes auditing | | [isolator](https://github.com/palkan/isolator) | Detects non-atomic interactions within DB transactions | Manual transaction auditing | | [after_commit_everywhere](https://github.com/Envek/after_commit_everywhere) | Transactional callbacks outside of models | Inline `after_commit` hacks | | [freezolite](https://github.com/palkan/freezolite) | Auto-freezes all string literals | `# frozen_string_literal: true` in every file | | [ruby_llm](https://github.com/crmne/ruby_llm) | Unified LLM interface for Ruby | Multiple API client gems | | [herb](https://herb-tools.dev/) | HTML-aware ERB linting, formatting, and LSP | No tooling (ERB had none) | For our full gem recommendations, read [Gemfile of Dreams: libraries we use to build Rails apps](/chronicles/gemfile-of-dreams-libraries-we-use-to-build-rails-apps)—our curated list of production-tested gems for every layer of a Rails app. For configuration, see [Anyway Config: keep your Ruby configuration sane](/chronicles/anyway-config-keep-your-ruby-configuration-sane). For notifications, see [Crafting user notifications in Rails with Active Delivery](/chronicles/crafting-user-notifications-in-rails-with-active-delivery). Try the [Action Policy interactive tutorial](https://tutorial.actionpolicy.evilmartians.io/). **Feature flags:** Use [Flipper](https://www.flippercloud.io/) for feature flags. We use it on every project—read [how we extended it the Martian way](/chronicles/flipper-gem-is-amazing-we-extended-it-the-martian-way) with actor IDs, team-wide flags, percentage rollouts, and analytics. **Resilience:** Add [circuit breakers](/chronicles/circuit-breakers-and-ruby-in-2025-dont-break-your-launch) so a failing third-party API doesn't cascade into a full outage. **Event-driven processing:** For Kafka workloads alongside Rails, use [Karafka](https://karafka.io)—an efficient Kafka processing framework built for Ruby. **API documentation:** Use [Skooma](/opensource/skooma) (built by us) for validating API implementations against your OpenAPI spec. Read our two-part guide: [A documentation-first approach to Rails API development](/chronicles/let-there-be-docs-a-documentation-first-approach-to-rails-api-development) and [Generating an OpenAPI schema across the Rails stack](/chronicles/let-there-be-docs-generating-openapi-schema-across-rails-stack). ## Database **Starting out?** SQLite is great for internal tools and first MVPs. Pair it with [Litestream](https://litestream.io/) for continuous replication to S3—you get backups and disaster recovery without running a separate database server. **Growing?** PostgreSQL. GitHub runs on it. Chime runs on it. This is the database for production Rails. We've been building on PostgreSQL for nearly 20 years: - [PostgreSQL and Rails, sitting in a tree](/chronicles/postgresql-and-rails-sitting-in-a-tree)—the foundation - [Table partitioning in PostgreSQL](/chronicles/a-slice-of-life-table-partitioning-in-postgresql-databases)—when your tables outgrow a single partition - [Partitioning with canaries](/chronicles/flying-free-a-tale-of-partitioning-with-canaries-in-postgresql)—safe rollout strategies - [Soft deletion with PostgreSQL](/chronicles/soft-deletion-with-postgresql-but-with-logic-on-the-database)—keeping logic in the database - [Migrating Whop from PostgreSQL to PlanetScale with zero downtime](/chronicles/migrating-whop-from-postgresql-to-planetscale-zero-downtime)—when the time comes Use [Logidze](/opensource/logidze) for audit trails with PostgreSQL triggers. Use [store_model](https://github.com/DmitryTsepelev/store_model) for ActiveModel-like validation on JSON columns. Both built by us. Essential reading: ["High Performance PostgreSQL for Rails"](https://pragprog.com/titles/aapsql/high-performance-postgresql-for-rails/). ## Frontend Rails gives you several paths for the frontend. All of them work at scale—Intercom's 2M-line monolith proves the full-stack Rails path works, and bolt.new proves the API-backed React path works too. The modern Rails frontend is a [layered toolkit, not a single tool](/chronicles/keeping-rails-cool-the-modern-frontend-toolkit)—you pick the right approach for each part of your app. Also check our classic [Frontendless Rails frontend](/events/frontendless-rails-frontend-railsconf) talk. ### Hotwire-first The Rails default. Use **Hotwire/Turbo** with **importmaps** for zero-build simplicity. Add [Herb](https://herb-tools.dev/) for HTML-aware ERB linting and smart devtools—built on a fast C parser with bindings for Ruby, Node.js, Rust, and WASM, it understands your templates at the syntax level, not just as strings. [Herb v0.9](https://herb-tools.dev/blog/whats-new-in-herb-v0-9) adds Action View tag helper support, 24 linter rules, and a ~2.3x faster CLI. Start with the [official Turbo docs](https://turbo.hotwired.dev). Then read our guide [The future of full-stack Rails: Turbo Morph Drive](/chronicles/the-future-of-full-stack-rails-turbo-morph-drive). Use [ViewComponent](https://viewcomponent.org) for reusable, testable UI with [view_component-contrib](https://github.com/palkan/view_component-contrib) (built by us) for extensions and dev tools—our 3-part guide [ViewComponent in the Wild](/chronicles/viewcomponent-in-the-wild-building-modern-rails-frontends) covers beginner to advanced. ### Vite Ruby for modern builds Whether you need a build step for React/Vue/Svelte components, or experience issues with importmaps, [Vite Ruby](https://vite-ruby.netlify.app/) is here to save the day. We use it across our projects and bring it to customer toolboxes regularly. Read [how we Vite-lize Rails](/chronicles/vite-lizing-rails-get-live-reload-and-hot-replacement-with-vite-ruby). For eliminating the need of addding Node.js runtime to your stack, we use [bundlebun](https://github.com/yaroslav/bundlebun)—Bun packed in a Ruby gem, so `bundle install` is enough to have an all-in-one JavaScript runtime, package manager, and build tool. ### Adding React, Vue, or Svelte gradually **Drop in a React/Vue/Svelte component into a Hotwire app?** Use [Turbo Mount](https://github.com/skryukov/turbo-mount) (built by us). No need to rebuild everything. Read [The art of Turbo Mount: Hotwire meets modern JS frameworks](/chronicles/the-art-of-turbo-mount-hotwire-meets-modern-js-frameworks). **Reaching for React or Vue, but not a fan of APIs?** Use [Inertia Rails](https://inertia-rails.dev/) with [inertia_rails-contrib](https://github.com/skryukov/inertia_rails-contrib) (built by us) for generators and dev tools. Use [Typelizer](https://github.com/skryukov/typelizer) to generate TypeScript types from Ruby serializers (and make your React devs happy). We also built [Inertia Rails Skills](https://github.com/inertia-rails/skills)—AI coding skills for Claude Code and Codex that understand Inertia Rails patterns and produce quality code. Read more: [Inertia.js in Rails: a new era of effortless integration](/chronicles/inertiajs-in-rails-a-new-era-of-effortless-integration). Add [Tailwind CSS](https://tailwindcss.com/docs/guides/ruby-on-rails)—it works neatly with Rails. ## Real-time Chats, notifications, typing indicators, presence, cursors, collaboration, live dashboards—most Rails apps need real-time eventually. Rails ships with Action Cable, and Solid Cable, but this tooling won't give you the truly instant and reliable real-time UX. [AnyCable](https://anycable.io/) provides 10x faster streaming—it replaces Action Cable with a Go-based WebSocket server that uses 3x less memory and provides delivery guarantees, resumable sessions, and reliable streams. It keeps the familiar Action Cable API—for Hotwire-only apps, setup is simple: swap the adapter and everything works. [Circle.so](https://circle.so/), [Jobber](https://getjobber.com/), and [Doximity](/clients/doximity) all run AnyCable in production. Also has a [managed version](https://plus.anycable.io/). The developer experience is minimal. Adding [real-time presence to a Hotwire app](/chronicles/simple-declarative-presence-for-hotwire-apps-with-anycable) takes a single HTML tag—`🚀🌟 A huge shoutout to our friends at @evilmartians for helping us bring the new @gmi_cloud website to life in just 3.5 weeks! Your design, animation, and development magic made it happen! 🙌💻✨ #Webflow #SplineTool #GMICloud https://t.co/6UshrGo4K7
— GMI Cloud (@gmi_cloud) July 24, 2024