---
title: "The Boundary ActiveAdmin Forces: HTML Admin vs API Controllers"
description: "ActiveAdmin needs a full Rails web boundary, while API-only endpoints need a lean controller. Compare the two paths to see where sessions, assets, and browser protections belong."
---

# The Boundary ActiveAdmin Forces: HTML Admin vs API Controllers

**Type:** [Comparison](https://yomu.fyi/visual-explainers/category/comparison.md)

![Two-column comparison of a full Rails controller for ActiveAdmin and an API-only controller, showing browser requirements on the left and lean API behavior on the right.](https://yomufyi.s3.us-east-1.amazonaws.com/visual-explainers/6e2354ee-ebe6-4333-a5ce-c312ad54eec8/image-3df38457-7fd9-465a-b4db-07663352cbd1.webp)

> ActiveAdmin needs a full Rails web boundary, while API-only endpoints need a lean controller. Compare the two paths to see where sessions, assets, and browser protections belong.

## Explanation

ActiveAdmin provides CMS capabilities inside a Rails application, but it needs HTML views, cookies, flash messages, sessions, middleware, and assets that API-only mode omits. The practical split is a full ActionController::Base path for the admin surface and a separate ApiController that retains ActionController::API. This comparison helps engineers keep browser concerns explicit without weakening API endpoints.

**Tags:** [ActiveAdmin](https://yomu.fyi/topic/activeadmin.md), [API](https://yomu.fyi/topic/api.md), [Architecture](https://yomu.fyi/topic/architecture.md), [JavaScript](https://yomu.fyi/topic/javascript.md), [Ruby on Rails](https://yomu.fyi/topic/ruby-on-rails.md)

## Related reading

### [\[Webinar\] Elevating customer engagement with WhatsApp](https://yomu.fyi/post/webinar-elevating-customer-engagement-with-whatsapp.md)
- Company: [Twilio](https://yomu.fyi/company/twilio.md)
- Author: Twilio
- Published: Sep 11, 2026
- Type: Announcement

The webinar examines how businesses can use WhatsApp for secure account verification, one-time passcodes, operational alerts, and customer conversations. It presents notification overload, third-party portals, single-use apps, and unbranded sender numbers as reasons critical messages may be ignored, affecting deliveries and transactions. Speakers from Twilio, WhatsApp, and Orbio AI describe a verified, two-way model built around WhatsApp Utility messaging, interactive buttons, logic flows, end-to-end encryption, and visual drag-and-drop automation. Orbio AI's examples include screening candidates, scheduling interviews, reminders, onboarding, and engagement conversations for enterprise clients while the webinar claims improved deliverability, faster user action, reduced manual work, protection against SMS toll fraud, and scalable deployment. It also positions app-based delivery over WiFi and cellular networks as a more reliable alternative.


### [Building resilient real-time streaming workers with Amazon DynamoDB leases](https://yomu.fyi/post/building-resilient-real-time-streaming-workers-with-amazon-dynamodb-le.md)
- Company: [AWS](https://yomu.fyi/company/aws.md)
- Author: Siddhesh Tiwari
- Published: Sep 10, 2026
- Type: Tutorial

Managing hundreds of persistent outbound WebSocket connections requires explicit ownership because a failed worker can drop connections and stop data flow until they are reassigned. The described fleet-management pattern uses Amazon DynamoDB leases, conditional writes, and a global secondary index to ensure one worker owns each connection, renew ownership with heartbeats, and find expired leases for reconciliation. Amazon ECS on AWS Fargate workers poll Amazon SQS for notifications, maintain the WebSockets, and release or transfer ownership during graceful shutdown, failures, and scaling. The design also records desired state, the upstream URL, and the last processed sequence number in the lease item, while clock synchronization supports its time-based expiry. The post identifies heartbeat writes as the dominant DynamoDB cost and recommends provisioned capacity with Auto Scaling for sustained high connection counts, while noting that longer intervals reduce cost but extend failover.


### [Three principles for building a vector platform at Thumbtack](https://yomu.fyi/post/three-principles-for-building-a-vector-platform-at-thumbtack.md)
- Company: [Thumbtack](https://yomu.fyi/company/thumbtack.md)
- Author: John Zhu
- Published: Sep 10, 2026
- Type: Explainer

Thumbtack describes a vector platform that lets ML engineers stand up production vector search without separately negotiating database access, building ETL, or writing a query service. The design uses an existing Aurora Postgres cluster with pgvector, while Airflow jobs generate embeddings into BigQuery and managed reverse-ETL syncs them into vector tables; a query API validates inputs and returns ranked results. Three principles guide the layers: reuse trusted infrastructure, treat embeddings as ordinary data flowing through established pipelines, and lower adoption costs for subsequent teams. Production examples include semantic customer-support escalation using cosine similarity and an internal knowledge assistant combining vector retrieval, often with keyword search, before a language model responds; planned directions include self-serve provisioning, vector-backed feature retrieval, and framework-neutral agent memory.


### [Modern Web Stack: Rails 5 API, ActiveAdmin, and Create React App on Heroku](https://yomu.fyi/post/modern-web-stack-rails-5-api-activeadmin-and-create-react-app-on-herok.md)
- Company: [Heroku](https://yomu.fyi/company/heroku.md)
- Author: Charlie Gleason
- Published: May 16, 2018
- Type: Tutorial

Modern Rails applications can combine a Rails 5 API-only backend, ActiveAdmin for CMS capabilities, and a Create React App frontend in one Heroku-hosted project. The tutorial addresses the tension between Rails API mode, which omits views and middleware, and ActiveAdmin’s need to serve HTML and use cookies, flash, sessions, and assets. It restores those pieces by switching ApplicationController to ActionController::Base, adding forgery protection and middleware, reintroducing sprockets, and defining a separate ApiController that retains ActionController::API. The frontend uses Create React App, API proxying during development, React Router for client-side routes, and a build process that serves the compiled app from Rails on Heroku, including a React 404 for unmatched paths. A smoothie-recipes example demonstrates the resulting setup.
