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 | 1 day 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 | 2 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 | 3 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 | 4 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 | 5 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 | 8 days 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 | 9 days 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 | 10 days 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 | 11 days 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 | 12 days 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 | 15 days 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 | 16 days 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 | 17 days 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 | 17 days 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 | 18 days 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 | 19 days 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 | 22 days 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 | 23 days 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 | 24 days 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 | 26 days 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 | 26 days 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 | 29 days 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 | 1 month ago

This Week in Open Source (January 5, 2024)

Welcome to two weeks in open source from some time other than the present! This edition covers the time between the last post (December 22, 2023) and January 5, 2024. A lot of our projects are getting renewed dedication this year and we love to see it! Thank you to all our contri … | Continue reading


@thoughtbot.com | 1 month ago

Why Am I Interested in Remix?

Many think thoughtbot and think Ruby on Rails, and while it’s true that may be our calling card we also have many talented JavaScript focused developers. Our go-to framework for the past few years has been Next.js. Next.js is a great tool for building products quickly, and servic … | Continue reading


@thoughtbot.com | 1 month ago

PDS Kit - What happens on Day 5?

If you are following along with our Design Sprint Kit video playlist, this blog will shine a light on the activities you will be doing on Day 5, the final day of your Product Design Sprint. Goal of Day 5: The goal of Day 5 is to get valuable feedback on our designs from real peop … | Continue reading


@thoughtbot.com | 1 month ago

Numeric data types in Ruby and when to use them

In programming, we usually deal with numbers daily, sometimes without even noticing it. There is a nice offer of numeric types in Ruby, each serving a purpose, supporting features and having different behaviours. Let’s have a look at what these types are, what performance and pre … | Continue reading


@thoughtbot.com | 1 month ago

Use Inline Email Attachments for Images

When Rails developers need to include an image in an Action Mailer message, we’ll often use image_tag in the same way that we’d use it in the rest of the application: These generate tags whose src points to the image hosted on the Rails server (or its content delivery network) … | Continue reading


@thoughtbot.com | 1 month ago

How to approach a reduce problem

Ruby’s reduce (aka inject) can be intimidating. It can be hard to both read and to write. This handy two-step approach has helped me write reduce code without tying my brain in knots. Two-step process Here are the two steps: Figure out how to combine 2 items Use reduce to … | Continue reading


@thoughtbot.com | 1 month ago

What a year it has already been

I feel incredibly grateful for the past year I’ve worked as Managing Director at thoughtbot. I am so proud of our team and everything we have been able to accomplish for our clients, what we have learned, and how hard we worked to share that knowledge. So what have we done over t … | Continue reading


@thoughtbot.com | 1 month ago

Incubator update 1: Dionna & Danyelle at Womanish

The highlights of the first few weeks have been in the power of questioning assumptions. Labeling perceived truths as assumptions and rigorously testing them emerged as a key takeaway. It’s a paradigm shift, moving from “I think” to “I assume, let’s validate.” Welcome to the 4th … | Continue reading


@thoughtbot.com | 1 month ago

PDS Kit - What happens on Day 4?

If you are following along with our Design Sprint Kit video playlist, this blog will shine a light on the activities you will be doing on Day 4 of your Product Design Sprint. Goal of Day 4: The goal of Day 4 is to create a high fidelity prototype of our chosen concept to t … | Continue reading


@thoughtbot.com | 1 month ago

Introducing props_template: A Jbuilder alternative

I like Jbuilder. It’s been part of every Rails project every time I run rails new and the first thing I reach for when I want to create JSON responses. It’s as synonymous with JSON as ERB is with HTML. But I wanted a version of Jbuilder that had layouts, didn’t merge hashes, had … | Continue reading


@thoughtbot.com | 1 month ago

How to write good epics

Before we dig in, you will benefit most from this piece if you first understand the benefits of grouping things and have a good feel for what bad looks like. After that, this post shouldn’t be surprising. But because repetition is memory’s friend, let’s explicitly cover off some … | Continue reading


@thoughtbot.com | 1 month ago

Can Auto-Playing Videos be Accessible?

Auto-playing videos are used on many websites to add visual interest to the page. These videos are typically short, muted videos that supplement the text content on the page. They can be engaging, entertaining, or informative, but, they can also be overwhelming or even dangerous … | Continue reading


@thoughtbot.com | 1 month ago

SRE: The Next Big Thing from thoughtbot's Platform Engineering team

thoughtbot is proud to add Site Reliability Engineering to our DevOps, SRE & Cloud Platform team. Site Reliability Engineering, or SRE, is a different approach to maintenance. It focuses on keeping a product running smoothly through better metrics and increased observability. Our … | Continue reading


@thoughtbot.com | 1 month ago

PDS Kit - What happens on Day 3?

If you are following along with our Design Sprint Kit video playlist, this blog will shine a light on the activities you will be doing on Day 3 of your Product Design Sprint. Goal of Day 3: While Day 2 is about diverging and coming up with as many solutions as possible, Da … | Continue reading


@thoughtbot.com | 1 month ago

DevOps 101 - Intro to DevOps, SRE & Cloud Platform

An overview of DevOps and how thoughtbot’s Platform Engineering team works together with the other teams to delight clients. What is DevOps? The conjunction of Development and Operations, the term became popular over 10 years ago in tech startups with small teams where the … | Continue reading


@thoughtbot.com | 1 month ago

Monitoring PostgreSQL on AWS RDS for slow queries

Databases serve as the backbone for countless applications and systems that drive modern businesses. Efficient database performance is critical for ensuring seamless user experiences, rapid response times, and overall system reliability. However, even the most robust database sys … | Continue reading


@thoughtbot.com | 1 month ago

How We Help Startups Choose a Tech Stack

My team at thoughtbot works with founders, entrepreneurs and early-stage start-ups. Often they don’t have a technical team member, let alone staff developers or a codebase. Many of these folks look to thoughtbot to play a CTO role: guiding them in their technology choices while b … | Continue reading


@thoughtbot.com | 1 month ago

Linear Regression using dataframes in Ruby

This article will introduce data science by presenting an essential method: linear regression. It’s a method used when two types of continuous numeric data correlate. Typical examples of data that correlate are the size of a flat and its price, the amount of time spent studying a … | Continue reading


@thoughtbot.com | 2 months ago

PDS Kit - What happens on Day 2?

If you are following along with our Design Sprint Kit video playlist, this blog will shine a light on the activities you will be doing on Day 2 of your Product Design Sprint. Goal of Day 2: Day 2 is, perhaps, the most important day of the Sprint. It serves as the pivotal b … | Continue reading


@thoughtbot.com | 2 months ago