Systems | Development | Analytics | API | Testing

Custom Exceptions in Ruby: Classes, Messages & Hierarchies

To create a custom exception in Ruby, define a class that inherits from StandardError: class PaymentError < StandardError; end. Raise it with raise PaymentError, "card declined" and rescue it by class. Inherit from StandardError, not Exception, so a bare rescue still catches it. Pass a default message by overriding initialize and calling super. Ruby’s built-in exception classes describe the language’s failure modes, not your application’s.

Devise for Ruby on Rails: Setup, Modules & Rails 8 Auth

Devise is a full-featured authentication gem for Ruby on Rails, built on Warden. It provides registration, login, password recovery, session timeout, and account locking via 10 composable modules. Install it with bundle add devise, then run rails g devise:install and rails g devise User. It works with Rails 7 and 8; Rails 8's built-in generator covers only simpler needs.

Handling Exceptions in Grape for Ruby: rescue_from and error!

Grape handles exceptions with rescue_from blocks declared on your API class: rescue_from :all catches every exception, while rescue_from ActiveRecord::RecordNotFound targets one class. Inside an endpoint, error!("Not Found", 404) halts with a formatted error, defaulting to status 500. Without a handler, invalid params return 400 and other exceptions bubble up to Rack. This guide covers Grape 3.3. Every response body, status code, and error message was verified on Grape 3.3.5, Rack 3.2.7, and Ruby 3.4.10.

Add an App With Your Coding Agent

You can now ask your coding agent to set up AppSignal in your application. Give it a prompt, let it follow the installation instructions, and watch a checklist fill in as data starts arriving. Installing AppSignal was already straightforward, but it still meant checking your environment, adding the right integration, creating an app, handling credentials, and confirming that telemetry arrived. These are useful checks, but they don't all need your attention.

Rails 8 Guide: Features, Requirements & Upgrade Path (2026)

Rails 8.0 shipped November 7, 2024 and requires Ruby 3.2.0+. Headline features: a built-in authentication generator, Solid Queue/Cache/Cable (database-backed, no Redis), Kamal 2 + Thruster deployment, Propshaft, and production-ready SQLite. Rails 8.1 (October 2025) is the current release; Rails 8.0 now gets security fixes only, through November 2026. This guide walks through each Rails 8 feature with the commands and defaults you’ll use.

Top 17 AI Testing Tools

Generating tests isn’t the hard part anymore. Ask an LLM to create Playwright tests, and it will produce hundreds of them in no time. The problem lies in deciding whether those tests are useful, maintaining them as your application changes, and knowing if you’ve even chosen the right tool in the first place. This article compares 17 AI testing tools across 5 categories. We’ll look at what each of them does, where it fits, what makes it different, and where it falls short.

Vibe Coding Economically: Which Framework Is the Cheapest? (Rails vs Django vs Laravel)

Token costs used to be something most developers ignored. They simply dismissed them as theoretical. Now, they’re showing up in your Cursor/Claude Code bill, in every pasted error, in that package the AI pulled in without asking, or in that clarification round you didn’t plan for. Most developers choose a framework based on what they've used before, what the job description asks for, or simply whatever was used on their last project.

Building an API Gateway with Koa and AppSignal

In an API-driven setup, a gateway often sits between clients and backend services: it can validate input, aggregate upstream responses, and give you one place to observe traffic. Koa is a strong fit for that role. Its core stays small, async/await is first-class, and middleware composes in a predictable stack. In this article, you will build a compact API gateway with Koa that: You will also wire up AppSignal for the Node.js stack.

Monitoring Django Query Performance with AppSignal

Slow database queries are really a pain. It’s easy to blame Django for taking ages to process a request, but the real issue may lie in an SQL query not doing what it should be. These performance degrading queries are often hiding in plain sight. By the time you notice them, they are already affecting your end users. AppSignal is an application performance monitoring (APM) tool with support for Python and Django out of the box.

Signal Forms in Angular: The Missing Link in Modern Reactivity

For years, Angular lived with a subtle contradiction. The framework steadily modernized its reactivity model with signals, fine-grained change detection, and a clearer mental model for component state. Yet forms - arguably one of the most important parts of most applications - continued operating under an older, push-based system built around events and subscriptions. Developers felt this split immediately.