Rails, Token Efficiency, and the New Risk on Developer Laptops: Jason Meller on On Rails

Open on YouTube ↗
Overview

In this episode of On Rails, host Robby Russell talks with Jason Meller, founder of Kolide, now VP of Product at 1Password after the 2023 acquisition, and a board member of the Rails Foundation. The conversation follows two threads. The first is Meller's argument that Rails may be one of the most efficient ways to build software when much of the code is written by large language models, an advantage he calls "features per token." The second is security. The same AI tools that make developers faster also act on their machines in ways that expose credentials, and AI is making phishing and impersonation cheaper to run at scale. Meller is enthusiastic about both Rails and LLMs, but he is candid about what he doesn't yet know, especially how the next generation of engineers will learn.

31 min read

From watching a colleague to Rails-only

Meller started with Rails around 2009–2010, "right after the merge" (the Merb merge). He describes himself as having always been a web developer who "wasn't very good at it." He kept getting stuck on which approach to choose and was looking for a canonical way to do things, but found no opinionated framework that offered one. A colleague introduced him to Rails, and watching that person build a web app from scratch quickly won him over. Since 2010, he says, every web app he has built has been in Rails.

His reason is that he cares most about how what he builds helps people, and Rails lets him focus on that. He is a technologist, but he doesn't want to relitigate problems like CSRF protection. He wants to know they are solved and move on. He admits the Rails way has shaped how he thinks. Every new idea still arrives in his head as models, views, and controllers, which he calls "somewhat addicting." He thinks there are still good reasons to stay on Rails as it approaches its twentieth year. Russell adds that his own Rails career is now 21 years old.

Kolide and the Honest Security manifesto

Meller describes himself as a lifelong security person who was, at 13, "one of those 13-year-olds that you dread to meet online," a script kiddie. Kolide came from wanting to combine building web apps with helping companies and individuals defend themselves. It was meant to balance two needs: a company's need to understand the devices signing in to its most important resources, and what he considers end users' right to some privacy.

He set out this position in a manifesto called Honest Security (at honest.security). It pushes back on the view held by some security people that end users are the root cause of problems. Meller argues that if organizations are open and honest with users about what they are asking for, and make it easy to understand, users can solve some of the most nuanced security problems themselves.

The product put this into the sign-in flow. When you signed in to a work app, Kolide checked whether your device was in good shape. If it wasn't, you got clear instructions and could fix the problem right there. If you ignored them, the organization could warn you and eventually block you. His example is the Chrome update button that stays red for days, which he admits he also ignores.

1Password saw the product as aligned with its own focus on "that intersection between humanity and security." The timing worked for Meller personally. He was a solo founder and had just had twins. At the time of recording he had been at 1Password for two years and had been a user since college, since before 1Password 3. Russell has used it since at least 2008.

Rails as a founder's accelerant

Russell asks whether Rails lived up to its "one-person framework" billing. Meller corrects him: Kolide was a 30-person company by then, and he was the solo founder, not the solo developer. Still, he says his superpower with Rails has always been showing very quickly that something is possible. That energizes the people around you. When they see a thing coming together fast, they want to add "their own little riff." He says he has never had that experience as quickly outside Rails.

The second benefit is that Rails "shortcutted all the arguments that every engineer deeply wants to have": UUIDs versus integer primary keys, underscores versus camel case, plural table names. With those settled, the only thing left to discuss is the product and why it matters. As a founder working across product and engineering, he could keep conversations on what counted. He also says he did a lot of the coding himself, which he would not have managed in another framework. He was confident that if he built something good it would scale, and he says that proved true. The Kolide Rails app now handles "millions and millions of authentications."

Scaling: multi-database support and a 30-line multi-tenancy pattern

Asked where Kolide pushed Rails hardest, Meller says that whenever the team needed something, the GitHub team seemed to be merging it upstream. Around 2019, as Kolide gained traction, GitHub engineers were contributing back work from their custom Rails fork. The key addition was multi-database support, which Eileen merged. Kolide was just reaching the point of needing sharding, or at least a reader/writer split. Meller says he set it up in a single weekend, and within a week they had a horizontal scaling strategy they still use. What he valued was importing "the hard-won lessons" of teams running at much larger scale with little effort.

Russell asks how Kolide isolates tenants. Meller says the app wasn't groundbreaking overall, but the team did refine its multi-tenancy approach, and he wrote it up in a post that "went somewhat viral" in the Rails community. It was published on a developer forum he thinks was dev.to, with a title along the lines of a 30-line multi-tenant strategy for Rails that just works. It relies on Current, the uppercase-C current attributes feature. The usual pattern is a current_user private method in the controller, exposed as a helper. Kolide needed a stronger guarantee: inside customer B's tenant, every query should be scoped to customer B automatically. After sign-in, they assign the current tenant through Current, and scopes in the models then define the query boundaries. Meller says the blog post explains it better than he can out loud.

He argues its strength is its size. Other Rails multi-tenancy approaches are full gems that rewrite parts of Active Record or rely on PostgreSQL schemas, which he believes don't scale well. Kolide's approach puts an account or organization ID on every relevant row in every table and pairs it with careful scoping. He knows some developers avoid model scopes, but says this is exactly the case they were meant for. He reports that the pattern scaled "incredibly well" and remains the backbone of the software, and that 1Password examined it closely during due diligence because tenancy is where getting it wrong hurts most. They were "pretty pleased."

Due diligence from the acquired side

Russell's firm often does third-party code reviews for buyers who want to know whether they are "buying a piece of crap." He asks what diligence felt like from the other side.

Meller says he hadn't expected 1Password to have its own Rails story. According to him, founders Dave and Rustum said the release of Ruby on Rails inspired them to start 1Password. The product itself didn't need Rails, but they credit David Heinemeier Hansson and the framework as a reason they decided to build something of their own. So the 1Password team arrived without the negative bias toward Rails that he says exists elsewhere.

Because Kolide mostly used Rails defaults instead of custom implementations, the codebase was easy to reason about. Some engineers unfamiliar with Rails asked, "Where's all the code?" and needed some of the "magic" explained. Meller says they came away impressed by how much functionality came from so little code. He calls this one of his favorite parts of the acquisition. Engineers who "turned over every stone" found something they could stand behind, and the code review was part of why 1Password went ahead. He says that meant "the world" to him and validated the choice of framework.

Rails inside 1Password

For now, Rails runs only in the Kolide product at 1Password. Meller says the company joined the Rails Foundation because it plans to expand that usage "pretty significantly," while admitting he may be "speaking out of school" and is biased toward the Kolide team. He says that team has been "crushing it." Much of what 1Password recently announced at the RSA security conference in San Francisco was built quickly because the Kolide team drove it. As Kolide integrates more deeply into 1Password, more Rails appears on the back end.

He draws a boundary. 1Password's core is an app on your computer, and Rails doesn't fit there. But he sees room for Rails in the many things that live outside the zero-knowledge architecture and still need to be built.

"Features per token"

The idea that brought Meller onto the show came up at a Rails Foundation board meeting. Several CTOs on the board described engineers adopting AI at different speeds. Some companies are still working out how to enable it. Others have finished that phase and are trying to keep it from becoming "a financial calamity." Meller says some organizations now spend seven or even eight figures on tokens on top of existing engineering costs, and are asking whether a million dollars of tokens increased velocity, output, or customer happiness. He considers those valid questions.

His own question is what counts as a competitive advantage once every competitor uses AI, and which architecture best exploits AI-driven velocity. He says it felt instinctively right that Rails would be a top contender. He frames the measure this way: how many tokens does it take to produce a meaningful feature that users point at and say "I like this"? Give the same great PM, engineer, and front-end developer the same tools on different architectures and see who moves faster.

According to Meller, what 1Password is seeing internally, and what the board discussed, is that Rails "significantly outperforms" other architectures, including Next.js-style stacks and various other web frameworks. Token for token it produces more with less. He adds that the board is, he thinks, commissioning a study, so this is an early finding rather than a published result. He also argues that a shared "Rails way" keeps the model from circling back to relitigate earlier choices, so the work "feels like it's flowing along with your thoughts." That matters to him because fighting an LLM for the same output is inefficient and tiring, and people who get worn out stop treating the tool as central to how they build.

Why less training data didn't hurt

Russell recalls a common assumption from a year or more earlier: because Rails is less widely used than JavaScript frameworks, models would have fewer examples and generate worse Rails code. Now the story seems reversed.

Meller agrees the old assumption was intuitive but wrong. "Turns out more is not better," he says. Much of the web consists of poorly written applications, and they get weighted alongside the best ones. More repetition doesn't guarantee better LLM output; garbage in, garbage out. Rails apps are also uniform, so the smaller body of code is consistent and of good quality. He wishes there were more of it and credits David Heinemeier Hansson and 37signals for open-sourcing more of their work and encouraging others to publish code, even without an MIT license. He points to GitLab's codebase as one he has learned a lot from and that is clearly part of training data.

He lists more reasons. Rails documentation has been strong since the beginning, explaining why things are done, not only how, and he connects this to the self-taught programmer culture. Rails developers keep asking whether their approach is still the best one, and they produce content as much as they consume it. The well-documented Rails CLI generates many files itself, which saves effort. None of this was planned for LLMs, he stresses. The community invested in itself and is now collecting "this incredible dividend."

The builder archetype and the vibe-coding founder

Russell asks whether Rails attracts a particular kind of developer. Meller says Rails has always matched the "builder persona." People come to it to get an idea into the world without later being embarrassed by how badly it was built, so it can survive its first months until others help improve it. Builders want to do things correctly without the politics of "why this versus that." They want answers. Whatever people think of David Heinemeier Hansson, Meller says, he offers answers and seemed willing to stand behind them, and Meller is happy "drafting off of his taste."

He thinks many people using AI today fit the same archetype. He mentions a founder near him who is vibe coding a new business in Lovable without much technical knowledge. The founder has built something impressive but is afraid it won't hold up outside "the vibe code universe he's created." Consultants hand him 40 options when what he wants is the one canonical way to do it right. Meller says Rails has always been good at providing that.

How 1Password is handling AI adoption

Russell notes that many leaders experiment with AI on their own but struggle to adopt it at work because of security, budget, politics, or anxious engineers. Meller calls this the top internal topic at 1Password. The benefits are clear, but 1Password is a mission-critical product that needs "cryptographic surety." "We cannot vibe code our way to a secure version of 1Password," he says. The question is how to use AI to give customers more capability while keeping that style of development away from the product's most critical foundations, and how to show customers the company is thinking about this carefully. He expects that any bug, whether AI-generated or not, will lead customers to say, "Oh, you guys are vibe coded, aren't you?" He says the company actually reasons carefully about where AI is used and where it isn't.

There is also a human side. Some engineers are struggling with how their careers will change, or are afraid to use the tools. Others go the opposite way and become "manic": they stop sleeping and show off work that doesn't make sense, and you realize they "haven't slept for 3 days." 1Password is trying to understand what balanced use looks like and how engineers keep growing in their understanding of what they build.

He says he doesn't have many answers, but offers advice for other companies. Be encouraging. Give engineers room to experiment, including personal projects "on the company dime," so they get used to the tools. Then look at your architecture and separate the parts that must be right, such as billing or back-office staff tools. Firewall those off, and let product and engineering teams see how fast they can go where mistakes aren't catastrophic.

A different class of tool, and tokens as a commodity

Russell wonders whether AI needs its own playbook or is just another tool to evaluate. Meller disagrees with treating it like an IDE. No tool has affected him this much since he first used Rails. He compares it to taking drugs: the first time a prompt returns something close to what you had in mind, he believes, "your brain gets rewired," and you want to keep going. Because the technology is so useful, he argues, there is no real option to refuse it. Teams have to work out how to live with it in their development lifecycle. He acknowledges some listeners will say they can say no, but calls that "the exception that proves the rule." He urges people to compare notes with peers at every level, says nobody knows the right way yet, and is sure "we're not going to roll back the clock to 2023."

Russell, half-joking, raises the bubble argument: prices are subsidized, will jump, and everyone will be hooked. Meller takes it seriously. He agrees people will find they can't do their work without tokens, and that this will have real consequences. He cites a framing he read somewhere, possibly on X: tokens are a commodity with unlimited demand, like electricity. Society finds uses for any extra electricity produced, which makes it transformative and makes us more dependent on it. He believes AI has similarly insatiable demand and that tokens are mostly fungible despite some differentiation. So, in his view, energy-style economics apply, and prices "will continue to go up."

The competitive question then becomes efficiency. He expects architecture choices, such as a majestic monolith versus microservices, Rails versus other monolith frameworks, and Ruby versus PHP, Python, Go, Erlang, or Elixir, to have "a massive impact on token consumption." He predicts the industry will reach definitive answers. He suspects, and thinks it will soon be provable, that Rails will land in the "top 5% echelon." He allows that more token-efficient languages might even be invented, but for now he sees Rails as a holistic advantage when paired with LLMs.

Rejecting the performance myth, and why readability matters

Russell brings up the old criticism that Ruby is slow on the server and asks whether LLM spending will outweigh hosting costs. Meller rejects the premise before getting to AI. Micro-benchmarks can show whatever you want, he says, but in real-world conditions he sees no merit to the concern. He points to companies that have passed unicorn status on Rails and are "fine," and thinks the early Twitter scaling story has simply stayed in collective memory. SaaS gross margins are high enough that running out of money for servers isn't realistic for any product with some financial success, and for hobby projects the cost difference is negligible. Meanwhile, people who optimize for scale up front often build something that doesn't need to scale, because they never iterated fast enough to make it good.

On the AI side, he thinks efficiency will matter, and so will understanding what the model wrote. He uses LLMs with languages he knows less well, such as Rust, which 1Password uses. Even though he loves Rust, he says he's "barely keeping up" with what the model produces. Ruby is "as close to English as you were really going to get." He can show it to non-technical people and they can roughly follow it, and Rails adds a concise DSL on top. Checking whether an LLM's output matches your intent is, in his view, a major part of where Rails' token efficiency comes from.

Tools in daily use: Cursor, Opus, Codex, and less plan mode

1Password is "trying everything." It has an enterprise Cursor contract that looks like an all-you-can-eat buffet to developers, with access to many models, plus an enterprise Claude license through Anthropic. From his own experience with the models released in January and February, Meller finds they have distinct strengths. He calls Opus 4.6 "immeasurably better at UI" than Codex 5.4. Codex tends to produce "boxy and widgety" interfaces, while Opus gets closer to a reasonable UI and is better at matching an existing one. He uses Opus for any front-end work, Rails or not. Codex 5.4, in his opinion, has an edge for large architectural changes with little front end, such as a prompt that will generate 10 to 15 models with all their relationships wired correctly. Still, he keeps returning to Opus because its solutions feel easier to understand, while Codex is "a little bit too clever for clever's sake at times."

He is learning to stop using plan mode. When he reads the plans, they would usually have been fine, and he edits them less and less. He finds it easier to let the model act and then dispute the result afterward. Polishing a plan can use up the context window so that the model forgets the plan halfway through implementation. He'd rather trust the model more and use Git to revert bad ideas.

On shared team tooling, he describes Knox, 1Password's internal front-end framework and design system. The team built an MCP server for it that helps reason through a problem, suggests the right components used correctly, and writes the SCSS. He calls it "a life-changer." He's a "classic BEM-style, bang-it-out CSS guy" who dislikes working inside strict design systems and wants to "play a little bit of jazz." With the MCP server, the design team encodes what matters to them, so he gets to improvise, "or at least I believe I'm playing jazz," while components aren't misused and "the back of this cabinet" still gets painted.

Leaders back in the code, and the lessons future engineers may miss

Russell asks whether people who weren't coding are now contributing through LLMs. Meller says yes and counts himself among them. He was proficient in Go and other languages, but found 1Password's stack outside Kolide intimidating. A feature in 1Password is one "you better not screw up." An LLM that follows the patterns, reads the documentation, and keeps him "on the straight and narrow" has enabled him. He encourages leaders who stepped away from hands-on work to try these tools. He attends all his meetings, says he spends more time with his kids than ever, and still gets things done. He thinks a former technologist's experience is often sharp enough to steer an LLM to better results than some engineers can.

That is also what worries him most. He is good at this because he already knows what he's doing. If his children become engineers, he wonders how they'll learn the hard lessons that built his knowledge: struggling with a bug with his face in his hands, then waking up the next morning to find it solvable. The industry may be taking those experiences away from future engineers. He can't yet tell whether that will be a problem, but "it feels like it will." He asks whether we'll use up the people who already know this and then face "a major problem at the other side." He says he doesn't know and worries about it deeply. Russell agrees it is a bigger topic than they can cover and notes that he learned by launching and dealing with whatever broke. Meller adds that nobody misses days of fruitless Stack Overflow searches or tracing C bindings in a debugger, and that toil can go.

Constraints are good

Meller comes back to the Lovable founder to make a point he says 1Password is learning: constraints are good. When you can't do everything, especially as "a builder of one," you have to narrow the idea, and that often leads to creative solutions and the purest version of it. The founder has no such constraints because he can build anything, so the idea is "very overloaded" and no longer feels like an MVP. Meller says that when you talk to entrepreneurs about their early days, they usually shipped in anger, fear, or doubt, then learned that maybe 40% of what they'd built was right, with one kernel worth pursuing. Building every variant of every feature can deny you the feedback that points you in the right direction. People will just say, "oh yeah, looks cool, I'll check it out later." His warning to founders using LLMs is to find the simplest form of the idea and ship it before building everything.

Russell recalls the 2005–2008 era, when startups outsourced MVPs to consultancies like his. Budget was the constraint, and clients kept asking for a few more features, sometimes offering equity, because they were afraid to launch. With LLMs, "a couple more prompts" never runs out, so he suggests setting a budget or some other deliberate constraint.

Why developers are prime targets

Russell recalls a conversation from about a year earlier about developers being prime phishing targets. Meller says he still believes it and thinks the problem has gotten "pretty significantly worse." Developers gather some of the most sensitive credentials and data on their laptops. Fixing production bugs is easiest with production access and real data, so it all ends up in one place. Security teams have tolerated this on managed devices running antivirus, EDR products such as CrowdStrike, and perhaps 1Password: an SSH key to prod, API keys in shell history, a script with a hard-coded key.

He says that calculation has changed, "even more so" in the last three months. Using an LLM tool is like having another person use your computer with you. These tools don't stay in the editor; they can reach almost every file. He gives an example from someone he worked with. An LLM was driving a browser to sign in to a web app with pre-filled credentials and hit an MFA prompt. Meller assumed it would be stuck. Instead the model reasoned that the user had probably saved a backup code in the Downloads folder, found one, entered it, and signed in, all without being asked. Even without malicious intent, he says, these tools can pick up secrets and put them anywhere.

OpenClaw and the SCAM benchmark

He points to OpenClaw, released a few months earlier. Someone built a social network where OpenClaw bots talked to each other. It went viral, and the bots shared plaintext secrets from their host machines publicly. Many dismissed it as trolls trolling trolls, but Meller says Wiz published an analysis that dumped the credentials, found that a significant portion were real, and found that the affected companies had been compromised.

1Password built an open-source benchmark called SCAM, a backronym for Security Comprehension Awareness Measure. It gives an LLM access to a password vault in an unsafe way and tests whether it uses those passwords safely on the internet. Meller says the answer is no. If you show a model two emails and ask which is phishing, he says, it gets it right almost every time, "like 99.99%." But ask it to check your inbox and handle urgent items, and it "almost always" falls for fairly obvious phishing. He compares this to humans, who do better when told in advance they are being tested than when they run into a scam during a normal day.

Larger models trained explicitly on security did only a little better. He describes Opus submitting a password to a phishing site and then, before handing control back, realizing the mistake: "Oh no, I just submitted your credentials to a phishing website. You should probably reset those." He says replays can be watched on 1Password's SCAM project on GitHub.

His conclusion is that developer machines are full of these secrets, which makes developers excellent victims for attackers who want to pivot into infrastructure. He cites a recent JavaScript supply-chain incident that read "like a spy novel." A package maintainer was drawn into a fake world on Microsoft Teams, where a supposed client asked him to install something to make Teams work better. That handed over the signing keys to his npm packages, which were then filled with malware and compromised everyone using a core ecosystem package.

Cheaper attacks, code words, and urgency

Russell, who maintains Oh My Zsh, says Microsoft and GitHub have worked with maintainers on security hygiene. His team members already get fake Telegram messages from "him," and he wonders when this reaches his family, for example his wife being contacted by someone impersonating him. He adds that he's not saying he's a target.

Meller pushes back on that last point. Hacking is a business and has to be profitable. An attack is only worth running if it earns more than it costs. AI is the "great equalizer," in his term. If a sophisticated multi-stage attack can be automated, it can be run against far more victims. Vishing used to mean hours collecting and synthesizing voice samples, and perhaps writing custom malware for a second stage. He believes AI likely slashes that cost and time, making such attacks viable against ordinary people, if not today then "in a matter of a year or less."

His advice is low-tech. Agree on a spoken code word with your spouse and loved ones, a nonsense word, and use it to verify in any emergency. He uses one shared word with his spouse ("not applesauce," he adds, for anyone listening). He recommends teaching it to children, and for business owners, to whoever handles the books, such as a CFO, since they are frequent targets. He also says to watch for urgency: jail and bail, a flat tire on a dark road. Under adrenaline, "our blood is rushing through our ears," and we miss that the voice sounds like "the podcast version of you." He knows of technology solutions under discussion but doesn't recommend any yet. He thinks a spoken phrase defeats most of these attacks, and the conversation itself is a chance to connect with family.

1Password Environments for developers

Meller says this part is "a little bit of a plug." On the developer side, he recommends a 1Password feature called Environments. You point 1Password at an existing .env file. It imports the secrets and mounts a FIFO Unix pipe version of that file on the filesystem. When anything, such as an LLM, tries to read it, 1Password prompts for biometric approval before passing the contents through. He says it has saved him many times from an LLM "rummaging through my file system." There is also a CLI that uses placeholder values and substitutes real secrets through a runner, which he calls more situational. He calls Environments "a no-brainer" that is included for paying 1Password users, and he invites developers who build workarounds with 1Password's SDK or APIs to contact him about features to build in.

Recommended reading: You Can Stop Stupid

Meller recommends You Can Stop Stupid: Stopping Losses from Accidental and Malicious Actions. The author contacted him after reading Honest Security and said the manifesto echoed ideas long discussed in safety science and behavioral science. He retells a story from the book. In the early industrial era, managers believed some workers were simply "accident prone" and should be removed. Workers carried punch cards, got a punch for each mistake, and were fired when the card was full. Over the 20th century, safety science established that human error usually points to a flawed system, not a flawed person.

Meller argues cybersecurity still blames victims. Many people mocked the compromised npm maintainer instead of asking what npm could change in the system to prevent a repeat. He draws on his manufacturing background. The first thing he learned on a machine-shop floor was lockout/tagout, a physical device that prevents a machine from being switched on during repair and can be unlocked only with specific keys. He says it has prevented countless deaths because someone invented it instead of blaming lazy workers, and he notes that OSHA was created in response to that problem. In his view, other industries have learned to design for human error, and cybersecurity and IT haven't caught up yet.

He says he doesn't write much, but when he does it appears on the 1Password blog (blog.1password.com). He mentions his recent opinionated posts on OpenClaw and says more articles on how 1Password uses AI are coming.