diff --git a/app/javascript/packs/internal.js b/app/javascript/packs/admin.js
similarity index 71%
rename from app/javascript/packs/internal.js
rename to app/javascript/packs/admin.js
index 7e0d05b09..89d6583f8 100644
--- a/app/javascript/packs/internal.js
+++ b/app/javascript/packs/admin.js
@@ -1,6 +1,9 @@
import { Application } from 'stimulus';
import { definitionsFromContext } from 'stimulus/webpack-helpers';
+// This loads all the Stimulus controllers at the same time for the admin
+// section of the application.
+
const application = Application.start();
const context = require.context('admin/controllers', true, /.js$/);
application.load(definitionsFromContext(context));
diff --git a/app/views/layouts/admin.html.erb b/app/views/layouts/admin.html.erb
index d2547f161..31bc6c5f4 100644
--- a/app/views/layouts/admin.html.erb
+++ b/app/views/layouts/admin.html.erb
@@ -12,7 +12,7 @@
<%= controller_name.titleize %>
- <%= javascript_packs_with_chunks_tag "internal", defer: true %>
+ <%= javascript_packs_with_chunks_tag "admin", defer: true %>
diff --git a/docs/admin/admin-user-interface.md b/docs/admin/admin-user-interface.md
index 0fc8afcf8..c4b11adab 100644
--- a/docs/admin/admin-user-interface.md
+++ b/docs/admin/admin-user-interface.md
@@ -33,8 +33,10 @@ Stimulus is a modest frontend framework; its primary purpose is manipulating
HTML. It does not provide templating features.
In the Forem application, [Webpacker](/frontend/webpacker/) is used to load
-Stimulus controllers. Ideally, controllers serve as an abstraction for shared
-functionality between views.
+Stimulus controllers via the `app/javascript/packs/admin.js`
+[pack file](https://github.com/rails/webpacker/blob/master/docs/folder-structure.md#packs-aka-webpack-entries).
+Ideally, controllers serve as an abstraction for shared functionality between
+views.
New controllers can be added in `/app/javascript/admin/controllers`. Unit tests
should exist for each controller in the adjacent