Back in 2025, most projects had designers drawing screens in Figma and handing them off to our engineers. We took a different approach on Thicket.com, and had Gleb Stroganov (product designer) code from day one. Thicket is an online educational platform where PhD-level experts teach live classes. The founder brought a clear vision and mockups, and our team did the rest. Gleb designed directly in React using bolt.new, prompting, watching the UI render in the browser, and refining in real time. By the end of week one, a real teacher was testing the product. But, as you can imagine, this POC needed manual refactoring. This is when Svyatoslav Kryukov came in. As a senior backend engineer, he manually ported Gleb's React code to Inertia Rails to keep the two systems in sync. Then, the team started using Claude Code, and it changed the entire dynamic. It removed the need for manual porting and allowed both Gleb and Svyat to work in the same Rails + Inertia + React codebase. By the end of four weeks, we had a production-ready MVP that testers loved. They told us: "It's quite simple, in the best way," and "I want it to be up now! I want to put a course on here." This is what we learned from agentic coding on Rails: 1. Agentic coding lives on constrained generation. The quality of your constraints determines the quality of the output. 2. Rails gives you architectural constraints by default. Skills encode the project-specific decisions on top. 3. A senior engineer realizes the vision and catches what the AI misses. Find the full story linked in the first comment.
Evil Martians
Software Development
Brooklyn, New York 6,908 followers
Design and engineering consultancy for developer tools, AI, and cybersecurity startups
About us
We transform growth-stage startups into unicorns, build developer tools, and create open source products. Offices in New York, Porto, and Osaka. Clients trust us to be the core technical team behind their startups, delivering all elements of successful product work: user interface design backed by analytics, agile software development, infrastructure administration, and service reliability. We pay extra attention to mentoring, making sure that the practices we bring in are adopted by the internal team before our collaboration is over. Our projects typically span years, not months. See more at https://evilmartians.com/ and check out our blog at https://evilmartians.com/chronicles.
- Website
-
https://evilmartians.com
External link for Evil Martians
- Industry
- Software Development
- Company size
- 51-200 employees
- Headquarters
- Brooklyn, New York
- Type
- Privately Held
- Founded
- 2006
- Specialties
- lean, agile, outsourcing, prototyping, design, startups, ruby on rails, ruby, erlang, scala, go, postgresql, chef, devops, and devtools
Employees at Evil Martians
Locations
-
Primary
Get directions
77 Sands St
Brooklyn, New York 11201, US
-
Get directions
Rua Alexandre Oneill, 38
Porto, 4400-008, PT
-
Get directions
19F Osaka Umeda Twin Towers North 8-1 Kakuda-cho, Kita‑ku
Osaka, 530-0017, JP
Updates
-
Save the date! The second edition of SF Ruby Conference is happening Nov 10-12. Our first confirmed keynote speaker is Garry Tan, president and CEO of Y Combinator and longtime Rails builder. Ruby on Rails is the common ingredient in success stories like Shopify and GitHub. Last year, we brought together the people building with Rails and the companies shaping its future. This year, we're doing it again in the home to some of Rails' biggest wins. Be the first to know when tickets go live and get early-bird prices: https://lnkd.in/dwrTFsjE
-
-
A designer and engineer worked together to ship a production-ready MVP in four weeks using Rails + Inertia. In this post we share how we built Thicket.com, our agentic coding stack, the skills we built, and what worked: https://lnkd.in/g6v4Pwnd
-
Appearing in LLMs and offering a good agent experience helps devtools win distribution. Before, a developer used to Google "best WebSocket library for Node.js" and read five posts. Now they ask Claude or ChatGPT, get one recommendation, and install it. If your tool isn't in the model's answer, you don't exist. Irina Nazarova ran 50+ developer queries across Claude, ChatGPT, and Gemini with search on, and recorded every source they pulled from. She identified three rules: 1. Help agents discover you. Claude leans on vendor comparison pages, ChatGPT loves Reddit and GitHub issues, and Gemini surfaces academic benchmarks. Build comparison pages, get on awesome-lists, answer honestly on Reddit, and write a README that leads with the problem you solve. 2. Help agents use you autonomously. Invert the funnel: let agents use and create first, humans claim later (Netlify pioneered this). Ship MCP servers, REST APIs, and CLIs agents can operate. 3. Defend against the agents you didn't invite. Your growth channel is also your attack surface. Wallarm audited 501 MCP servers, and 96% had exploitable vulnerabilities. Tag traffic with an actor_type field, issue scoped agent keys, and build four progressive trust tiers (anonymous, keyed, claimed, trusted). Make your product maximally accessible to agents while assuming every agent is hostile until proven otherwise, and do both forever. Full breakdown: https://lnkd.in/eDzuF58Y
-
Waking up to these types of messages is the best way to start the week. Our backend engineer, Julia Egorova, reduced our client's subscriptions page loading time by 94%. This is what working with Evil Martians looks like.
-
-
We studied 35+ successful devtool companies to answer one question: what does product-market fit actually look like in numbers? The idea that 'you'll know it when you find it' felt vague. To us, if so many people go through the same thing, there had to be a path hidden in metrics/milestones we were just not seeing. So we broke PMF down into tangible steps with clear metrics you can track today. Here's Irina Nazarova explaining how it works: Access the compass: www.evilmartians.com
-
We're bolt.new's number one fans! We've witnessed its growth first-hand and helped prepare for it. This is the story of how Bolt got 60k users on day one, didn't break, and was ready to serve enterprise clients before they started knocking at the door. https://lnkd.in/d99BmGG4
-
80% of databases on Neon Postgres are created by agents. 30% of new Supabase signups come from AI builder platforms, like Bolt. 10% of Vercel signups come via ChatGPT. This is likely something you're seeing as well. And if your tool isn't ready to offer a good agent experience, agents will use a competitor that is. But what does an AI agent need to have a good experience? Well, programmatic access from signup to production. We build that layer. We also add agent-aware security guardrails and put AI harnesses in place for better code production. We've already done it for AnyCable (by Evil Martians) and can do it for your devtool too. See what we can do: https://lnkd.in/deiidm5v
-
It's 4 AM. Your app is down. The payment processor started responding slowly, checkout requests timed out, users started refreshing. And now… your entire Rails app is unresponsive. Cascading failures like this are more common than you think, and even early-stage projects can benefit from protection from day one. Circuit breakers are the best defense as they wrap calls to external services, count failures, and trip when they hit a threshold of consecutive failures to block further calls before they exhaust your threads and memory. Traditionally, these work through three states: - Closed: requests flow normally - Opened: calls blocked after too many failures - Half-opened: after cool-off, test requests probe whether the service recovered In Ruby, the Stoplight gem handles this with minimal setup, and reimagines those confusing states as traffic-light colors instead. Each light represents a control system for a specific outbound route, and each of these routes must have a unique name. We recommend you group these lights by service, not HTTP method or function. You can set global or individual level and adjust which errors they'll track. Then, see everything in the Admin Panel as it gives you live status for every light and manual overrides: lock green for testing, lock red to kill a route before it hits threshold. Full guide on how to use circuit breakers with Stoplight by George Asfour: https://lnkd.in/ddZw59QD
-
Evil Martians reposted this
One of the most reliable ways to predict where Rails is going is to watch what survives in production first. AnyCable (by Evil Martians) spent years proving something many Rails engineers suspected all along: The Action Cable API and the Action Cable runtime are two different concerns. Today, Rails Core is moving in that direction as well. And honestly, this isn't a new pattern. The community experiments. Production applies pressure. The architecture survives real-world usage. Rails turns it into an official abstraction. We've seen it before with ActiveJob, ActiveStorage, ActionText, Solid Queue, and Solid Cable. Realtime infrastructure seems to be following the same path. When Action Cable shipped with Rails 5, the programming model and the runtime were effectively bundled together. If you wanted Channels, you got the entire stack. Evil Martians looked at large-scale WebSocket workloads, Ruby memory overhead, thread-per-connection limitations, and the cost of scaling, and asked a simple question: "What if we keep the Rails API but replace the runtime underneath?" That idea became AnyCable. Same Channels. Same "stream_from". Same "perform". Different engine. For years, AnyCable demonstrated in production that the Channel API doesn't have to be tied to a single runtime implementation. And that's an important distinction. Rails has always been at its best when it provides stable abstractions while allowing multiple implementations underneath. The recent adapterization work feels like recognition of exactly that idea. Falcon. Async. Fibers. AnyCable-style runtimes. Potentially all sharing the same Channel layer. Viewed through the lens of Rails history, that's actually a pretty significant compliment. Evil Martians didn't just build an alternative. They spent years proving that the architecture works under production pressure. Eventually, Rails listened. Turns out the Martians were onto something. #rubyonrails #rails #webdevelopment
-