Skip to main content
thoughtbot thoughtbot
  • We're live Live on Twitch!

    thoughtbot is livestreaming

    Work alongside the thoughtbot team as we collaborate with each other and our clients, live. Ask us anything, we're live right now!

  • Case Studies
  • Blog
  • Let’s Talk
We're live Live on Twitch!

thoughtbot is livestreaming

Work alongside the thoughtbot team as we collaborate with each other and our clients, live. Ask us anything, we're live right now!

Let’s get started!
View all Services
Development
  • Ruby on Rails
  • Hotwire
  • AI and Machine Learning
  • Maintenance
  • Mobile
Design
  • Discovery Sprints
  • UX, UI, and Product Design
  • Design Systems
Product
  • MVP
  • Product Management
  • Accessibility
Team and Processes
  • Team Augmentation
  • Fractional Leadership
View all Services
View all Resources
Development
  • Tech Leadership Resources
  • Open Source
  • Books
  • The Bike Shed Podcast
  • Live Streaming on YouTube
  • Conference Talks
The business of great software
  • Playbook
  • Giant Robots Smashing Into Other Giant Robots Podcast
  • Design Sprint Guide
  • Live Streaming on LinkedIn
View all Resources

Web Articles

Written by thoughtbot, your expert partner for design and development.

    • All Topics
    • Design
    • Development
    • Product
    • More topics
  1. Announcing Fishery – a JavaScript and TypeScript Factory Library

    We have just released Fishery, a TypeScript-compatible library for setting up JavaScript objects for use in tests and anywhere else you need to set up data.

    Stephen Hanson
    February 5, 2020
    • TypeScript
    • JavaScript
    • Testing
    • Web
  2. Faking External Services in Tests with Adapters

    When faking external services in tests, start with something simple. I like having a public interface to adapters and having an in-memory adapter for tests. Let me show you an example.

    German Velasco
    November 28, 2019
    • Testing
    • Ruby
    • Rails
    • Web
  3. Chaining Async Functions like a Boss

    A look at syntactic sugar for chaining async functions in multiple languages.

    Joël Quenneville
    November 1, 2019
    • Web
    • Elm
    • Scala
    • Haskell
    • JavaScript
  4. Types without values

    A look at value-less types such as Elm’s Never.

    Joël Quenneville
    October 30, 2019
    • Web
    • Elm
  5. Technical Considerations to Help Scale Your Product

    What should you be thinking about when scaling your product?

    Joël Quenneville
    October 29, 2019
    • Web
    • Product
  6. Modeling Currency in Elm using Phantom Types

    Lean on Elm’s friendly compiler to enforce currency-related constraints.

    Joël Quenneville
    October 28, 2019
    • Web
    • Elm
    • Types
  7. GraphQL: The Case of the Missing Fields

    Because who doesn’t like a good ole mystery?

    EJ Mitchell
    October 14, 2019
    • Testing
    • Web
    • Architecture
    • Debugging
  8. An Elm debugging story

    This tricky bug requires us to pull out a variety of debugging techniques.

    Joël Quenneville
    October 3, 2019
    • Web
    • Elm
    • Debugging
  9. Learn Less, Do More

    To get into web development, you probably need to learn less that you think.

    Pablo Brasero
    October 1, 2019
    • Web
    • Learning
  10. The case for Discriminated Union Types with Typescript

    Why Discriminated Union Types are an important part of modeling solutions with TypeScript.

    Alejandro Dustet
    September 30, 2019
    • Union Types
    • TypeScript
    • JavaScript
    • Web
  11. Sign up to receive a weekly recap from thoughtbot

    Looking for even more ways to stay connected?
    RSS feed Check out our feeds
« First ‹ Prev … 8 9 10 11 12 13 14 15 16 … Next › Last »

Footer

thoughtbot
  • Services
  • Case Studies
  • Resources
  • Let's Talk
  • Our Company
  • Careers
  • Purpose
  • Blog
  • Events
  • Sponsor
  • Store
  • Mastodon
  • Bluesky
  • GitHub
  • YouTube
  • Twitch
  • Feeds
© 2025 thoughtbot, inc.

The design of a robot and thoughtbot are registered trademarks of thoughtbot, inc.

  • US: +1 (877) 9-ROBOTS
  • UK: +44 (0)20 3807 0560
  • Code of Conduct
  • Accessibility Statement
  • Privacy Policy