The Opinionated thoughtbotter: Bootstrap is the Superior Front-End Toolkit

Steve Polito makes the case for Bootstrap as the best front-end toolkit for server-rendered applications. In this episode of The Opinionated thoughtbotter, he and Svenja Schäfer debate Bootstrap vs. Tailwind, MVP speed, customization, documen... | Continue reading


@feed.thoughtbot.com | 2 months ago

Giant Robots Podcast Ep 606: AI layoffs are BS

Chad, Sami and Will bring a growing issue to the forefront as they discuss whether AI really is to blame for recent industry layoffs. | Continue reading


@feed.thoughtbot.com | 2 months ago

Meet Duck Typer: your new duck typing friend

Keep the beauty of duck typing with no annotations while still catching missing methods, mismatched signatures, and accidental drift across classes. | Continue reading


@feed.thoughtbot.com | 2 months ago

I copied a prompt and built a management system in a week

How I used Claude Code to build a GTD-based management system from a borrowed idea, meeting transcripts, and three days of real work. | Continue reading


@feed.thoughtbot.com | 3 months ago

Observability for your LLM-powered apps: OTel Instrumentation for RubyLLM

LLM calls are black boxes in production. Learn how to add structured observability to your RubyLLM-powered app with OpenTelemetry. | Continue reading


@feed.thoughtbot.com | 3 months ago

The Bike Shed Ep 498: Season 2 Recap

Our hosts come together to wrap up season 2 and share some of their highlights along the way. | Continue reading


@feed.thoughtbot.com | 3 months ago

Introducing Test Budget: a linter for test performance

Your test suite didn't get slow all at once. It won't get fast all at once either. Start by making sure it stops getting worse. | Continue reading


@feed.thoughtbot.com | 3 months ago

How to launch a Lovable MVP in 2026

AI tools can spin up polished apps in a weekend, but speed makes it easier than ever to build the wrong thing. Here’s how to turn a “Lovable MVP” prototype into a real product that delivers value. | Continue reading


@feed.thoughtbot.com | 3 months ago

The Bike Shed Ep 497: Diagrams we love

Aji and Joël get into a flow as they discuss the different diagrams that help guide their thought processes when working. | Continue reading


@feed.thoughtbot.com | 3 months ago

Claude Skill incoming! Generating Postman collections with AI

When speed matters more than perfection, API documentation can quickly become a bottleneck. In this post, I share how we used thoughtbot’s Claude Skill to generate Postman collections directly from a Rails codebase. | Continue reading


@feed.thoughtbot.com | 3 months ago

Combine Capybara selectors to avoid the sequential timeout trap

How I shaved over a minute off a test suite with a one-line change. | Continue reading


@feed.thoughtbot.com | 3 months ago

The Bike Shed Ep 496: Test suite performance

Joël and Sally cover all the bases as they look at improving their test suite performances times. | Continue reading


@feed.thoughtbot.com | 3 months ago

Your chat bot needs a better rate limit strategy

Don't let one ambitious user trigger a denial of service. | Continue reading


@feed.thoughtbot.com | 3 months ago

The Opinionated thoughtbotter: Linting is Non-Negotiable

Linting isn’t about tabs vs. spaces. It’s about team consistency. thoughtbot senior developers Svenja Schäfer and Rémy Hannenquin talk code style, automation, PR review sanity, and why “just format the whole codebase” might be the least painf... | Continue reading


@feed.thoughtbot.com | 3 months ago

How to choose and implement an LLM for your healthcare product

Choosing and implementing the right large language model for healthcare requires balancing security, economics, and inevitable hallucinations. Here’s what you need to know before integrating AI into your product. | Continue reading


@feed.thoughtbot.com | 3 months ago

48 companies you didn't know were using Rails in 2026

Rails is still alive and kicking in 2026, and a lot of companies trust it for their applications and backend infrastructure. | Continue reading


@feed.thoughtbot.com | 3 months ago

Claude Code skills: Automating FDA-required documentation for software as a medical device

Generating and maintaining FDA-required documentation for software as a medical device can be tedious and time-consuming. We built a Claude Code skill to automate documentation for 510(k) submissions. | Continue reading


@feed.thoughtbot.com | 3 months ago

The Bike Shed Ep 495: A shortcut to years of experience

Sally and Aji flick through thoughtbot’s guide to best practices in a bid to brush up on their coding habits. | Continue reading


@feed.thoughtbot.com | 3 months ago

Giant Robots Podcast Ep 603: The product we are going to build

Sami makes his triumphant return to the Giant Robots Smashing into other Giant Robots Podcast as he and his fellow hosts discuss a brand new tool currently in pre-production at thoughtbot. | Continue reading


@feed.thoughtbot.com | 3 months ago

Going beyond vibe coding with ReadySetGo

Introducing ReadySetGo. An AI application generator that creates first versions of products, built in Rails, to thoughtbot’s best practices. Not throwaway, vibe-coded prototypes. Real foundations that can be built upon. | Continue reading


@feed.thoughtbot.com | 3 months ago

Going beyond vibe coding with ReadySetGo

Introducing ReadySetGo. An AI application generator that creates first versions of products, built in Rails, to thoughtbot’s best practices. Not throwaway, vibe-coded prototypes. Real foundations that can be built upon. | Continue reading


@feed.thoughtbot.com | 3 months ago

Giant Robots Podcast Ep 603: The product we are going to build

Sami makes his triumphant return to the Giant Robots Smashing into other Giant Robots Podcast as he and his fellow hosts discuss a brand new tool currently in pre-production at thoughtbot. | Continue reading


@feed.thoughtbot.com | 3 months ago

A JavaScript developer's guide to Rails: Authorization with Pundit

Learn how Pundit authorization actually works in Rails, from request flow to policy scopes, with practical examples for JavaScript developers. | Continue reading


@feed.thoughtbot.com | 3 months ago

A JavaScript developer's guide to Rails: Authorization with Pundit

Learn how Pundit authorization actually works in Rails, from request flow to policy scopes, with practical examples for JavaScript developers. | Continue reading


@feed.thoughtbot.com | 3 months ago

Our first Tech Leaders Meetup in Bristol, UK

Our Tech Leader UK Tour is coming to Bristol on March 19th. This is your invite to connect in person with the thoughtbot team and other product leaders in South West England. | Continue reading


@feed.thoughtbot.com | 3 months ago

Our first Tech Leaders Meetup in Bristol, UK

Our Tech Leader UK Tour is coming to Bristol on March 19th. This is your invite to connect in person with the thoughtbot team and other product leaders in South West England. | Continue reading


@feed.thoughtbot.com | 3 months ago

The Bike Shed Ep 494: Primitive Obsession

Joël and Sally examine the simpler components of programming and why using basic data structures may not always be the best approach to solving a problem. | Continue reading


@feed.thoughtbot.com | 4 months ago

The Bike Shed Ep 494: Primitive Obsession

Joël and Sally examine the simpler components of programming and why using basic data structures may not always be the best approach to solving a problem. | Continue reading


@feed.thoughtbot.com | 4 months ago

props_template 1.0: A high performance, more opinionated jbuilder replacement

props_template 1.0: A high performance, more opinionated jbuilder replacement | Continue reading


@feed.thoughtbot.com | 4 months ago

props_template 1.0: A high performance, more opinionated jbuilder replacement

props_template 1.0: A high performance, more opinionated jbuilder replacement | Continue reading


@feed.thoughtbot.com | 4 months ago

A JavaScript developer's guide to Rails: What is Polymorphic Rails Model?

Learn how Rails polymorphic associations work under the hood, from database schema to model setup, with clear examples for JavaScript developers new to ActiveRecord. | Continue reading


@feed.thoughtbot.com | 4 months ago

Claude Code: Production ready code in a two-week sprint

AI-generated code doesn't have to be throwaway code. Here's how we used Claude Code to build a fully-tested, production-quality Rails prototype in two weeks, complete with a robust test suite, clean commits, and code we were proud to have written. | Continue reading


@feed.thoughtbot.com | 4 months ago

Teach your models to act, not just be

…or end up hunting for logic in jobs and controllers. | Continue reading


@feed.thoughtbot.com | 4 months ago

Announcing Michel: A scheduling gem for health tech

Remove bottlenecks to booking appointments by enabling self-scheduling within your app. | Continue reading


@feed.thoughtbot.com | 4 months ago

A JavaScript developer's guide to Rails: ActiveRecord Fundamentals

Learn how Rails ActiveRecord differs from JavaScript ORMs and why the database-first approach eliminates boilerplate. | Continue reading


@feed.thoughtbot.com | 4 months ago

The Bike Shed Ep 492: Defining value within your team

Sally and Aji assess some common metrics for success when working a project and how they may not always provide the clearest picture of how things are going. | Continue reading


@feed.thoughtbot.com | 4 months ago

What do our workspaces look like? (2026 Edition)

Come and see some of thoughtbot's fabulous workspaces. | Continue reading


@feed.thoughtbot.com | 4 months ago

Giant Robots Podcast Ep 601: The thing that makes us human

Chad and Will examine the ever expanding AI bubble and ponder on what we can expect it to see evolve in the coming years. | Continue reading


@feed.thoughtbot.com | 4 months ago

A JavaScript developer's guide to Rails: What does Composition Over Inheritance mean?

Rails framework code is full of inheritance magic, but your application code doesn't have to be. Learn how composition makes dependencies explicit, testing easier, and debugging a breeze—using patterns you already know from JavaScript. | Continue reading


@feed.thoughtbot.com | 4 months ago

The Bike Shed Ep 491: Influences that shaped our thinking

Joël and Aji reference their personal bibliographies as they compare the different influences that have shaped their programmer world view. | Continue reading


@feed.thoughtbot.com | 4 months ago

What Shoulda Matchers Is Actually Doing For You

Rails model specs full of setup and error-message checks? There’s a reason so many teams replace them using shoulda-matchers. We’ll look at what those expectations are doing, how they make your tests more resilient to changes, and a lot less noisy. | Continue reading


@feed.thoughtbot.com | 4 months ago

Giant Robots Podcast Ep 600: The Special One

Celebrate Giant Robots’ 600th episode in style as Sami pulls together thoughtbot staff old and new to celebrate this monumental milestone. | Continue reading


@feed.thoughtbot.com | 4 months ago

A JavaScript developer's guide to Rails: Where Does Everything Come From?

Discover where Rails methods come from and solve the biggest confusion JavaScript developers face when learning Rails. | Continue reading


@feed.thoughtbot.com | 4 months ago

Code Audits in the Days of AI

Run a code audit on your Rails app using thoughtbot's best practices. | Continue reading


@feed.thoughtbot.com | 4 months ago

The Bike Shed Ep 490: Large Language Misadventure

Aji and Sally sit down to dissect the complicated beast that is AI. | Continue reading


@feed.thoughtbot.com | 4 months ago

This week in #dev (Jan 9, 2026)

Overriding Rails credentials, a helper to submit forms with images and how to count tests with rspec's --dry-run option. | Continue reading


@feed.thoughtbot.com | 4 months ago

Our UK Tech Leader Tour

In addition to our regular tech leader event in London, we're partnering with local tech leaders to bring the event to Manchester, Bristol, Brighton, and Edinburgh this year. | Continue reading


@feed.thoughtbot.com | 5 months ago

Giant Robots Podcast Ep 599: Be Bold

Chad and Will start the new year off right by discussing their aspirations for 2026. | Continue reading


@feed.thoughtbot.com | 5 months ago