I recently needed to explore how best to craft and parse a series of network requests as part of a feature I was working on. It didn’t make sense to write a test for this, since I was only exploring the idea, and because our test suite is configured to prevent making HTTP request … | Continue reading
Chad, Will and Sami discuss life outside of thoughtbot and the hobbies that occupy them in their down time. | Continue reading
This post is part of the AI for Business series Shedding light on AI from a non-technical business/product/design perspective. A history of Artificial Intelligence How to harness AI AI and automation AI and cognitive insight AI and cognitive engagement Evolution V revolution Adop … | Continue reading
Joël and thoughtbot colleague Sally Hall set out to find an answer to the question, what exactly are the differences between paper data structures and digital ones? | Continue reading
Launching an MVP is a huge step toward validating your idea, engaging real customers, and proving your business model to investors. To make this vision a reality, you need the right team behind you. Whether you are a founder setting out to build v1, or an established company cons … | Continue reading
The landscape of tools we use and what sources of inspiration we find are always changing, but here’s a non-exhaustive list of what our design team is using and looking at right now. Tools Figma - For interface design, prototyping, outputting and adjusting SVGs, creating presenta … | Continue reading
You’re working on a project with a Ruby style guide that says: Prefer single quoted strings. Reserve double quoted strings for situations when you need interpolation. You come across a situation where you need to represent the contracted English word “doesn’t” which contains a si … | Continue reading
I’m on a Rails project using OpenAI. We’re sending over large amounts of text to provide as much context as possible, and recently ran into issues with rate limiting. As it turns out, OpenAI’s rate limits are a little more complicated than other APIs. Rate limits are measured in … | Continue reading
Chad talks with Karen King, Founder of Gold Star Pro, about her drive to help small business owners reach their full potential. | Continue reading
A Clearer Understanding of the AI Landscape It has been quite intimidating for me, as it has for many other people, to wrap my head around all the components of the AI landscape - Acronyms help describe complex systems but for someone who is just getting started, it can feel like … | Continue reading
This post is part of the AI for Business series Shedding light on AI from a non-technical business/product/design perspective. A history of Artificial Intelligence How to harness AI AI and automation AI and cognitive insight AI and cognitive engagement Evolution V revolution Adop … | Continue reading
Congrats everyone, we did it. AI prototypes are incredibly easy to build. This brings us to our next, less shiny, phase: making AI implementations lasting and impactful to your product and business. At this year’s SXSW conference, even if you weren’t in the AI track, you were in … | Continue reading
When working with Rails, one of the easiest ways to improve performance is to avoid N+1 queries as much as possible. But what is an N+1 query? Here’s a quick example: let’s say you are rendering a list of 20 books, and you want to show author details on each line. If you don’t pr … | Continue reading
Let’s continue our journey off the shiny AI hype machine, and onto the less exciting, but more powerful pragmatic and iterative AI implementation process…. machine. At SXSW 2025, the focus had clearly shifted from mind-blowing AI demos to real-world implementation stories. And th … | Continue reading
With the release of Rails 8, asset management in Rails got faster and simpler with the new asset pipeline, Propshaft, which is not only simpler but also more aligned with modern Rails development needs compared to its predecessor, Sprockets. How does Propshaft compare to Sprocket … | Continue reading
You can skip straight to the list of falsehoods if you recognise this article’s genre from the title or you’re not someone who likes caveats and explanations. Software teams often make incorrect assumptions about user feedback. Being aware of how differently one person can interp … | Continue reading
Sami goes back to school as he asks Otto Terrell and Polly Gupta from True the key questions around the environmental buzz words of 2025. | Continue reading
This is an AI generated image. If you are like me, you might be feeling a bit frustrated or overwhelmed by most learning material in the AI space as it is often heavily technical. As a Designer and Product Manager, this is not that helpful to me. To learn more about AI, I recentl … | Continue reading
thoughtbot partners with startups across stages and sizes, including a founding team of 1 and a growing team of product people. It’s our goal to support our clients how they need us - from both a team mentorship and product perspective. Startups setting out to successfully build … | Continue reading
Sami talks with Steven Wardell, managing partner of Wardell Advisors LLC, about the lacking tech developments within the healthcare sector. | Continue reading
Your database monitoring (perhaps Amazon RDS performance insights, Skylight, or the Postgres pg_stat_activity view) is telling you that one particular query in your Rails app is causing heavy load. Unfortunately, it already seems pretty fast. What are the odds that you can get it … | Continue reading
Everyone’s talking about AI replacing developers these days… but where can you find a good old Ruby on Rails agency in London with Ruby on Rails developers in flesh and bones* these days? (*) plant-based version also available in selected locations, like the UK, for instance. Do … | Continue reading
All organizations have a choice in how they share information and involve their teams in decision-making. At thoughtbot, transparency is a tool and guiding principle that supports how we work, emerging from the intersection of our values of Self-Management and Trust. Self-Managem … | Continue reading
Reasoning by Analogy is a powerful learning, problem-solving, and debugging technique. It’s a four-step process: You have a question about something that you don’t understand Translate the question to something similar that you do understand (called the analogue) Solve the proble … | Continue reading
A firm favourite in every Product person’s calendar - this year’s ProductCon 2025 hosted in London’s Barbican didn’t just talk about the future, it pulled on unspoken challenges in product leadership. From AI power moves to the death of outdated frameworks, the team tackled compl … | Continue reading
The presenter pattern is a handy design approach that sits between your views and models, helping you keep your code organized by handling view-specific logic in a clean and maintainable way. In a Rails app, it’s a great way to keep your views and controllers slim since the prese … | Continue reading
Sometimes, you need to include HTML but you can’t figure out where to do it, especially if you’re trying to push something up the view hierarchy. The answer to your challenge is often #content_for. Content what? As described in the Rails guides: The content_for method allows you … | Continue reading
Over 10 years and 550 episodes, our podcast, Giant Robots Smashing into other Giant Robots, has brought you conversations with founders, developers, product thinkers, and industry leaders, diving deep into the worlds of software and business. This season, we’re adding something n … | Continue reading
We’ve decided to pause our activity on X and Meta platforms. While we’ve valued the connections we’ve built on these platforms over the years, we’ve seen a shift in how people engage online, with more productive conversations and community building happening on platforms prioriti … | Continue reading
We’ve organized our suggestions for using AI to accelerate your MVPs, to support you with product strategy, design, development, go-to-market, and post-launch optimization. | Continue reading
Satisfy the Typescript type-checker when doing dynamic object access and write safer code in the process. | Continue reading
I recently heard of a Rails 7 config option called config.active_record.query_log_tags_enabled. The feature adds comments to the SQL queries that Rails generates, like this: /*action='index',application='MyApp',controller='myrecords'*/ SELECT "myrecords".* FROM "myrecords" WHERE … | Continue reading
Imagine having a pairing buddy to help you with those finicky Pull Request (PR) reviews. During reviews, when it comes to refining small code snippets, Large Language Models (LLM) using Artificial Intelligence (AI) is my new friend and pairing buddy. Using AI, developers can quic … | Continue reading
Rails 7 introduced invert_where. This method inverts all scope conditions that it’s applied to, simplifying the process of defining the opposite of a where clause in ActiveRecord queries. It also comes with a few caveats that should be considered before using it. What is invert_w … | Continue reading
Recently, I had to implement a multi-screen slide deck presentation system that stayed in sync with the presenter’s view. How did I get there? Requirements Render three views: the group view, the individual view, and the presenter view. The group view should show a fullscreen vie … | Continue reading
This blog post provides information about accessibility laws and regulations, but is not legal advice. You should consult a lawyer for advice on specific legal issues or questions. If you do business in the UK, chances are high that you know about the Equality Act 2010 and Public … | Continue reading
The other day I was going through my old laptops (I have a collection of them 😅) and had one idea: What if I could run Ollama on one of them and access it remotely from my main machine? Could that mean that I am effectively hosting an AI model on my old laptop, for free? … | Continue reading
Welcome to another edition of This Week in #dev, a series of posts where we bring some of our most interesting Slack conversations to the public. URL-Safe serialization for any Ruby object Matheus Richard shares a gem called Universal ID that can serialize any Ruby object into a … | Continue reading
Our podcasts, Giant Robots Smashing into other Giant Robots and The Bike Shed are now available on YouTube podcasts and YouTube Music. We’ve imported the entire back catalog of episodes for both podcasts. The Giant Robots podcast has been going for 11 years and 575 episodes, with … | Continue reading
Maybe you trust your db/seeds.rb file to be idempotent when you run bin/rails db:seed, and maybe you don’t, but either way, you should test it so you can be sure that it does what you think it does. Doing so is simple! Let’s run through the process. Here’s a sample seed file: We … | Continue reading
For the past 5 ½ years or so, I live in the South of Spain. At first, I called Almería my home but in 2024 I moved to the outskirts of Granada. That move not only brought some green nature into my life (Almería holds the only desert in Europe – check out Tabernas if you are inter … | Continue reading
Over the years, I’ve accumulated a set of three principles that help me write code that’s more modular, readable, and modifiable. I apply them when writing new code to try to make things easier for my colleagues, and I use them when refactoring existing code that’s gotten too com … | Continue reading
This post is part of the Zero-downtime with Rails credentials series. In the first post we talked about the reasons that moved us towards making a codewide change and adopt Rails credentials rather than using environment variables to manage our secrets. In the second post we saw … | Continue reading
Many growing companies are vulnerable to changing market conditions and face pressure to evolve quickly. Having strong financial foundations and a strategic product roadmap are important to help your team meet growth goals. Combining the expertise of 5th Line and thoughtbot, we’v … | Continue reading
While others move away from DEI initiatives, we want to once again stress our steadfast commitment to working to increase diversity, equity, and inclusion within the company and beyond. Others have recently shown their willingness to compromise on those values. We will not. We be … | Continue reading
We’re heading to SXSW 2025, and if you’re passionate about product development, the future of tech, and how AI comes in the mix, we’d love to connect! We’ve long had a presence in Austin, Texas, as part of the community of tech leaders and startup founders at Capital Factory and … | Continue reading
It will soon be North West Ruby User Group (NWRUG)’s February 2025 meet-up on Thursday, 20 February, at Colony, One Silk Street. To attend, please secure a spot on their Ticket Tailor page. This month they are doing lightning talks! That means you have an opportunity to give a sh … | Continue reading
Chad Pytel, thoughtbot CEO, had the pleasure of joining Steven Wardell on his Digital Health Investor Talk series where they discussed the problem areas in healthcare that are amenable to the capabilities of generative AI. AI is everywhere, and the sector is white hot for investo … | Continue reading