# 37signals Dev

The 37signals Dev blog is brought to you by the people who build Basecamp, HEY, and ONCE ✌❤

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## The ONCE app server

DevFeed: [The ONCE app server](<https://devfeed.tech/articles/the-once-app-server-33511.md>)

Original publisher: [Read original article](<https://dev.37signals.com/once-app-server/>)

Author: David Heinemeier Hansson, Kevin McConnell, Kimberly Rhodes, Fernando Olivares

Published: 2026-04-17T17:00:00Z

Content type: article

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Open Source](<https://devfeed.tech/topics/open-source.md>), [Self-hosted](<https://devfeed.tech/topics/self-hosted.md>), [Software](<https://devfeed.tech/topics/software.md>), [App](<https://devfeed.tech/topics/app.md>), [Docker](<https://devfeed.tech/topics/docker.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [docker](<https://devfeed.tech/tags/docker.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [self-hosted](<https://devfeed.tech/tags/self-hosted.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

This episode discusses the ONCE open source app server, its shift from single-app installations to running multiple applications on one machine, and the design tradeoffs between simplicity and flexibility. The discussion also covers self-hosted software, Docker, Kamal, deployment, and making software easier to run.

### Source excerpt

David Heinemeier Hansson and Kevin McConnell dive into the thinking behind the ONCE open source app server and what it takes to turn self-hosted software into something anyone can run.

## Behind the Fizzy Infrastructure

DevFeed: [Behind the Fizzy Infrastructure](<https://devfeed.tech/articles/behind-the-fizzy-infrastructure-33501.md>)

Original publisher: [Read original article](<https://dev.37signals.com/fizzy-infrastructure/>)

Author: Kevin McConnell, Kimberly Rhodes, Fernando Olivares

Published: 2026-02-26T18:00:00Z

Content type: opinion

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [SQLite](<https://devfeed.tech/topics/sqlite.md>), [Self-hosted](<https://devfeed.tech/topics/self-hosted.md>), [Software as a service](<https://devfeed.tech/topics/saas.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [experiment](<https://devfeed.tech/tags/experiment.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [saas](<https://devfeed.tech/tags/saas.md>), [self-hosted](<https://devfeed.tech/tags/self-hosted.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>)

### AI overview

A Recordables episode examines Fizzy's infrastructure experiment of giving each customer a separate SQLite database to support self-hosted and SaaS models. The team discusses performance, architectural complexity, and its decision to revert to a more conventional setup shortly before release.

### Source excerpt

Lead Programmer Kevin McConnell shares the ambitious infrastructure experiment behind Fizzy and the choice to pivot before launch.

## Introducing Upright: An Open Source Synthetic Monitoring System

DevFeed: [Introducing Upright: An Open Source Synthetic Monitoring System](<https://devfeed.tech/articles/introducing-upright-an-open-source-synthetic-monitoring-system-33504.md>)

Original publisher: [Read original article](<https://dev.37signals.com/introducing-upright/>)

Author: Lewis Buckley

Published: 2026-02-16T18:00:00Z

Content type: release

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [synthetic monitoring](<https://devfeed.tech/topics/synthetic-monitoring.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Playwright](<https://devfeed.tech/topics/playwright.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [Prometheus](<https://devfeed.tech/topics/prometheus.md>), [Grafana](<https://devfeed.tech/topics/grafana.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>)

Tags: [deployment](<https://devfeed.tech/tags/deployment.md>), [grafana](<https://devfeed.tech/tags/grafana.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [playwright](<https://devfeed.tech/tags/playwright.md>), [prometheus](<https://devfeed.tech/tags/prometheus.md>), [rails](<https://devfeed.tech/tags/rails.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [synthetic-monitoring](<https://devfeed.tech/tags/synthetic-monitoring.md>)

### AI overview

37signals is open-sourcing Upright, a synthetic monitoring system built to monitor Basecamp, HEY, Fizzy, and other services. Upright runs health checks from multiple geographic locations and reports results through Prometheus metrics for alerting and Grafana visualization.

### Source excerpt

We're open-sourcing Upright, the synthetic monitoring system we built to watch over Basecamp, HEY, Fizzy and our many other services.

## Rails Multi-Tenancy

DevFeed: [Rails Multi-Tenancy](<https://devfeed.tech/articles/rails-multi-tenancy-33513.md>)

Original publisher: [Read original article](<https://dev.37signals.com/rails-multi-tenancy/>)

Author: Mike Dalessio, Kimberly Rhodes, Fernando Olivares

Published: 2026-02-13T18:00:00Z

Content type: article

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Multi-tenancy](<https://devfeed.tech/topics/multi-tenancy.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Replication](<https://devfeed.tech/topics/replication.md>)

Tags: [active-record](<https://devfeed.tech/tags/active-record.md>), [databases](<https://devfeed.tech/tags/databases.md>), [demo](<https://devfeed.tech/tags/demo.md>), [developer](<https://devfeed.tech/tags/developer.md>), [multi-tenancy](<https://devfeed.tech/tags/multi-tenancy.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [rails](<https://devfeed.tech/tags/rails.md>), [replication](<https://devfeed.tech/tags/replication.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>)

### AI overview

Lead Programmer Mike Dalessio discusses multi-tenancy in Rails, including 37signals' work moving Fizzy toward separate customer databases, the Active Record Tenanted gem, safeguards against accidental data leaks, and challenges involving SQLite replication and failover.

### Source excerpt

Lead Programmer Mike Dalessio shares the benefits of multi-tenant databases and how his work with Fizzy led to the the Active Record Tenanted gem.

## Moving Mountains of Data off S3

DevFeed: [Moving Mountains of Data off S3](<https://devfeed.tech/articles/moving-mountains-of-data-off-s3-33510.md>)

Original publisher: [Read original article](<https://dev.37signals.com/moving-mountains-of-data-off-s3/>)

Author: Jeremy Daer, Kimberly Rhodes, Fernando Olivares

Published: 2026-01-08T18:00:00Z

Content type: article

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [migration](<https://devfeed.tech/topics/migration.md>), [data](<https://devfeed.tech/topics/data.md>), [amazon](<https://devfeed.tech/topics/amazon.md>), [Rails](<https://devfeed.tech/topics/rails.md>)

Tags: [amazon-s3](<https://devfeed.tech/tags/amazon-s3.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [go](<https://devfeed.tech/tags/go.md>), [migration](<https://devfeed.tech/tags/migration.md>), [s3](<https://devfeed.tech/tags/s3.md>)

### AI overview

A RECORDABLES episode explains how 37signals moved billions of files, including about five billion objects across five petabytes of data, out of Amazon S3 without downtime. It discusses bandwidth limits, AWS constraints, custom Rails tooling, verification, and the risks of deleting the original data.

### Source excerpt

Principal Programmer Jeremy Daer explains how we moved billions of files out of Amazon S3 with zero downtime.

## The Rails Delegated Type Pattern

DevFeed: [The Rails Delegated Type Pattern](<https://devfeed.tech/articles/the-rails-delegated-type-pattern-33517.md>)

Original publisher: [Read original article](<https://dev.37signals.com/the-rails-delegated-type-pattern/>)

Author: Jeffrey Hardy, Kimberly Rhodes, Fernando Olivares

Published: 2025-12-19T18:00:00Z

Content type: article

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [rails](<https://devfeed.tech/tags/rails.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

A Recordables video episode explains how 37signals uses Rails delegated types to structure the recordables architecture behind Basecamp and HEY. It covers the pattern's hierarchy, change history, copying and moving content, querying, mobile support, tradeoffs, and long-term scalability.

### Source excerpt

Principal Programmer Jeffrey Hardy unpacks the Rails delegated type pattern that powers Basecamp and HEY.

## Lexxy: A new rich text editor for Rails

DevFeed: [Lexxy: A new rich text editor for Rails](<https://devfeed.tech/articles/lexxy-a-new-rich-text-editor-for-rails-33500.md>)

Original publisher: [Read original article](<https://dev.37signals.com/announcing-lexxy-a-new-rich-text-editor-for-rails/>)

Author: Jorge Manrubia

Published: 2025-09-04T17:00:00Z

Content type: release

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [Framework](<https://devfeed.tech/topics/framework.md>)

Tags: [editor](<https://devfeed.tech/tags/editor.md>), [rails](<https://devfeed.tech/tags/rails.md>), [rich](<https://devfeed.tech/tags/rich.md>), [trix](<https://devfeed.tech/tags/trix.md>)

### AI overview

37signals introduces Lexxy, a new rich text editor for Rails Action Text based on Meta's Lexical framework. The early beta adds Markdown support, semantic HTML, real-time code syntax highlighting, configurable prompts, attachment previews, and integration with Action Text and Active Storage.

### Source excerpt

A better Action Text.

## Running our Docker registry on-prem with Harbor

DevFeed: [Running our Docker registry on-prem with Harbor](<https://devfeed.tech/articles/running-our-docker-registry-on-prem-with-harbor-33514.md>)

Original publisher: [Read original article](<https://dev.37signals.com/running-our-docker-registry-on-prem-with-harbor/>)

Author: Farah Schüller

Published: 2025-08-24T17:00:00Z

Content type: tutorial

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [docker registry](<https://devfeed.tech/topics/docker-registry.md>), [on-prem](<https://devfeed.tech/topics/on-prem.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Docker Compose](<https://devfeed.tech/topics/docker-compose.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>)

Tags: [deployment](<https://devfeed.tech/tags/deployment.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-compose](<https://devfeed.tech/tags/docker-compose.md>), [docker-registry](<https://devfeed.tech/tags/docker-registry.md>), [harbor](<https://devfeed.tech/tags/harbor.md>), [on-prem](<https://devfeed.tech/tags/on-prem.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [registry](<https://devfeed.tech/tags/registry.md>)

### AI overview

The article describes 37signals' move from external container registries, including Docker Hub and Amazon Elastic Container Registry, to an on-premises Harbor registry. It explains cost, performance, security, governance, and independence concerns, then outlines a single-server Docker Compose deployment using the organization's own S3 storage and plans for replicated sites.

### Source excerpt

On hosting images without the price tag.

## Introducing Action Push Native

DevFeed: [Introducing Action Push Native](<https://devfeed.tech/articles/introducing-action-push-native-33503.md>)

Original publisher: [Read original article](<https://dev.37signals.com/introducing-action-push-native/>)

Author: Jacopo Beschi

Published: 2025-08-18T17:00:00Z

Content type: release

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [notifications](<https://devfeed.tech/topics/notifications.md>), [push-notification](<https://devfeed.tech/topics/push-notification.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [rate-limiting](<https://devfeed.tech/topics/rate-limiting.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [http](<https://devfeed.tech/tags/http.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [notifications](<https://devfeed.tech/tags/notifications.md>), [push-notification](<https://devfeed.tech/tags/push-notification.md>), [push-notifications](<https://devfeed.tech/tags/push-notifications.md>), [rails](<https://devfeed.tech/tags/rails.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>)

### AI overview

37signals introduces Action Push Native, an open-source Rails gem for sending push notifications directly through Apple Push Notification service and Google Firebase Cloud Messaging. The gem supports retries, rate limiting, and automatic removal of inactive devices.

### Source excerpt

A Rails gem for sending push notifications to mobile platforms.

## Announcing Hotwire Native 1.2

DevFeed: [Announcing Hotwire Native 1.2](<https://devfeed.tech/articles/announcing-hotwire-native-1-2-33497.md>)

Original publisher: [Read original article](<https://dev.37signals.com/announcing-hotwire-native-v1-2/>)

Author: Jay Ohms

Published: 2025-04-23T17:00:00Z

Content type: release

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Hotwire](<https://devfeed.tech/topics/hotwire.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Ruby on Rails](<https://devfeed.tech/topics/ruby-on-rails.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [bug-fixes](<https://devfeed.tech/tags/bug-fixes.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [hotwire](<https://devfeed.tech/tags/hotwire.md>), [ios](<https://devfeed.tech/tags/ios.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby-on-rails](<https://devfeed.tech/tags/ruby-on-rails.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

Hotwire Native 1.2 is a major update for iOS and Android that adds route decision handlers, built-in handling for server-driven historical location URLs, official bottom-tab navigation support, and new demo apps.

### Source excerpt

A big update to Hotwire Native for iOS and Android.

## Monitoring 10 Petabytes of data in Pure Storage

DevFeed: [Monitoring 10 Petabytes of data in Pure Storage](<https://devfeed.tech/articles/monitoring-10-petabytes-of-data-in-pure-storage-33512.md>)

Original publisher: [Read original article](<https://dev.37signals.com/pure-storage-monitoring/>)

Author: Victor Bogo

Published: 2025-01-02T18:00:00Z

Content type: tutorial

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Prometheus](<https://devfeed.tech/topics/prometheus.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [observability](<https://devfeed.tech/topics/observability.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>)

Tags: [data](<https://devfeed.tech/tags/data.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [observability](<https://devfeed.tech/tags/observability.md>), [prometheus](<https://devfeed.tech/tags/prometheus.md>), [storage](<https://devfeed.tech/tags/storage.md>)

### AI overview

37signals describes using Prometheus metrics and alerts to monitor Pure Storage FlashBlade while moving 10 petabytes of data out of AWS S3. The article covers the Pure OpenMetrics exporter, Prometheus job configuration, metric-label extraction, and alert integration.

### Source excerpt

How we use Prometheus to have metrics and alerts for Pure Storage.

## Announcing Hotwire Spark: live reloading for Rails applications

DevFeed: [Announcing Hotwire Spark: live reloading for Rails applications](<https://devfeed.tech/articles/announcing-hotwire-spark-live-reloading-for-rails-applications-33499.md>)

Original publisher: [Read original article](<https://dev.37signals.com/announcing-hotwire-spark-live-reloading-for-rails/>)

Author: Jorge Manrubia

Published: 2024-12-18T18:00:00Z

Content type: release

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Hotwire](<https://devfeed.tech/topics/hotwire.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [Stimulus](<https://devfeed.tech/topics/stimulus.md>), [Front end](<https://devfeed.tech/topics/frontend.md>)

Tags: [css](<https://devfeed.tech/tags/css.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [hotwire](<https://devfeed.tech/tags/hotwire.md>), [html](<https://devfeed.tech/tags/html.md>), [rails](<https://devfeed.tech/tags/rails.md>), [stimulus](<https://devfeed.tech/tags/stimulus.md>)

### AI overview

37signals announces Hotwire Spark, a live-reloading system for Rails applications. It automatically updates the current page when HTML, CSS, or Stimulus controller source changes, using smooth page morphing, stylesheet reloads, and controller replacement without bundling or frontend build tooling.

### Source excerpt

Improve your feedback loop with smooth automatic page updates.

## A vanilla Rails stack is plenty

DevFeed: [A vanilla Rails stack is plenty](<https://devfeed.tech/articles/a-vanilla-rails-stack-is-plenty-33494.md>)

Original publisher: [Read original article](<https://dev.37signals.com/a-vanilla-rails-stack-is-plenty/>)

Author: Jorge Manrubia

Published: 2024-12-12T18:00:00Z

Content type: opinion

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [Hotwire](<https://devfeed.tech/topics/hotwire.md>), [PWA](<https://devfeed.tech/topics/pwa.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Stimulus](<https://devfeed.tech/topics/stimulus.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [frameworks](<https://devfeed.tech/tags/frameworks.md>), [hotwire](<https://devfeed.tech/tags/hotwire.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [stimulus](<https://devfeed.tech/tags/stimulus.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

The article recommends a vanilla Rails 8 stack with minimal Ruby and JavaScript dependencies, server-rendered views, Hotwire, import maps, standard CSS, relational-database-backed services, Minitest, PWAs, and Kamal deployment. It presents this approach as 37signals' balance of productivity, user experience, and long-term maintainability.

### Source excerpt

Minimal dependencies, maximum productivity. Staying vanilla pays long term dividends for your Rails apps.

## Mission Control -- Jobs 1.0 released

DevFeed: [Mission Control -- Jobs 1.0 released](<https://devfeed.tech/articles/mission-control-jobs-1-0-released-33507.md>)

Original publisher: [Read original article](<https://dev.37signals.com/mission-control-jobs-v1-0/>)

Author: Rosa Gutiérrez

Published: 2024-12-04T18:00:00Z

Content type: release

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [dashboards](<https://devfeed.tech/topics/dashboards.md>), [Job](<https://devfeed.tech/topics/job.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [Rails](<https://devfeed.tech/topics/rails.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [bugfixes](<https://devfeed.tech/tags/bugfixes.md>), [contributors](<https://devfeed.tech/tags/contributors.md>), [http](<https://devfeed.tech/tags/http.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [major](<https://devfeed.tech/tags/major.md>), [release](<https://devfeed.tech/tags/release.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

Mission Control -- Jobs v1.0.0 has been released as a dashboard and set of extensions for operating background jobs. The release adds recurring Solid Queue tasks, API-only app support, immediate dispatch for scheduled and blocked jobs, backtrace cleaning, and safer default authentication.

### Source excerpt

We've just published the first major release of Mission Control -- Jobs.

## All about QA

DevFeed: [All about QA](<https://devfeed.tech/articles/all-about-qa-33496.md>)

Original publisher: [Read original article](<https://dev.37signals.com/all-about-qa/>)

Author: Michael Berger, Gabriel Monette

Published: 2024-10-15T17:00:00Z

Content type: tutorial

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Usability](<https://devfeed.tech/topics/usability.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Process](<https://devfeed.tech/topics/process.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [bugs](<https://devfeed.tech/tags/bugs.md>), [performance](<https://devfeed.tech/tags/performance.md>), [process](<https://devfeed.tech/tags/process.md>), [qa](<https://devfeed.tech/tags/qa.md>), [testing](<https://devfeed.tech/tags/testing.md>), [usability](<https://devfeed.tech/tags/usability.md>)

### AI overview

37signals explains how its two-person QA team tests Basecamp, HEY, and ONCE product work within six-week Shape Up cycles. The process combines early feedback, manual testing when features become usable, a simple Card Table workflow, and checks for bugs, performance, accessibility, and usability.

### Source excerpt

A look at how we test our products within the Shape Up framework.

## Kamal 2.0 released

DevFeed: [Kamal 2.0 released](<https://devfeed.tech/articles/kamal-2-0-released-33505.md>)

Original publisher: [Read original article](<https://dev.37signals.com/kamal-2/>)

Author: Donal McBreen

Published: 2024-09-26T17:00:00Z

Content type: release

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Deployment](<https://devfeed.tech/topics/deployment.md>), [proxy](<https://devfeed.tech/topics/proxy.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [let's encrypt](<https://devfeed.tech/topics/let-s-encrypt.md>), [Web](<https://devfeed.tech/topics/web.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [traefik](<https://devfeed.tech/topics/traefik.md>)

Tags: [configuration](<https://devfeed.tech/tags/configuration.md>), [deploy](<https://devfeed.tech/tags/deploy.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [let-s-encrypt](<https://devfeed.tech/tags/let-s-encrypt.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [password](<https://devfeed.tech/tags/password.md>), [rails](<https://devfeed.tech/tags/rails.md>), [secrets](<https://devfeed.tech/tags/secrets.md>), [traefik](<https://devfeed.tech/tags/traefik.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [web-apps](<https://devfeed.tech/tags/web-apps.md>)

### AI overview

37signals announces Kamal 2.0, a deployment tool for running web applications on virtual machines or bare-metal servers. The release adds kamal-proxy for gapless deployments, automatic HTTPS with Let's Encrypt, multi-application deployment on one server, command aliases, and simplified secret management.

### Source excerpt

Making deployments simpler and faster.

## Solid Queue 1.0 released

DevFeed: [Solid Queue 1.0 released](<https://devfeed.tech/articles/solid-queue-1-0-released-33515.md>)

Original publisher: [Read original article](<https://dev.37signals.com/solid-queue-v1-0/>)

Author: Rosa Gutiérrez

Published: 2024-09-26T17:00:00Z

Content type: release

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [Job](<https://devfeed.tech/topics/job.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [Prometheus](<https://devfeed.tech/topics/prometheus.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>)

Tags: [batch](<https://devfeed.tech/tags/batch.md>), [hooks](<https://devfeed.tech/tags/hooks.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [job](<https://devfeed.tech/tags/job.md>), [logging](<https://devfeed.tech/tags/logging.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [prometheus](<https://devfeed.tech/tags/prometheus.md>), [queues](<https://devfeed.tech/tags/queues.md>), [rails](<https://devfeed.tech/tags/rails.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

37signals released Solid Queue v1.0.0, adding atomic batch job operations, recurring jobs, logging and instrumentation, lifecycle hooks, and installation improvements. The article also describes its production use in HEY and ongoing adoption in Basecamp 4.

### Source excerpt

The first major release of Solid Queue is out, just in time for Rails World.

## Announcing Hotwire Native

DevFeed: [Announcing Hotwire Native](<https://devfeed.tech/articles/announcing-hotwire-native-33498.md>)

Original publisher: [Read original article](<https://dev.37signals.com/announcing-hotwire-native/>)

Author: Jay Ohms

Published: 2024-09-25T17:00:00Z

Content type: release

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Hotwire](<https://devfeed.tech/topics/hotwire.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Android](<https://devfeed.tech/topics/android.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [build](<https://devfeed.tech/tags/build.md>), [hotwire](<https://devfeed.tech/tags/hotwire.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-apps](<https://devfeed.tech/tags/mobile-apps.md>), [stimulus](<https://devfeed.tech/tags/stimulus.md>), [swift](<https://devfeed.tech/tags/swift.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

37signals announces Hotwire Native, a framework that consolidates Turbo Native and Strada for building hybrid mobile apps on iOS and Android. It supports a web-first approach that reuses existing Hotwire web apps while allowing selected screens or components to be implemented natively in Swift or Kotlin.

### Source excerpt

The web-first framework for building native mobile apps.

## Using timeboxing and scarcity as constraints when shipping software

DevFeed: [Using timeboxing and scarcity as constraints when shipping software](<https://devfeed.tech/articles/the-gift-of-constraints-33516.md>)

Original publisher: [Read original article](<https://dev.37signals.com/the-gift-of-constraints/>)

Author: Jorge Manrubia

Published: 2024-09-09T17:00:00Z

Content type: opinion

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>)

Tags: [developers](<https://devfeed.tech/tags/developers.md>), [development](<https://devfeed.tech/tags/development.md>), [good-practices](<https://devfeed.tech/tags/good-practices.md>), [scope](<https://devfeed.tech/tags/scope.md>)

### AI overview

The article argues that shipping software requires accepting that time and development bandwidth are limited. It presents timeboxing and scarcity as constraints that help teams prioritize, simplify work, and make practical decisions about scope.

### Source excerpt

If neither time nor development bandwidth is a concern, how would you make the right calls?

## Homographic Spoofing: a new Ruby toolkit

DevFeed: [Homographic Spoofing: a new Ruby toolkit](<https://devfeed.tech/articles/homographic-spoofing-a-new-ruby-toolkit-33502.md>)

Original publisher: [Read original article](<https://dev.37signals.com/homographic-spoofing/>)

Author: Jacopo Beschi

Published: 2024-06-25T17:00:00Z

Content type: tutorial

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [spoofing](<https://devfeed.tech/topics/spoofing.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Security](<https://devfeed.tech/topics/security.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [email](<https://devfeed.tech/topics/email.md>), [domain](<https://devfeed.tech/topics/domain.md>), [ASCII](<https://devfeed.tech/topics/ascii.md>)

Tags: [ascii](<https://devfeed.tech/tags/ascii.md>), [domain](<https://devfeed.tech/tags/domain.md>), [email](<https://devfeed.tech/tags/email.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [phishing](<https://devfeed.tech/tags/phishing.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [security](<https://devfeed.tech/tags/security.md>), [spoofing](<https://devfeed.tech/tags/spoofing.md>)

### AI overview

This article explains homograph attacks, in which visually similar Unicode characters are used to spoof identities in domains or email. It describes browser and email-client protections using Punycode and UTS #39, then introduces an open-source Ruby gem implementing those guidelines for IDNs and email addresses.

### Source excerpt

What is a homograph attack and how to protect from it with a new gem.

## Prometheus metrics with Rails and Kamal

DevFeed: [Prometheus metrics with Rails and Kamal](<https://devfeed.tech/articles/prometheus-metrics-with-rails-and-kamal-33506.md>)

Original publisher: [Read original article](<https://dev.37signals.com/kamal-prometheus/>)

Author: Lewis Buckley

Published: 2024-05-23T17:00:00Z

Content type: tutorial

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Prometheus](<https://devfeed.tech/topics/prometheus.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [telemetry](<https://devfeed.tech/topics/telemetry.md>), [Grafana Cloud Metrics](<https://devfeed.tech/topics/grafana-cloud-metrics.md>), [like](<https://devfeed.tech/topics/like.md>), [.NET 9](<https://devfeed.tech/topics/net-9.md>)

Tags: [docker](<https://devfeed.tech/tags/docker.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [performance](<https://devfeed.tech/tags/performance.md>), [processes](<https://devfeed.tech/tags/processes.md>), [prometheus](<https://devfeed.tech/tags/prometheus.md>), [rails](<https://devfeed.tech/tags/rails.md>), [redis](<https://devfeed.tech/tags/redis.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

### AI overview

This article explains how 37signals exports and aggregates Prometheus metrics from Rails applications running in Docker containers managed by Kamal. It describes using Yabeda and addresses performance issues and process-ID cardinality in multiprocess metric collection.

### Source excerpt

How we use Prometheus metrics with Rails and Kamal.

## Mission Control -- Web

DevFeed: [Mission Control -- Web](<https://devfeed.tech/articles/mission-control-web-33508.md>)

Original publisher: [Read original article](<https://dev.37signals.com/mission-control-web/>)

Author: Lewis Buckley

Published: 2024-05-09T17:00:00Z

Content type: release

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [Redis](<https://devfeed.tech/topics/redis.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [github](<https://devfeed.tech/tags/github.md>), [middleware](<https://devfeed.tech/tags/middleware.md>), [new-features](<https://devfeed.tech/tags/new-features.md>), [rails](<https://devfeed.tech/tags/rails.md>), [redis](<https://devfeed.tech/tags/redis.md>)

### AI overview

37signals announces the open-sourcing of Mission Control -- Web, a Rails tool for controlling web requests during incidents. It uses an admin dashboard and middleware backed by Redis to deny requests to configured paths, with version 0.2.0 available.

### Source excerpt

Deny requests to your Rails app.

## Modern CSS patterns in Campfire

DevFeed: [Modern CSS patterns in Campfire](<https://devfeed.tech/articles/modern-css-patterns-in-campfire-33509.md>)

Original publisher: [Read original article](<https://dev.37signals.com/modern-css-patterns-and-techniques-in-campfire/>)

Author: Jason Zimdars

Published: 2024-04-04T17:00:00Z

Content type: article

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [CSS](<https://devfeed.tech/topics/css.md>), [Web platform](<https://devfeed.tech/topics/web-platform.md>), [modern web development](<https://devfeed.tech/topics/modern-web-development.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [color](<https://devfeed.tech/topics/color.md>), [view transitions](<https://devfeed.tech/topics/view-transitions.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [color](<https://devfeed.tech/tags/color.md>), [css](<https://devfeed.tech/tags/css.md>), [features](<https://devfeed.tech/tags/features.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [view-transitions](<https://devfeed.tech/tags/view-transitions.md>), [web](<https://devfeed.tech/tags/web.md>), [web-platform](<https://devfeed.tech/tags/web-platform.md>)

### AI overview

An in-depth look at how 37signals built ONCE/Campfire with vanilla CSS, no build step, and modern web platform features. It covers CSS nesting, relational and selector functions, wide-gamut colors, View Transitions, and color systems using oklch().

### Source excerpt

An in-depth look at how 37signals built ONCE/Campfire using modern features, vanilla CSS, and no frameworks or preprocessors.

## Thruster is now open source

DevFeed: [Thruster is now open source](<https://devfeed.tech/articles/thruster-is-now-open-source-33518.md>)

Original publisher: [Read original article](<https://dev.37signals.com/thruster-released/>)

Author: Kevin McConnell

Published: 2024-03-07T18:00:00Z

Content type: release

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [proxy](<https://devfeed.tech/topics/proxy.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [SSL](<https://devfeed.tech/topics/ssl.md>), [Compression](<https://devfeed.tech/topics/compression.md>)

Tags: [caching](<https://devfeed.tech/tags/caching.md>), [compression](<https://devfeed.tech/tags/compression.md>), [http](<https://devfeed.tech/tags/http.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ssl](<https://devfeed.tech/tags/ssl.md>)

### AI overview

37signals announces Thruster, an open-source minimal HTTP/2 proxy server for Rails applications. It runs alongside Puma and adds HTTP/2 support, Let's Encrypt SSL, HTTP caching for public assets, static file serving, and compression.

### Source excerpt

A minimal HTTP/2 proxy for easy, production-ready Rails deployments.

[Next page](<https://devfeed.tech/sources/37signals-dev.md?cursor=WyIyMDI0LTAzLTA3VDE4OjAwOjAwKzAwOjAwIiwgIjY2OWU3ZDU3LWFkNTctNDk0OS1hN2VhLWY5MDhlMjJmMDY0NSJd>)