diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
index 25475738c..648dbce15 100644
--- a/docs/CHANGELOG.md
+++ b/docs/CHANGELOG.md
@@ -10,6 +10,10 @@ nav_order: 5
## main
+* Remove JS and CSS docs as they proved difficult to maintain.*
+
+ *Joel Hawksley*
+
* Do not prefix release tags with `v`, per recommendation from @bkuhlmann.
*Joel Hawksley*
diff --git a/docs/guide/javascript_and_css.md b/docs/guide/javascript_and_css.md
deleted file mode 100644
index 9ccb39a7d..000000000
--- a/docs/guide/javascript_and_css.md
+++ /dev/null
@@ -1,168 +0,0 @@
----
-layout: default
-title: JavaScript and CSS
-parent: How-to guide
----
-
-# JavaScript and CSS
-
-While ViewComponent doesn't provide any built-in tooling to do so, it’s possible to include JavaScript and CSS alongside components.
-
-To use the Webpacker gem to compile assets located in `app/components`:
-
-1. In `config/webpacker.yml`, add `"app/components"` to the `additional_paths` array (for example `additional_paths: ["app/components"]`).
-2. In the Webpack entry file (often `app/javascript/packs/application.js`), add an import statement to a helper file, and in the helper file, import the components' JavaScript:
-
-```js
-import "../components"
-```
-
-Then, in `app/javascript/components.js`, add:
-
-```js
-function importAll(r) {
- r.keys().forEach(r)
-}
-
-importAll(require.context("../components", true, /[_\/]component\.js$/))
-```
-
-Any file with the `_component.js` suffix (such as `app/components/widget_component.js`) will be compiled into the Webpack bundle. If that file itself imports another file, for example `app/components/widget_component.css`, it will also be compiled and bundled into Webpack's output stylesheet if Webpack is being used for styles.
-
-## Encapsulating assets
-
-Ideally, JavaScript and CSS should be scoped to the associated component.
-
-One approach is to use Web Components which contain all JavaScript functionality, internal markup, and styles within the shadow root of the Web Component.
-
-For example:
-
-```ruby
-# app/components/comment_component.rb
-class CommentComponent < ViewComponent::Base
- def initialize(comment:)
- @comment = comment
- end
-
- def commenter
- @comment.user
- end
-
- def commenter_name
- commenter.name
- end
-
- def avatar
- commenter.avatar_image_url
- end
-
- def formatted_body
- simple_format(@comment.body)
- end
-
- private
-
- attr_reader :comment
-end
-```
-
-```erb
-<%# app/components/comment_component.html.erb %>
-