diff --git a/app/components/form_link_component.html.erb b/app/components/form_link_component.html.erb
deleted file mode 100644
index 7b8e0599fe3..00000000000
--- a/app/components/form_link_component.html.erb
+++ /dev/null
@@ -1,4 +0,0 @@
-
- <%= link_to(href, **tag_options) { content } %>
- <%= form_tag(href, method:, class: 'display-none') {} %>
-
diff --git a/app/components/form_link_component.rb b/app/components/form_link_component.rb
deleted file mode 100644
index 66ca673f3fe..00000000000
--- a/app/components/form_link_component.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-class FormLinkComponent < BaseComponent
- attr_reader :href, :method, :tag_options
-
- def initialize(href:, method:, **tag_options)
- @href = href
- @method = method
- @tag_options = tag_options
- end
-end
diff --git a/app/components/form_link_component.ts b/app/components/form_link_component.ts
deleted file mode 100644
index 5c47ccb4c63..00000000000
--- a/app/components/form_link_component.ts
+++ /dev/null
@@ -1 +0,0 @@
-import '@18f/identity-form-link/form-link-element';
diff --git a/app/javascript/packages/form-link/README.md b/app/javascript/packages/form-link/README.md
deleted file mode 100644
index 9bd81495941..00000000000
--- a/app/javascript/packages/form-link/README.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# `@18f/identity-form-link`
-
-Custom element for links which submit as a form, supporting non-GET navigation.
-
-## Usage
-
-### Custom Element
-
-Importing the element will register the `` custom element:
-
-```ts
-import '@18f/identity-form-link/form-link-element';
-```
-
-The custom element will implement the link submission behavior, but all markup must already exist.
-
-```html
-
- Submit
-
-
-```
diff --git a/app/javascript/packages/form-link/form-link-element.spec.ts b/app/javascript/packages/form-link/form-link-element.spec.ts
deleted file mode 100644
index d3b8bcbf350..00000000000
--- a/app/javascript/packages/form-link/form-link-element.spec.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import sinon from 'sinon';
-import { getByRole, fireEvent } from '@testing-library/dom';
-import './form-link-element';
-
-describe('FormLinkElement', () => {
- function createElement() {
- document.body.innerHTML = `
-
- Submit
-
-
- `;
-
- return document.body.querySelector('lg-form-link')!;
- }
-
- it('submits form on link click', () => {
- const element = createElement();
- const link = getByRole(element, 'link');
-
- const onSubmit = sinon.stub();
- element.form.submit = onSubmit;
- const didPreventDefault = !fireEvent.click(link);
-
- expect(onSubmit).to.have.been.called();
- expect(didPreventDefault).to.be.true();
- });
-});
diff --git a/app/javascript/packages/form-link/form-link-element.ts b/app/javascript/packages/form-link/form-link-element.ts
deleted file mode 100644
index 0e59ab55697..00000000000
--- a/app/javascript/packages/form-link/form-link-element.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-class FormLinkElement extends HTMLElement {
- connectedCallback() {
- this.link.addEventListener('click', this.submit);
- }
-
- get form(): HTMLFormElement {
- return this.querySelector('form')!;
- }
-
- get link(): HTMLAnchorElement {
- return this.querySelector('a')!;
- }
-
- submit = (event: MouseEvent) => {
- event.preventDefault();
- this.form.submit();
- };
-}
-
-declare global {
- interface HTMLElementTagNameMap {
- 'lg-form-link': FormLinkElement;
- }
-}
-
-if (!customElements.get('lg-form-link')) {
- customElements.define('lg-form-link', FormLinkElement);
-}
-
-export default FormLinkElement;
diff --git a/app/javascript/packages/form-link/package.json b/app/javascript/packages/form-link/package.json
deleted file mode 100644
index 4308b8a71d3..00000000000
--- a/app/javascript/packages/form-link/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "@18f/identity-form-link",
- "version": "1.0.0",
- "private": true
-}
diff --git a/spec/components/form_link_component_spec.rb b/spec/components/form_link_component_spec.rb
deleted file mode 100644
index 821fc024bf5..00000000000
--- a/spec/components/form_link_component_spec.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-require 'rails_helper'
-
-RSpec.describe FormLinkComponent, type: :component do
- let(:options) { { href: '/', method: :post } }
- let(:content) { 'Link' }
-
- subject(:rendered) do
- render_inline described_class.new(**options).with_content(content)
- end
-
- it 'renders custom element with link and form' do
- expect(rendered).to have_css('lg-form-link a[href="/"]', text: content)
- expect(rendered).to have_css('lg-form-link form.display-none[method="post"][action="/"]')
- end
-end