All blogs / DevOps / SRE / infrastructure
AppSignal
Product updates and things we've learned while building AppSignal
DevOps / SRE / infrastructureRuby / RailsElixir / ErlangPythonPHP
- Posts
- 872 from 31 Jan 2013 to 21 Oct 2026
- Posting
- weekly (73 in the last year)
- Kind
- company blog
- Feed
- https://blog.appsignal.com/feed.xml
2026 59
- AppSignal MCP Is Now a Claude Connector
- Visualize Data Your Way, with Intelligence Dashboards Built for Your Stack
- Add an App With Your Coding Agent
- Distributed Tracing Is Now in Beta for Ruby, PHP, and Python
- AppSignal Intelligence Just Got More Rails Context
- AppSignal at ElixirConf 2026
- Top 17 AI Testing Tools
- AppSignal vs the tools it replaces (PagerDuty, Cronitor, Rollbar etc.)
- MCP Won't Replace Your Monitoring Tool
- Why You Shouldn't Vibe Code Your Monitoring Tool
- How to Investigate a Production Incident Using an AI Agent (AppSignal MCP)
- Your Render Migration Checklist: How to Verify Everything Is Working
- From Claude Code to Production: A Monitoring Checklist for Python Developers
- Triage Production Incidents with a Single Prompt Using the AppSignal CLI
- AppSignal MCP Server: Get Started in your IDE
- AppSignal Launch Week 2026 Recap
- Why Your Sidekiq Jobs Are Slower Than You Think, and How AppSignal Fixes That
- Monitoring Your Django App Health on Fly.io
- Why AI-Generated Code Needs Monitoring More Than Handwritten Code
- Introducing AppSignal for Startups
- Monitor Your PHP Applications with AppSignal
- 5 Alternatives to Prometheus in 2026
- Vibe Coding Economically: Which Framework Is the Cheapest? (Rails vs Django vs Laravel)
- Finding the Slow Query Killing Your Rails App
- Top 10 Prompts for Your Monitoring Tool
- Monitor your Render services with AppSignal
- Building a CloudWatch metrics pipeline: parsing OpenTelemetry data
- Building an API Gateway with Koa and AppSignal
- Log-based metrics, now in AppSignal Labs
- Data Sovereignty: How to Keep All of Your Services in Europe (AppSignal + Hatchbox)
- Introducing AppSignal Labs
- How to Monitor Your Node.js App on Hetzner with AppSignal
- Setting Up Server Monitoring for a Rails App on Hatchbox
- Monitoring Sidekiq Job Performance with AppSignal
- From Keyword Search to Ask AI: How We Upgraded AppSignal's Docs Experience
- What Is Wrong With PaaS Today?
- Monitoring CPU and Memory on Your VPS with AppSignal
- AppSignal x Hatchbox: Affordable Hosting, Full Visibility
- Monitoring Django Query Performance with AppSignal
- N+1 Detection in AppSignal's OpenTelemetry Trace Timeline
- AppSignal MCP Now Supports OAuth — and GitHub Copilot
- Tracing a Slow Request Through Your Django App
- Tracking Celery Task Failures in Python
- Signal Forms in Angular: The Missing Link in Modern Reactivity
- Setting Up AppSignal for a Node.js App Running on Kubernetes
- Monitoring Express Route Performance with AppSignal
- How to Set Up Your Monitoring System Alerts
- Debugging Slow Ecto Queries with AppSignal
- What Metrics to Monitor in Your Vibe Coded App
- Monitoring Your App Without Running Your Own Prometheus Stack
- AppSignal's MCP Server: Connect AI Agents to Your Monitoring Data
- Monitoring Your Node.js App Health on Fly.io
- More Control, Less Friction: A Better Dashboard Experience
- Signal-Driven Error Monitoring: Detecting and Debugging Reactive Failures in Angular
- Why Monitoring Matters for Modern Hosting Platforms
- Master Your Coding Workflow with AppSignal MCP Server and Zed AI
- Stop Sifting Logs: Find Production Errors in Seconds with `severity=error`
- Domains and Resources in Ash for Elixir
- An Introduction to Ruby Parsing with Prism
2025 94
- AppSignal’s Top 5 Ruby Posts in 2025
- AppSignal’s Top 5 JavaScript Posts in 2025
- AppSignal’s Top 5 Elixir Posts in 2025
- Monitoring Node.js Express Application Performance with AppSignal
- Create a Markdown Editor in Ruby on Rails
- The Performance Revolution in JavaScript Tooling
- Improve Query Performance Using Python Django QuerySets
- Manage a Next.js Monorepo with Prisma
- Completing, Integrating, and Publishing Our Game with DragonRuby
- Build an Elixir App with Cowboy
- Rendering Samples with Showcase for Ruby on Rails
- Diving Into Reactive Programming in Node.js
- An Introduction to Game Development with DragonRuby
- Debugging in Elixir with Observer
- Find and Fix Fastify Slowdowns with AppSignal for Node.js
- Monitor the Performance of Your Ecto for Elixir App with AppSignal
- Ways to Improve Node.js Loader Performance
- Unlock Your App's Full Potential for Free with AppSignal
- Render a Component Preview In Showcase for Ruby on Rails
- Optimizing Your Cart with Signals: Smarter State, Better Debugging
- Batch Updates and Advanced Inserts in Ecto for Elixir
- How to Read Code from the Showcase Ruby on Rails Engine
- Angular Signal-Based Architecture: Building a Smarter Shopping Cart
- uv vs. Pip in Python: What It Is and How to Switch
- Advanced Debugging in Elixir with IO.inspect
- The Angular Signals Revolution: Rethinking Reactivity
- AppSignal Launch Week Recap
- Structs and Embedded Schemas in Elixir: Beyond Maps
- Smooth Async Transitions in React 19
- Scheduling Background Tasks in Python with Celery and RabbitMQ
- How to Use Redis with Python
- Tracking Errors in Absinthe for Elixir with AppSignal
- Monitor the Performance of Your Node.js Fastify App with AppSignal
- Extend ActiveStorage for Ruby on Rails with Custom Previewers
- Get the Full Picture: AppSignal Adds OpenTelemetry Support
- Deploy a Python Flask App to Render with Docker
- Understanding Stack Traces in Elixir
- Unit Testing in NestJS for Node Using Suites (Formerly Automock)
- Build Custom ActiveStorage Analyzers for Ruby on Rails
- How the Application and Request Contexts Work in Python Flask
- An Introduction to Oban for Elixir Monitoring Using AppSignal
- Express Error Handling in Node.js: Default Behavior and Custom Handlers
- How to Avoid N+1 Queries in Django Python
- Beyond console.log: Smarter Debugging with Modern JavaScript Tooling
- Advanced Strategies to Deploy Phoenix Applications with Kamal
- How to Use MongoDB in Python Flask
- Advanced Ecto for Elixir Monitoring with AppSignal
- Flask or Django: Which One Best Fits Your Python Project?
- Testing MongoDB in Node with the MongoDB Memory Server
- A Deep Dive into Solid Queue for Ruby on Rails
- Using SQL in Node.js with Sequelize
- Deploying Phoenix Applications with Kamal
- Performance and Stress Testing in Node.js
- How to Set Up Tracing for Elixir Apps Using AppSignal
- Ways to Optimize Your Code in Python
- Set Up Tracing for a Ruby on Rails Application in AppSignal
- An Introduction to Ecto for Elixir Monitoring with AppSignal
- What's New in Node.js 24
- Biome vs. ESLint and Prettier: How to Migrate Your JS Project
- Solid Queue for Ruby on Rails: An Introduction (Rails 8.1)
- AppSignal Closes $22 Million Growth Investment
- JWT Authentication in Flask: Secure a Python REST API
- How To Write Unit Tests in Node.js Using Mocha
- Pre-build a Secure Authentication Layer with Authentication Zero for Ruby on Rails
- An Introduction to JavaScript Bundler Rspack
- Instrumenting Redis in Python with AppSignal
- An Introduction to Testing in Python Flask
- Advanced Dialyzer Usage in Elixir: Types and Troubleshooting
- Prevent Silent Failures and Monitor Any Process with AppSignal Wrap
- How to Choose Between SQL, Query Builders, and ORMs in Node.js
- Seamless Issue Management with AppSignal: How to Quickly Assign, Track, and Resolve Incidents
- Generating Tests from Recorded Data in Node.js
- Getting Started with Dialyzer in Elixir
- Project Managing Multiple Applications with AppSignal
- Building Robust Data Synchronization Code in Node.js
- Easily Monitor Multiple Heroku Apps with AppSignal
- Fine-Tune Your Charts with Minutely Metrics in AppSignal
- Secure Your Sign-Ins with AppSignal's Single Sign-On
- End-to-End Testing With TestCafe for Node.js
- An Introduction to Absinthe for Elixir Monitoring with AppSignal
- How to Use Flask-SQLAlchemy to Set Up a Database in Python
- Advanced ActiveRecord Queries: Joins, Subqueries, and CTEs (Rails 8.1)
- Manage All Your App Notifications in One Place with AppSignal
- The Top 5 Scout Alternatives
- AbortController in Node.js: Cancel Async Operations
- Integrate AppSignal with AWS Fargate in Python Flask
- AppSignal Now Offers Support for Long-Running Streaming Rack Responses in Ruby
- Building a Distributed Rate Limiter in Elixir with HashRing
- AppSignal's 2024 Event Sponsorships
- Monitor the Performance of Your Python Flask Application with AppSignal
- Export Datasets and Graphs from AppSignal
- Fuzz Testing REST APIs in Node.js
- Tracking Errors in Tesla with AppSignal for Elixir
- Python Regex: How to Use re.search, re.match, and re.findall
2024 114
- AppSignal’s Top 5 Ruby Posts in 2024
- AppSignal’s Top 5 JavaScript Posts in 2024
- AppSignal’s Top 5 Elixir Posts in 2024
- The Top 5 New Relic Alternatives
- CommonJS vs. ES Modules in Node.js: What's the Difference?
- Distributed Phoenix: Deployment and Scaling
- Find and Fix N+1 Queries in Django Using AppSignal
- Unit Testing in Node.js With Jest
- Server-sent Events and WebSockets in Rack for Ruby
- The Top 5 Sentry Alternatives
- Rack for Ruby: Socket Hijacking
- Avoiding False Positives in Node.js Tests
- Manage Your Pino Logs with AppSignal
- Streamlined Contract Testing in Node.js: A Simple and Achievable Approach
- How to Track Errors in Oban for Elixir Using AppSignal
- The Top 5 Honeybadger Alternatives
- The Basics of Rack for Ruby
- Optimize Database Performance in Rails and ActiveRecord (Rails 8.1)
- Advanced Open edX Monitoring with AppSignal for Python
- Managing Distributed State with GenServers in Phoenix and Elixir
- How to Use Lambda Functions in Python
- Best Testing Practices in Node.js
- Rails Community Survey 2024: AppSignal Ranks in Top 5
- We've Redesigned Our Charts at AppSignal: 6 New Features
- Find and Fix N+1 Queries Using AppSignal for a Phoenix App in Elixir
- Rails 8 Guide: Features, Requirements & Upgrade Path (2026)
- Measuring the Impact of Feature Flags in Ruby on Rails with AppSignal
- Integrating Open edX with AppSignal
- Introducing Check-ins for Scheduled Job and Continuous Process Monitoring
- Ruby’s hidden gems: Sorbet
- DynamoDB Single-Table Design with TypeScript
- A Complete Guide to Phoenix for Elixir Monitoring with AppSignal
- Top 5 HTTP Request Libraries for Node.js
- Rails Strict Locals: Guide and Common Errors (Rails 7.1–8)
- Integrating Stripe Into A One-Product Django Python Shop
- Scaling Your Phoenix App in Elixir with FLAME
- How to Handle Errors in Next.js with error.js and the App Router
- Build a One-Product Shop With the Python Django Framework and Htmx
- AppSignal for Ruby Version 4.0
- Squash Your Ruby and Rails Bugs Faster
- Monitor Node.js AMQP Brokers with AppSignal
- LiveState for Elixir: An Overview and How to Build Embeddable Web Apps
- An Introduction to Unit Testing in Node.js
- An Introduction to HTTP Caching in Ruby On Rails
- An Introduction to Nix for Ruby Developers
- Advanced Use Cases of the Node.js Native Test Runner
- Custom Instrumentation for a Phoenix App in Elixir with AppSignal
- Setting Up Custom Metrics with Effective Alerts for a Ruby App in AppSignal
- Monitor the Performance of Your Python Django App with AppSignal
- Monitor BullMQ Background Jobs with AppSignal
- Rails 7.2 Database Features You Already Have: An Active Record Reference
- Grokking DynamoDB with TypeScript
- Enhancing Your Elixir Codebase with Gleam
- How to Use the Node.js Native Test Runner (node --test)
- An Introduction to Auth0 for Ruby on Rails
- Monitor the Performance of your Python FastAPI App with AppSignal
- Track Errors in Phoenix for Elixir with AppSignal
- Security Best Practices for Your Node.js Application
- Debugging in Ruby with the debug Gem
- Deploy a Python FastAPI Application to Render
- Leverage Concurrency Efficiently When Managing Multiple Tasks in Elixir
- How to Perform Data Validation in Node.js
- Monitor the Performance of Your Ruby on Rails Application Using AppSignal
- Advanced Dependency Injection in Elixir with Rewire
- The Top 5 Datadog Alternatives
- How to Use Tailwind CSS for Your Ruby On Rails Project
- Develop a Serverless TypeScript API on AWS ECS with Fargate
- Track Errors in Your Python Flask Application with AppSignal
- Getting Started: Your Ruby On Rails App Hosted On DigitalOcean With AppSignal
- AppSignal Is A Rails World 2024 Platinum Sponsor
- Five Things to Avoid in Ruby
- Cypress vs. Playwright for Node: A Head-to-Head Comparison
- Using Dependency Injection in Elixir
- Understanding Offset and Cursor-Based Pagination in Node.js
- Rails Forms Guide: Simple Form vs form_with (Rails 8)
- Effective Testing in JavaScript
- Debugging Ruby with pry-byebug (vs debug): 2026 Guide
- What's New in Node.js 22
- When to Use Bun Instead of Node.js
- AnyCable for Ruby on Rails: How Does it Improve over Action Cable?
- Should You Use Ruby on Rails or Hanami?
- Deep Diving Into the Erlang Scheduler
- Introducing Support for Apollo Gateway
- Handling Exceptions in Grape for Ruby: rescue_from and error!
- Measuring Node.js Performance in Production with Performance Hooks
- How to Implement Rate Limiting in Express with express-rate-limit
- How to Use Flume in your Elixir Application
- Tracking Custom Metrics in Python with AppSignal
- Track Errors in FastAPI for Python with AppSignal
- Building Serverless Apps with the AWS CDK Using TypeScript
- Strong Migrations for Rails: Safe Database Migration Practices (Rails 8.1)
- Direct File Uploads to Amazon S3 with Phoenix LiveView
- AppSignal's 2024 Ruby Event Sponsorships
- Turbo Streaming Modals in Ruby on Rails
- Node.js Performance APIs: An Introduction
- Two-Factor Authentication Enforcement Now Available On All AppSignal Plans
- Active Record vs Sequel: Choosing a Ruby ORM
- Powerful Caching in Elixir with Cachex
- Track Errors in Your Python Django Application with AppSignal
- Top 8 Recent V8 in Node Updates
- Hotwire Modals in Ruby on Rails with Stimulus and Turbo Frames
- Creating Custom Exceptions in Elixir
- Full-Text Search for Ruby on Rails with Litesearch
- Build an Idempotent API in Node.js with Redis
- Introducing AppSignal Business Add-Ons
- RSpec Tests in Ruby on Rails: Every Spec Type Explained (2026)
- How to Build a Memory-efficient Elixir App with Streams
- Throttling a Kafka Queue in Node.js
- An Introduction to Testing with Django for Python
- Behaviour Driven Development in Ruby with RSpec
- Build A Simple Tracing System in Elixir
- Speed Up Your Ruby on Rails Application with LiteCache
- Dealing with CPU-bound Tasks in Node.js
- Keep your Ruby Code Maintainable with Draper
2023 118
- AppSignal’s Top 5 Ruby Posts in 2023
- AppSignal’s Top 5 JavaScript Posts in 2023
- AppSignal’s Top 5 Elixir Posts in 2023
- What's New in Elixir 1.16
- Connecting React.js and StimulusJS with JavaScript Events
- Stream Updates to Your Users with LiteCable for Ruby on Rails
- Server-side Rendering with Next.js, React, and TypeScript
- AppSignal Expands Monitoring Capabilities with Vector
- How to Use Shoulda Matchers with RSpec for Ruby on Rails
- How to Deploy a Python Flask app with Heroku
- Advanced Multi-tenancy for Elixir Applications Using Ecto
- Monitor Solid Cache in Rails with AppSignal
- Keep Your Ruby Code Maintainable with Money-Rails
- An Introduction to Profiling in Node.js
- Shaping the Future of Ruby and Kafka Together with rdkafka-ruby
- Setting Up a Multi-tenant Phoenix App for Elixir
- How We Handle Upgrades at AppSignal
- How to Optimize MongoDB Performance for Node.js
- Handle Incoming Webhooks with LiteJob for Ruby on Rails
- How to Set Request Timeouts in Node.js and Express
- Validating Data in Elixir: Using Ecto and NimbleOptions
- We've Levelled up Our Top Monitoring Features
- How AppSignal Got Its (Domain) Name
- What Do Deno and Bun Bring to the Table?
- A Deep Dive Into LiteDB for Ruby on Rails
- AppSignal Monitoring Available for Python Applications
- Sponsoring Rails World: What Did It Cost, and Was It Worth It?
- What's New in Node.js 21
- How To Use Zig for Elixir NIFs
- AWS Step Functions with Node.js: Build an API
- Advanced Usages of Action Policy for Ruby on Rails
- Monitor Your Node.js and Remix Application with AppSignal
- Expressive Ruby and Rails: Communicate Effectively With Your Code
- Validate Data in a Phoenix Application for Elixir
- Using Action Policy for a Ruby on Rails App: The Basics
- Deploy and Test AWS Step Functions with Node.js
- How To Reduce Reductions in Elixir
- An Introduction to LiteStack for Ruby on Rails
- An Introduction to Exceptions in Elixir
- Sidekiq for Ruby on Rails: Setup, Jobs & Monitoring (2026)
- When to Use Playwright Over Puppeteer in Node.js
- Phoenix 1.7 for Elixir: Edit a Form in a Modal
- Job Schedulers for Node: Bull or Agenda?
- An Introduction to RuboCop for Ruby on Rails
- Tracking Errors in a Node.js Application
- Writing a Custom Credo Check in Elixir
- Secure Your Ruby App with JSON Web Tokens
- Pitfalls to Avoid in Playwright for Node.js
- How to Use MongoDB and Mongoose with Node.js
- A Deep Dive into Subscriptions with Absinthe
- Add a Form to a Modal in Phoenix 1.7
- Track Errors in Fastify with AppSignal
- Metaprogramming in Ruby: send, define_method & method_missing
- How to Delegate Methods in Ruby: Forwardable, SimpleDelegator, and Rails delegate
- Observe Your Phoenix App with Structured Logging
- Devise for Ruby on Rails: Setup, Modules & Rails 8 Auth
- An Introduction to Playwright for Node.js
- Boost HTTP Client Monitoring in Elixir with AppSignal and Tesla Templates
- Multithreading with Worker Threads in Node.js
- Monitoring Your Elixir GraphQL API with AppSignal
- A Deep Dive into Mutations with Absinthe
- Migrate Your Express Application to Fastify
- Keep Your Ruby App Secure with Bundler
- Expand Your Monitoring Capabilities with AppSignal's Standalone Agent Docker Image
- Ruby Lambdas: Syntax, Lambda vs. Proc, and return/next Semantics
- Rails Error Reporting: Rails.error and ActiveSupport::ErrorReporter
- Create and Open a Modal in Phoenix 1.7
- Setting Up Business Logic with DCI in Rails
- Puppeteer in Node.js: More Antipatterns to Avoid
- Designing a Scalable Backend in Node.js
- Absinthe for Large Elixir Applications
- Set Up Tracing for a Node.js Application on AppSignal
- How to Use Sinatra to Build a Ruby Application
- Advanced Fastify: Hooks, Middleware, and Decorators
- Tackling Performance Issues in Ecto Applications
- Transport Your Logs to AppSignal with Winston
- Manage Your Ruby Logs Like a Pro
- An Introduction to Async Stack Traces in Node.js
- An Introduction to Absinthe
- Organize Business Logic in Your Ruby on Rails Application
- Integrate and Troubleshoot Inbound Emails with Action Mailbox in Rails
- A Guide to Handling Errors in Preact
- How to Monitor Custom Metrics with AppSignal
- Getting Started with Fastify for Node.js
- Test Data Libraries for Elixir
- Node.js Pitfalls to Avoid
- How to Load Code in Ruby
- Optimize Your Prisma Queries with AppSignal and OpenTelemetry
- Audit Logging in Ruby and Rails
- An Introduction to Mocking Tools for Elixir
- Monitor the Health of Your Node.js Application
- How to Use the rodauth-omniauth Gem in Ruby
- Monitor NGINX Performance Automatically with AppSignal
- Custom Exceptions in Ruby: Classes, Messages & Hierarchies
- Debugging Phoenix LiveView with open_browser/2
- Introducing AppSignal Logging
- Pundit vs CanCanCan: Choosing a Rails Authorization Gem
- Generating Data Functions in Your Elixir App
- How to Build an Error Handling Layer in Node.js
- A Generalized User-local Container for UI State in Kredis
- Making the Most of Your Logs in Rails
- An Introduction to Test Factories and Fixtures for Elixir
- Track Errors in Your NestJS Application with AppSignal
- Storing Ephemeral UI State with Kredis for Rails
- Under the Hood of Ecto
- Introducing AppSignal for Hanami
- Puppeteer in Node.js: Common Mistakes to Avoid
- An Introduction to Application Monitoring
- AppSignal for Elixir Now Supports Oban
- A Guide to Rails View Helpers
- 5 Node.js Tools to Learn in 2023
- Monitoring Your NestJS Application with AppSignal
- Calling Ruby Methods in C: Avoid Memory Leaks
- How To Instrument Your Elixir Application with AppSignal
- Secure Your AWS Lambdas with TypeScript
- How to Parse Arguments in Your Ruby C Extension
- Create a Business Language for a Rails Application
- Debugging and Tracing in Erlang
2022 101
- AppSignal’s Top 5 Ruby posts in 2022
- AppSignal’s Top 5 Node.js posts in 2022
- AppSignal’s Top 5 Elixir posts in 2022
- A Guide to Memoization in Ruby
- How to Cache Locally in Elixir with Nebulex
- AppSignal for Phoenix Version 2.2.0 Supports Phoenix 1.7
- A First Look at Hanami 2 for Ruby
- Optimize Your AWS Lambdas with TypeScript
- Debugging in Elixir and Erlang: An Introduction
- AppSignal for Node.js 3.0 Introduces OpenTelemetry Support
- System Notifications with Noticed and CableReady in Rails
- Node.js Architecture Pitfalls to Avoid
- AppSignal's Future with OpenTelemetry
- Node.js Error Handling: Tips and Tricks
- Parser Combinators in Elixir: A Deeper Dive
- Node.js 19 Release: What’s New
- AppSignal Supports Mastodon
- How to Scale Ruby on Rails Applications
- How to Handle Async Code in JavaScript
- What's New in Next.js 13
- Sanitize Strings in Elixir with Pattern Matching and Recursion
- Build a Table Editor with Trix and Turbo Frames in Rails
- AWS Lambdas with TypeScript: Improve the Dev Experience
- AppSignal for Elixir Now Supports Finch
- Improve Code in Your Ruby Application with RubyCritic
- Parser Combinators in Elixir: Taming Semi-Structured Text
- Deploy a Node.js and MongoDB Application to Heroku
- Phoenix LiveView 0.18: New Special HTML Attributes
- Security Best Practices for Your Rails Application
- Faster XML Parsing with Elixir
- Minimize Heap Allocations in Node.js
- How to Build AWS Lambdas with TypeScript
- Debugging in Ruby with AppSignal
- Fix Process Bottlenecks with Elixir 1.14's Partition Supervisor
- Secure Your Node.js App with JSON Web Tokens
- Elixir 1.14: Better Debugging with dbg/2 and More
- JIT Compilers for Ruby and Rails: An Overview
- Benchmark Your Elixir App's Performance with Benchee
- Monitor Ruby Application Performance with Magic Dashboards
- 4 Ways to Minimize Your Dependencies in Node.js
- Ractors in Ruby: Parallel Execution, Messages & Shareable Objects
- Predictable Code in Elixir: Expressions as Reducers and Macros
- Build a CRUD App with Node.js and MongoDB
- A Deep Dive into Memory Leaks in Ruby
- Write a Standalone CLI Application in Elixir
- Connect a Ruby on Rails App with React in a Monolith
- Monitor Alpine Linux ARM Hosts with AppSignal
- All You Need to Know about EdgeDB
- AppSignal for Ruby Gem 3.1: MRI VM Magic Dashboard
- How to Track Down Memory Leaks in Ruby
- How to Write a Functor in Elixir
- An Introduction to Multithreading in Node.js
- Writing Predictable Elixir Code with Reducers
- Deploy Your Ruby on Rails App Using Capistrano
- How to Test Side-Effects in Node.js
- Get Started with Hotwire in Your Ruby on Rails App
- New: Nth Error per Hour/Day Notifications in AppSignal
- LiveView Assigns: Three Common Pitfalls and Their Solutions
- AppSignal’s Next Level Of Front-end Error Tracking
- State Machines in Ruby: An Introduction
- AppSignal for Phoenix 2.1: Automatic LiveView Instrumentation
- Recommended AppSignal Setup
- How to Handle Errors in React
- A Guide to Phoenix LiveView Assigns
- Add Feature Flags in Ruby on Rails with Flipper
- Adding Redis & MySQL to AppSignal for Node.js with OpenTelemetry
- Build a Data Access Layer with PostgreSQL and Node.js
- Algebraic Data Types in Elixir
- An Introduction to Polymorphism in Ruby on Rails
- Livebook for Elixir: Just What the Docs Ordered
- Using Scientist to Refactor Critical Ruby on Rails Code
- How We Improved Table Performance in AppSignal - Back-end Changes
- A Guide to Event-Driven Architecture in Elixir
- Bootstrapping with Ruby on Rails Generators and Templates
- Logbook: Team Discussion and Full Incident History
- Using Profiling in Elixir to Improve Performance
- Node.js 18 Release: What's New
- What's New in React 18
- Principles of Object-oriented Programming in TypeScript
- Rails Transactions: ActiveRecord::Rollback & Error Handling
- Phoenix LiveView Under The Hood: The Form Function Component
- Build Serverless APIs with Node.js and AWS Lambda
- The Perils of Parallel Testing in Ruby on Rails
- A Guide to Secure Elixir Package Updates
- New Process for Exception and Performance Incident Emails
- PM2 for Node.js: Auto-Restart, Monitoring, and Clustering
- Import Maps Under the Hood in Rails 7
- Organize Your Custom Dashboards More Easily in AppSignal
- Patterns and Anti-patterns in Node.js
- Dependency Injection in JavaScript: Write Testable Code Easily
- Delayed Job vs. Sidekiq: Which Is Better?
- An Introduction to Deno: Is It Better than Node.js?
- Functional Programming in Elixir with Witchcraft
- How to Keep Database Table Sizes Down and Prevent Data Bloat
- Use Streams to Build High-Performing Node.js Applications
- Improvements Made to AppSignal for Node.js in 2022
- Securing Your Phoenix LiveView Apps
- How to Set Up a Node.js Project with TypeScript
- How to Migrate Your Blog from Gatsby to Next.js
- Build Interactive Phoenix LiveView UIs with Components
- Next Level Ruby on Rails Application Monitoring with AppSignal
2021 82
- AppSignal’s Top 5 Ruby Posts in 2021
- AppSignal’s Top 5 JavaScript Posts in 2021
- AppSignal’s Top 5 Elixir Posts in 2021
- 8 Common Causes of Flaky Tests in Elixir
- Exporting and Sharing Graphs From AppSignal
- What's New in Rails 7
- What's New in Elixir 1.13
- Monitor Scheduler Utilization in Elixir With AppSignal
- Node.js Memory Limits: Heap Size and How to Increase It
- Ruby on Rails Application Monitoring with AppSignal
- Three Ways to Debug Code in Elixir
- Simpler Navigation in AppSignal: A Story About Refactoring Design
- 7 Ways to Improve Node.js Performance at Scale
- Practical Garbage Collection Tuning in Ruby
- Pitfalls of Metaprogramming in Elixir
- A Guide to Load Testing Node.js APIs with Artillery
- Designing Error Messages and a Logging Strategy in Node.js
- Authorization and Policy Scopes for Phoenix Apps
- What's New in Node.js 17
- How to Use Macros in Elixir
- Optimistic Locking in Rails REST APIs
- How to Dockerize an Existing Node.js Application
- Add More Metadata to Your Front-end JavaScript Errors in AppSignal
- How to Do Live Uploads in Phoenix LiveView
- Under the Hood of Macros in Elixir
- Improved Error Tracking for Node.js in AppSignal
- Real-Time Form Validation with Phoenix LiveView
- Improve Your Life with Long Error Messages
- What Are Atoms in Elixir and How To Monitor Them With AppSignal
- How to Reduce Memory Bloat in Ruby
- How to Debug Cloudflare Workers with AppSignal
- CPU Steal Time: A Crucial Metric for Cloud Servers and VMs
- Application Code Upgrades in Elixir
- Launching Public Status Pages for Uptime Monitoring on AppSignal
- An Introduction to Metaprogramming in Elixir
- Best Practices for Logging in Node.js
- LiveView Integration Tests in Elixir
- Exploring Asynchronous Requests in Recoil
- Responsible Monkeypatching in Ruby: prepend, Refinements, and Safe Gem Patches
- Using Supervisors to Organize Your Elixir Application
- TypeScript Compiler API: Improve API Integrations Using Code Generation
- An Introduction to Testing LiveView in Elixir
- Ruby's Hidden Gems: Bullet
- AppSignal Error Tracking 2.0
- New Feature: Line-of-code-based Error Grouping
- Ruby Pattern Matching: case/in, Find Patterns, and the Pin Operator
- A Guide to Hot Code Reloading in Elixir
- How to Get Started with Prisma ORM for Node.js and PostgreSQL
- Building Aggregates in Elixir and PostgreSQL
- General Ruby on Rails Problems and Takeaways
- How to Monitor and Optimize Your Database Performance: A Practical Guide
- Adding Kubernetes Metadata to Your AppSignal Errors
- How to Test WebSocket Clients in Elixir with a Mock Server
- The Wolf Pack Tactic for Monitoring Slow APIs
- Performance, Stress, and Load Tests in Rails
- Uptime Monitoring: A One-week Project, a Decade In the Making
- Monitoring Memory Usage for Erlang and Elixir Applications
- Integrating AppSignal With Microsoft Teams
- Launching Uptime Monitoring In AppSignal
- Zero-touch SaaS Bookkeeping with Stripe and Moneybird
- Sidekiq Unique Jobs: Three Ways to Avoid Duplicates
- New Features: Heroku Errors and a Magic Dashboard
- A Quick Guide to CO2 Offsetting for Startups
- Linting Ruby Code
- Node.js's Underrated Combo: Passport and CASL
- Ruby on Rails Controller Patterns and Anti-patterns
- AppSignal Now Monitors Koa and All Your Cascading Middleware
- Exposing More Public Endpoints for Sending Metrics and Errors to AppSignal
- Engineering for Performance: Ghost Queries
- The Easiest Way to Monitor Ruby: Automatic Instrumentation
- Powerful Caching with Redis for Node.js Applications
- New Feature: Searching Through Samples in AppSignal
- Announcing AppSignal for Ruby Gem 3.0!
- Using Webpacker in Your Ruby on Rails Application — a Deep Dive
- Ruby on Rails View Patterns and Anti-patterns
- Improving Node.js Application Performance With Clustering
- RBS: A New Ruby 3 Typing Language in Action
- AppSignal for Elixir Integration 2.1 Released
- Node.js Garbage Collection: Heap Statistics Magic Dashboard
- How Absinthe Uses Compilation Callbacks for Schema Validation in Elixir
- Ruby Modules and Mixins: include, extend, prepend, and Rails Concerns
- Microservices Monitoring: Using Namespaces for Data Structuring
2020 85
- Top 5 Ruby Blog Posts in 2020 from AppSignal
- Top 5 JavaScript Blog Posts in 2020 from AppSignal
- Top 5 Elixir Blog Posts in 2020 from AppSignal
- New Magic Dashboard for Ruby on Rails: ActionMailer
- Setting Up AppSignal Monitoring for a Ruby on Rails Application
- The Easiest Way to Monitor Node.js: Automatic Instrumentation
- Building a Multi-tenant Ruby on Rails App With Subdomains
- Fast & Curious: Find and Fix Slow Queries & API Requests
- Server-side Rendering in JavaScript: A Modern Approach
- Ruby on Rails Model Patterns and Anti-patterns
- Announcing AppSignal for Elixir 2.0
- Understanding Associations in Elixir's Ecto
- Structuring Monitoring Data in Monolithic Applications With Namespaces
- Setting Up Triggers and Alerts From Graphs in AppSignal
- Triggers in AppSignal: Already Powerful — Now Easy To Set Up 🚀
- JavaScript Internals: Garbage Collection
- AppSignal is Free for Open-Source Software & "For Good" Projects
- Capabilities of Elixir's Logger
- Launching AppSignal Monitoring for Node.js 1.0
- Exploring Node.js Async Hooks
- Monitoring Any System with StatsD and AppSignal's Standalone Agent
- The Diagnose: How Support Works at AppSignal
- Rails Concerns: To Concern Or Not To Concern
- Improved Pagerduty Integration with Detailed Alerts
- Node.js Resiliency Concepts: Recovery and Self-Healing
- Going from Consulting to SaaS
- Getting Started With Web Vitals in Next.js
- Testing the Tricky Parts of an Absinthe Application
- Identifying and Resolving a Kafka Issue With AppSignal
- Security Best Practices for Node.js
- AppSignal Ruby Gem 2.11: Active Job and Friends
- AppSignal Now Automatically Instruments Apollo for Node.js Applications
- Introduction to Ruby on Rails Patterns and Anti-patterns
- AppSignal Now Supports Redis for Node.js Out of the Box
- The State of Elixir HTTP Clients
- Node.js Resiliency Concepts: The Circuit Breaker
- Building State Machines in Elixir with Ecto
- Scaling Queue Workers Efficiently with AppSignal Metrics
- How AppSignal Monitors Their Own Kafka Brokers
- A Deep Dive Into V8
- New Feature: Add Custom Metrics For Node.js in AppSignal
- Git is About Communication
- Best Practices for Background Jobs in Elixir
- Using Service Objects in Ruby on Rails
- A Major Overhaul of AppSignal Dashboards: Powerful and Easy to Use
- New feature: PostgreSQL Magic Dashboard in AppSignal for Node.js
- Performance and N+1 Queries: Explained, Spotted, and Solved
- Building APIs With GraphQL in Your Node.js Application
- AppSignal Adds Next.js Integration - Automatically Adds Web Vitals Monitoring
- Developer Dilemmas Are Now Online
- Using Mnesia in an Elixir Application
- New Integration: PostgreSQL Instrumented for Node.js
- JavaScript Growing Pains: From 0 to 13,000 Dependencies
- Quickly Duplicate Triggers Across Apps in AppSignal
- Developer Dilemmas are Coming Online Soon
- Avoiding Memory Leaks in Node.js: Best Practices for Performance
- RailsConf 2020.2 Couch Edition
- JavaScript Error Tracking with AppSignal v1.3.0 is Here
- Elixir Package 1.13: Phoenix LiveView Helpers and Updated Typespecs
- Configuring your Elixir Application at Runtime with Vapor
- Official AppSignal Discord Integration is Here
- New AppSignal Feature: Graph Builder
- Dissecting Rails Migrations: Anatomy, Rollbacks, and Errors (Rails 8.1)
- Ride Down Into JavaScript Dependency Hell
- The Citadel Architecture at AppSignal
- Changing the Approach to Debugging in Ruby with TracePoint
- AppSignal Now Supports Node.js: Roadmap for the Coming Weeks
- What's The Difference Between Monitoring Webhooks and Background Jobs
- How to Use gRPC in Elixir
- Facade Pattern in Rails for Performance and Maintainability
- Building Compile-time Tools With Elixir's Compiler Tracing Features
- Building a Rails App With Multiple Subdomains
- Elixir Package 1.12: Phoenix 1.5 Support & Better Channel Error Handling
- Hostname Filter for Anomaly Detection Host Triggers
- UI/UX Updates: Faster and Smoother Sample Navigation in AppSignal
- Migrating Production Data in Elixir
- Effective Profiling in Google Chrome
- How to Monitor Your Host Metrics Automatically
- Getting Started With System Tests in Rails With Minitest
- AppSignal Ruby Gem 2.10: Better Diagnose (And More)
- Monitoring the Erlang VM With AppSignal's Magic Dashboard
- How to Get Your Elixir Application Ready for CI/CD
- JavaScript Error Tracking v1.1.0
- Rails is Fast: Optimize Your View Performance
- structure.sql vs schema.rb: Choosing a Rails Schema Format
2019 59
- Top 10 AppSignal Blog Posts in 2019
- How to Use Broadway in Your Elixir Application
- Configurable Ruby Modules: The Module Builder Pattern
- JavaScript Errors: An Exceptional History - Part II
- Caching with Elixir and ETS
- How to Read Performance Metrics in AppSignal
- Sidekiq Optimization and Monitoring
- JavaScript Errors: An Exceptional History
- Launching JavaScript Error Tracking v1.0.
- Typespecs and Behaviours in Elixir
- Introducing area charts for custom dashboards.
- How We Tracked Down an Exception Without Errors: A Detective Story
- Ruby Templating: Baking an Interpreter
- Migrate to our new Slack App!
- TL;DR: Our new logo
- Flags, Seeds and Idempotency: Database Tooling with Elixir
- The Inherited Hook Method in Ruby - and More Parenting Lessons
- Type Checking in Ruby — Check Yo Self Before You Wreck Yo Self
- New Sample Page Graphs and Navigation
- Cleaning Up Ruby Strings 13 Times Faster
- Multiplayer Go with Elixir's Registry, PubSub and dynamic supervisors
- Digging Deeper into Ruby Templating: The Parser
- JavaScript Iterators and Iterables
- Metaprogramming: From C Preprocessing to Elixir Macros
- Last week's Product Improvements (July 15th, 2019)
- Productive Procrastination for Programmers - works for Ruby and Elixir
- Building the Go Game in Elixir - Time Travel and the Ko Rule
- Brewing our own Template Lexer in Ruby
- Introducing Incident Context and Incident Notes
- Building and Playing the Go Game with Phoenix LiveView
- The Ultimate Checklist to Properly Internationalize Devise
- How We Do VAT for Our SAAS with Stripe
- Introducing our Clubhouse integration
- Inside Enumeration in Ruby
- New Magic Dashboard: Heroku Postgres
- Doing Background Work Using a Native Elixir Approach
- Up the Ancestor Chain with method_missing
- We've got your back at RailsConf
- Kafka and Ruby, a Sidekiq Lovestory
- More personal email notification preferences
- Routing in Phoenix Umbrella Apps
- Learning by building, a Background Processing System in Ruby
- Memory Magic Dashboard
- Pinned apps
- Introducing Magic Dashboards
- Object Marshalling in Ruby
- Revamped dashboards!
- Iteration, Recursion, and Tail-call Optimization in Elixir
- Improved navigation for better feature discovery.
- Ruby's Hidden Gems, StringScanner
- Diving into Ruby's #dup and #clone
- Pouring Protocols in Elixir
- Monitoring MongoDB Replicaset Lag with AppSignal
- Introducing our Google Hangouts Chat integration
- Unraveling Classes, Instances and Metaclasses in Ruby
- Introducing our Asana integration
- An instrumental intro to GraphQL with Ruby
- Serving Plug - Building an Elixir HTTP server from scratch
- Bindings and Lexical Scope in Ruby
2018 58
- Ruby gem 2.8 - Container memory & JRuby on Alpine Linux support
- Elixir package 1.9: Improved Erlang error & Container memory support
- Don't be mean: Statistical means and percentiles 101
- Fibers and Enumerators in Ruby - Turning Blocks Inside Out
- Understanding Elixir’s GenStages - Querying the Blockchain
- Testing Asynchronous Threads in Ruby
- Building a Ruby C Extension From Scratch
- The innards of a RubyGem
- Hot Code Reloading in Elixir
- ActiveRecord vs. Ecto Part Two
- Improved Navigation
- The Magic of Class-level Instance Variables
- ActiveRecord vs. Ecto Part One
- #to_s or #to_str? Explicitly casting vs. implicitly coercing types in Ruby
- How OTP Applications are structured
- Differences Between #nil?, #empty?, #blank?, and #present?
- Push and Pub/Sub in Ruby
- Lists vs Tuples in Elixirs
- Rails Collection Caching
- Ruby gem 2.7: Improvements and bug fixes
- Elixir package 1.8: Improvements!
- Changing the Way Ruby Creates Objects
- Generating Random Numbers in Ruby: rand, Random & SecureRandom
- Ruby Magic Summer Special: The Best of AppSignal Academy
- Parsing Numbers in Elixir
- JavaScript-sprinkled Rails Applications
- Elixir integration 1.7 released
- Under the Hood: “Slurping” and Streaming Files in Ruby
- AppSignal Dashboard: Live updating insights
- Rebooting the Luftschiff!
- Caching counters with ActiveRecord's counter caches
- Deconstructing Elixir's GenServers
- Ruby's redo, retry and next keywords
- Enumerable and Enumerator in Ruby: each, Lazy, and Custom Classes
- Speeding up your app’s navigation with Turbolinks
- Ruby’s ensure, retry, and raise: Retrying and Reraising Exceptions
- Ruby gem 2.6: The GDPR release!
- General Data Protection Regulation (GDPR)
- Elixir integration 1.6: The GDPR release!
- Client-side caching in Rails: conditional GET requests
- Post-mortem: April 19th, 2018
- Rails' built-in cache stores: an overview
- New GitHub integration
- Rescuing Exceptions in Ruby: raise, rescue & retry
- AppSignal UI updates
- Elixir integration 1.5 released
- Russian doll caching in Rails
- Understanding system load and load averages
- Fragment caching in Rails
- Understanding CPU statistics
- Benchmarking Ruby Code
- Inspecting data in Ruby
- Syntactic sugar methods in Ruby
- Comparing host metrics
- Ruby gem 2.5 - JRuby support!
- Debugging Exceptions in Rails: Common Errors and Fixes
- Improved host metrics and alerts
- How to Read Ruby Stack Traces: Backtraces, Causes and Fixes
2017 25
- Track cache hits with custom metrics
- Elixir integration 1.4 released
- Ruby gem 2.4 - FreeBSD support and more exceptions!"
- Koos: keeping others off support
- Better, more and more specific notification options
- Two-factor authentication
- (Mass) Change incident status
- Introducing Anomaly detection (Beta)
- Improved Snapshots of your apps
- Supervisors: Building fault-tolerant Elixir applications
- Elixir integration 1.3 released
- A look at how Ruby interprets your code
- Improved Slack notifications
- Gem 2.3 - ActionCable!
- Concurrency Deep Dive: Event loops
- Demystifying processes in Elixir
- Gem 2.2 - Custom namespaces!
- Concurrency Deep Dive: Multi-threading
- Elixir integration 1.2 released
- Elixir integration 1.1 released
- Concurrency Deep Dive: Multi-process
- Launching AppSignal for Elixir
- Gem 2.1 released - Alpine Linux support!
- Documentation updates
- Running Rack: How Ruby HTTP servers run Rails apps
2016 28
- Escaping Characters in Ruby Strings and Regular Expressions
- Learning how to become a product business
- Review active browser sessions
- Add custom markers from any graph
- Building a 30 line HTTP server in Ruby
- Custom Markers
- Gem 2.0 released 🎉
- Rebasing a complex branch in Git
- Introducing: A new layout for AppSignal
- Gem 1.3: Giving Sinatra some love
- How to tame your growing users table
- Introduction to Garbage Collection (Part II)
- Host metrics in samples
- Introduction to Garbage Collection (Part I)
- Monitor MongoDB (query) load with Custom Metrics
- New event timeline
- Gem 1.2: Host metrics
- Gem version 1.1
- Upgrading to Mongoid 5 / mongo-ruby-driver
- Mastering Concurrency
- Introducing Graph Toggles
- Stroopwafels and how to eat them
- How to use custom metrics
- Getting high on our own supply
- Shipped it: A partnership with the Ruby on Rails podcast
- Event type graphs
- AppSignal agent release
- Phabricator integration
2015 14
- PagerDuty integration
- OpsGenie integration
- Five Signs to Recognize a Future Customer
- Gem version 0.11.13 released
- Custom notifications with Zapier
- Automated screenshots using Capybara and Selenium
- Padrino support
- Issue states, notification settings & interface updates
- Introducing the Intercom integration beta
- Handling VAT with Stripe: Follow up
- Introducing the JIRA beta
- Official Sinatra support
- Introducing the Zapier beta (No Official Support Since 2017)
- GitLab integration
2014 17
- Gem version 0.11
- AppSignal integrates with Pivotal Tracker, GitHub & Trello
- First steps towards a new front-end architecture
- Handling VAT with Stripe
- Post-Mortem: Why our gem disabled itself
- Gem version 0.10
- Consistent API
- Flowdock integration
- Gem version 0.9
- Our response to Heartbleed
- Stroopwafels as a Service
- Set notification settings per application
- Vastly improve performance for MongoDB, Mongoid and Sidekiq
- Refactoring design
- Error, performance and deploy notifications in Slack
- We now monitor your background jobs
- Realtime graphs from MongoDB with aggregations
2013 18
- AppSignal API
- Error request tagging
- AppSignal and Shelly Cloud partner up
- Improved graphs and snapshots
- Taming our MongoDB database size.
- AppSignal Sunday
- Poor man's usability testing
- Developers and designers: an arranged marriage.
- Gem version 0.6
- A quick post about reducing MongoDB queries
- User test
- Designing AppSignal
- Opening up shop
- 401: Unauthorized
- Filtering sensitive data from params
- Better graphs, event tree & new hosts section
- jQuery toggle() is slow, JavaScript to the rescue
- Welcome to AppSignal!