What it’s like to work with thoughtbot’s designers who code

At thoughtbot, our designers not only provide traditional design expertise through research, product design, design systems, etc., but they also write code and consult with client teams to help them grow. We wanted to better understand our client’s perspective on working with tho … | Continue reading


@thoughtbot.com | 14 hours ago

A new version of Suspenders has been released!

We took our Suspenders to the tailor and made some alterations. If you just want to see what changed, you can view the new feature set. Otherwise, continue reading to learn more. What changed? In an effort to achieve our goals, we removed the suspenders system executable and repl … | Continue reading


@thoughtbot.com | 14 hours ago

Market segmentation is more fun than it sounds

Market segmentation is a technique for determining who will buy or use your product. Essentially you brainstorm a boatload of possible user types, organize them, and rank them. By the end of the exercise, you should have a shortlist of customer segments you can research and inter … | Continue reading


@thoughtbot.com | 3 days ago

Why you should nest modules in Ruby

For the most part there’s no difference between these two ways of defining a class or module: # nested module Admin class User end end # inline class Admin::User end The difference is often described as stylistic, but there are a couple of functional differences between the … | Continue reading


@thoughtbot.com | 4 days ago

Meet us at Helvetic Ruby 2024

Since I began my journey in tech almost a decade ago, I’ve loved attending conferences. They’ve not only taught me a lot but also helped me make some great friends. Trying new things, like giving my first talk and organizing events, has been really rewarding. And this week I’ll b … | Continue reading


@thoughtbot.com | 4 days ago

On May 20th we are hosting an AI startup at our Pitch Deck Review Event

Our past events have been so productive, we’ve decided to keep the party going and have expanded our team of judges. This month we are hosting Eduardo Henriques the CEO and Co-founder Ponder.ly. Ponder.ly harnesses AI to dissect and interpret survey responses, transforming them i … | Continue reading


@thoughtbot.com | 4 days ago

This Week in Open Source

I’ve expanded on the definition of “this week” to actually mean “3 weeks that occured in March.” 👀 At least for today. The theme of this edition is dynamic README workflows. Have you heard the word? You can read more about the work Stefanni Brasil (stefannibrasil) and Aks … | Continue reading


@thoughtbot.com | 5 days ago

Installing thoughtbot dotfiles on GitHub Codespaces

Consulting for large clients that have apps with complex stacks has us working with Github Codespaces more frequently. Codespaces has a tight integration with Visual Studio Code if that’s your jam, but I personally use neovim, tmux, and a fork of the thoughtbot dotfiles manged by … | Continue reading


@thoughtbot.com | 6 days ago

How We Used a Custom Enumerator to Fix a Production Problem

Enumerators are a powerful Ruby feature. Did you know that you can create custom enumerators with custom logic? Today, I will tell you how we fixed a production problem with a custom enumerator. Problem We had a method like the following: def customer_property_ids sql = "SELECT … | Continue reading


@thoughtbot.com | 7 days ago

One-way vs Two-way door decisions

Making decisions is part of everyday life. However, not all decisions are created equal. Some are easily reversible and should be made quickly with a bias toward actions while others have a long-lasting effect or are irreversible; those require careful and deliberate planning bef … | Continue reading


@thoughtbot.com | 10 days ago

Tips For Using AI-Generated Images In Your Slides

I gave a talk on Tropical.rb and, while writing it, I had a goal of not using bullet points in my slides. That made me create a lot more slides, and many of them contained images. I used AI to generate the illustrations for my presentation, but it required some work to get them t … | Continue reading


@thoughtbot.com | 12 days ago

This Week in Open Source

It’s May, but you wouldn’t know it from the back-dated open source updates brought to you this week 👀. I’m making progress, aren’t I? The theme of these updates, which range from February 16 through March 1st, is “dependabot keeps us honest.” We saw updates to the followi … | Continue reading


@thoughtbot.com | 13 days ago

Advanced Ruby: The Chainable Request Pattern

In the previous article of my series on error handling and fault tolerance, we discussed how to run external API requests in a transaction while handling errors and making it fault-tolerant. That article is not a requirement to understand this one, so read on in either case! Here … | Continue reading


@thoughtbot.com | 14 days ago

A peek inside my meeting facilitation playbook: co-pilot with me ✈️📕

TLDR; practice, welcome feedback regularly, and remain biassed towards bringing people together to achieve outcomes. Be audience-centric: identify your audience and desired outcomes, then ruthlessly tailor your exercises and experience. Prepare: keep any inputs or reference mater … | Continue reading


@thoughtbot.com | 17 days ago

Even for AI, there are considerations more important than technical feasibility

We started the year in a frenzy of AI/ML interest and it’s still going strong. It seems like every event we attend has an AI/ML panel, and our #machine-learning Slack channel regularly discusses a new article, open-source library or resource. In reflecting on what it takes to bui … | Continue reading


@thoughtbot.com | 18 days ago

Meet thoughtbot at RailsConf 2024

The countdown to RailsConf 2024 is on and the thoughtbot team is looking forward to connecting with you in real life. That’s right, thoughtbotters are quantum leaping from the blog posts, podcasts, and open source you love and touching down in Detroit to talk all things Rails. He … | Continue reading


@thoughtbot.com | 18 days ago

Debugging Elasticsearch queries with Kibana

When writing or debugging queries with Postgres or another relational database, it’s often helpful to use a database client like psql to view the data directly in the database. However, when using Elasticsearch we can sometimes feel lost trying to understand why a query returned … | Continue reading


@thoughtbot.com | 19 days ago

This Week in Open Source

Your humble author knows these editions fly off the shelves like hot cakes. So while you keep updating, I’ll keep posting! Enjoy these not-so-fresh-off-the-presses updates to thoughtbot open source projects from February 2nd through February 16th. We saw updates to the following … | Continue reading


@thoughtbot.com | 20 days ago

Rack_Test or Selenium ?

Improving performance for your test suites is one of those things that can easily get overlooked when starting a new project but gets increasingly crucial as the test suites grow. a faster test suite results in less time waiting for the tests to run which saves time during develo … | Continue reading


@thoughtbot.com | 21 days ago

How to integrate React with Rails 7

We love Ruby on Rails at thoughtbot. And we love JavaScript too. Even with the growing popularity of Hotwire and Stimulus, React is still a popular choice. But it’s not always simple to integrate React with Rails. What are the options for building a React + Ruby on Rails app? 1. … | Continue reading


@thoughtbot.com | 24 days ago

Team Lead Fireside Chat: A Recap

A few weeks ago, Moses, Rob, Stefanni, and Svenja met to discuss how Team Leads work at thoughtbot. You can find it on our YouTube channel if you missed the chat. Below is a summary of everything we discussed. Team Leads at thoughtbot The concept of Team Leads is new to thoughtbo … | Continue reading


@thoughtbot.com | 25 days ago

This Week in Open Source

Hello, coming to you from the PAST, we have thoughtbot open source updates ranging from January 19 (last post) and February 2nd. Two weeks of back-dated updates that will make you feel like it’s still Q1! We saw updates to the following projects (with handy links to jump to their … | Continue reading


@thoughtbot.com | 26 days ago

WIP is waste

A manifesto on work, waste, cost and value. With respect to our ultimate benefactors, end users. It’s done, I’m just waiting on a review It’s complete, I just need to do some final testing It’s ready, I just need to merge and deploy End users do not care. Nor should they. Nor can … | Continue reading


@thoughtbot.com | 27 days ago

Upskill your team's Feedback and Communication Skills

As an Engineering Manager/Team Lead, how many times have you seen your team having issues with code reviews? Or any other interpersonal conflict hindering the team’s productivity? Chances are, pretty often. One way to think about these dynamics is to react to them as they arise. … | Continue reading


@thoughtbot.com | 28 days ago

Get your codebase ready for React 19

React has come a long way since its debut in 2013, starting as a client-side JavaScript library for building user interfaces. I think back to the days when Create React App was the starting point for a new React project and React was strictly a client-side Javascript library. Tim … | Continue reading


@thoughtbot.com | 1 month ago

Prepare to Fundraise: A new playbook from thoughtbot and Forecastr

What’s the difference between a potential investor saying your early stage idea is “okay, but pass” instead of “I need to get in on that cap table!”? Fundraising is challenging, exciting, time-intensive, and if you’re lucky, the start of your next big phase of work. While investo … | Continue reading


@thoughtbot.com | 1 month ago

DevOps Events and Conferences for 2024

Coming into the second quarter of the year, we have had time to get an idea of where 2024 is heading in the DevOps world. It may be overwhelming for some and exciting for others as we embark on a road with new and emerging technologies. In a fast paced industry, it’s important to … | Continue reading


@thoughtbot.com | 1 month ago

Enum validations and database constraints in Rails 7.1

Rails 7.1 added a validation option for enum, so it’s now straightforward to validate that the value of an enum attribute is an allowed value and, optionally, that the value is not nil in an Active Record model class. This has made user feedback for enum attributes simpler, but i … | Continue reading


@thoughtbot.com | 1 month ago

Faster Tests With Capybara and Request Specs

Here’s a cool trick to improve the performance of your test suite: write more request specs and fewer system specs (yes, you can use them for more than API testing). Rails is very good at CRUD-y stuff, so if you don’t have fancy interactions, request specs are often good enough ( … | Continue reading


@thoughtbot.com | 1 month ago

Upcoming Talks at Ruby Conferences in Spring and Summer 2024

Upcoming Conference Talks by thoughtbot The year’s already gone by so fast; Since January 2024, thoughtbotters have already attended and presented talks at events like CCOSS and Sin City Ruby 2024. Didn’t make it to these events? Don’t worry, we’ve got more amazing talks lined up … | Continue reading


@thoughtbot.com | 1 month ago

Watch a live pitch deck review on April 22

In February we co-hosted a lively virtual event for founders to get real time, public feedback on their investor pitches. The response to the session was so overwhelmingly positive, we’ve decided to make it a recurring series and the next event is April 22! Back in the February e … | Continue reading


@thoughtbot.com | 1 month ago

Introducing form_props: The power of Rails forms now available for React!

Miss the convenience of Rails when working in React? Tired of building React forms ever so slightly different from project to project? Prefer working with HTML over customizing the Rails form builder? Prefer HATEOAS? Boy, do I have the tool for you! Introducing form_props, a new … | Continue reading


@thoughtbot.com | 1 month ago

Incubator Update 3: Dionna & Danyelle at Womanish

Welcome to the final installment of thoughtbot’s Womanish Incubator series! It’s been an enlightening ride filled with emotions such as, excitement, worry, and back to excitement again - all as we worked towards getting clear on the problem we’re solving and identifying our early … | Continue reading


@thoughtbot.com | 1 month ago

Does thoughtbot Offer AI-Assisted Programming?

Does AI Devalue Developers? A prospective client recently asked if we offered AI-assisted developers at a reduced rate to our full-time, full-stack, full-human developers. The question gave me pause as I had to make sure I understood the question and its motivation before respond … | Continue reading


@thoughtbot.com | 1 month ago

On Feedback

Throughout 2023, thoughtbot discussed using feedback as a growth tool. We should have talked about feedback as a way to support each other. I want to talk to you about the importance of feedback for support and what your team members can do. Setting up for success As a manager, m … | Continue reading


@thoughtbot.com | 1 month ago

What do our workspaces look like?

thoughtbot has worked fully remote since 2020. Every year, we have an internal post where folks can share their workspace. It’s always lovely to see what’s on the other side of somebody’s webcam. The thread always sparks questions about each other’s setups. (There are also accusa … | Continue reading


@thoughtbot.com | 1 month ago

Set up Detox for end-to-end testing in your React Native App

Recently some of us have been working on a React Native project to improve our skills and learn more about mobile development. The tech background for the majority of us is Ruby and Ruby on Rails so you can imagine that we love to TDD the features we create. We want to bring this … | Continue reading


@thoughtbot.com | 1 month ago

From Heroku to Kubernetes Platform: a Flightdeck launch story

When outside teams approach thoughtbot with cloud infrastructure support needs, a very common use case involves transitioning from a simple Heroku application to a more robust platform. Whether the impetus is scalability, security, auditing compliance, cost management, or leverag … | Continue reading


@thoughtbot.com | 1 month ago

This Week in Open Source (January 19, 2024)

Ah, do you smell that? It smells like a reasonable amount of updates to read in one sitting. It might have something to do with the period containing only two weeks. Below are updates to thoughtbot’s open source projects between January 5th and January 19th 2024. Administrate Cle … | Continue reading


@thoughtbot.com | 1 month ago

Announcing a new workshop series for founders

Are you an aspiring (or seasoned) startup founder with a new business idea? You’re in luck! We’re launching a new workshop series to help you bring your idea from vision to value, and teach you how to make that process repeatable for your business. In this workshop series, our Di … | Continue reading


@thoughtbot.com | 1 month ago

thoughtbot at Sin City Ruby 2024

Sin City Ruby 2024 was one of this year’s Ruby conferences that we, thoughtbot, were excited about. In this post, I will share why. Jason Swett, the organizer, invited me to be one of the speakers. It was a great opportunity to talk about JavaScript testing for Ruby devs. Spoiler … | Continue reading


@thoughtbot.com | 1 month ago

Product Management templates: Assumptions Tracker

Our ethos with templates is to start simple. Every template will evolve depending on the team, industry, company size and more. These are a tried-and-tested base that we reach for when starting a new project. Assumptions are dangerous (and they can make a silly donkey out of you … | Continue reading


@thoughtbot.com | 1 month ago

Incubator Update 2 with Dionna & Danyelle at Womanish: Product Design Focus

As I reflect on where we stand in the program, I can’t help but feel a sense of optimism and excitement for the road ahead. We’re delving into the intricacies of our project, pooling our collective expertise to sculpt something truly remarkable. In our previous blog post, we intr … | Continue reading


@thoughtbot.com | 1 month ago

Product Management templates: Job Story

Our ethos with templates is to start simple. Every template will evolve depending on the team, industry, company size and more. These are a tried-and-tested base that we reach for when starting a new project. Job stories are a way to contextualize the pain-points we’re trying to … | Continue reading


@thoughtbot.com | 1 month ago

Product Management templates: Bug report

Our ethos with templates is to start simple. Every template will evolve depending on the team, industry, company size and more. These are a tried-and-tested base that we reach for when starting a new project. Bugs are a unique case that don’t follow the story format. The single m … | Continue reading


@thoughtbot.com | 1 month ago

Configure GitHub Actions to work with rspec-rails

The next release of Rails will ship with a CI template which among other things, will run the Rails test suite. I figured this would be a useful addition for the next release of Suspenders, so I lifted the template and modified it to work with rspec-rails. It was a mostly straigh … | Continue reading


@thoughtbot.com | 1 month ago

Tools I like: Zoxide

Here’s a tool I use all the time without even thinking about. It’s called z or Zoxide Often times I feel developers set out trying to keep paths and filenames in an at least manageable structure. I try to keep a consistent cousins/coworkers approach to organizing but occasionally … | Continue reading


@thoughtbot.com | 1 month ago

Triggering Reusable Github Actions Workflows

We have lots of open source projects. I mean, hundreds of them. Besides loving Open Source, we also love creating and perfecting our processes. We even have a templates repo to streamline some of them. However, the READMEs tend to get outdated often. For example, lots of reposito … | Continue reading


@thoughtbot.com | 2 months ago