diff --git a/conservancy/usethesource/admin.py b/conservancy/usethesource/admin.py
index 8d131dc1..6a886813 100644
--- a/conservancy/usethesource/admin.py
+++ b/conservancy/usethesource/admin.py
@@ -22,6 +22,7 @@ class CandidateAdmin(admin.ModelAdmin):
         'release_date',
         'source_url',
         'binary_url',
+        'show_download_disclaimer',
         'description',
     ]
     inlines = [CommentInline]
diff --git a/conservancy/usethesource/migrations/0007_candidate_show_download_disclaimer.py b/conservancy/usethesource/migrations/0007_candidate_show_download_disclaimer.py
new file mode 100644
index 00000000..cb15982d
--- /dev/null
+++ b/conservancy/usethesource/migrations/0007_candidate_show_download_disclaimer.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2.19 on 2024-03-15 03:25
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('usethesource', '0006_alter_comment_time'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='candidate',
+            name='show_download_disclaimer',
+            field=models.BooleanField(default=True),
+        ),
+    ]
diff --git a/conservancy/usethesource/models.py b/conservancy/usethesource/models.py
index 2edb1206..8de4e74a 100644
--- a/conservancy/usethesource/models.py
+++ b/conservancy/usethesource/models.py
@@ -22,6 +22,7 @@ class Candidate(models.Model):
     description = models.TextField(blank=True)
     source_url = models.URLField()
     binary_url = models.URLField(blank=True)
+    show_download_disclaimer = models.BooleanField(default=True)
     ordering = models.SmallIntegerField(default=0)
     email_message_id = models.CharField(max_length=255, default=gen_message_id)
 
diff --git a/conservancy/usethesource/templates/usethesource/candidate.html b/conservancy/usethesource/templates/usethesource/candidate.html
index d38444bc..b31a11f2 100644
--- a/conservancy/usethesource/templates/usethesource/candidate.html
+++ b/conservancy/usethesource/templates/usethesource/candidate.html
@@ -23,8 +23,19 @@
         <p><strong>Released</strong>: {{ candidate.release_date }}</p>
       </div>
       <div class="mt2">
-        <div><a href="{% url 'usethesource:download' slug=candidate.slug download_type='source' %}" class="white bg-green db pv2 ph3 mb2">Download source</a></div>
-        <div><a href="{% url 'usethesource:download' slug=candidate.slug download_type='binary' %}" class="white bg-green db pv2 ph3">Download image</a></div>
+        {% if candidate.show_download_disclaimer %}
+          <div><a href="{% url 'usethesource:download' slug=candidate.slug download_type='source' %}" class="white bg-green db pv2 ph3 mb2">Download source</a></div>
+          <div><a href="{% url 'usethesource:download' slug=candidate.slug download_type='binary' %}" class="white bg-green db pv2 ph3">Download image</a></div>
+        {% else %}
+          <form method="post" action="{% url 'usethesource:download' slug=candidate.slug download_type='source' %}">
+            {% csrf_token %}
+            <button type="submit" class="white b bg-green db w-100 pv2 ph3 bn mb2">Download source</button>
+          </form>
+          <form method="post" action="{% url 'usethesource:download' slug=candidate.slug download_type='binary' %}">
+            {% csrf_token %}
+            <button type="submit" class="white b bg-green db w-100 pv2 ph3 bn mb2">Download image</button>
+          </form>
+        {% endif %}
       </div>
     </div>
 
diff --git a/conservancy/usethesource/views.py b/conservancy/usethesource/views.py
index 6b3c10d6..4b7a6be9 100644
--- a/conservancy/usethesource/views.py
+++ b/conservancy/usethesource/views.py
@@ -22,7 +22,7 @@ def download_page(request, slug, download_type):
     if request.method == 'POST':
         form = DownloadForm(request.POST)
         url = candidate.source_url if download_type == 'source' else candidate.binary_url
-        if form.is_valid():
+        if not candidate.show_download_disclaimer or form.is_valid():
             return redirect(url)
     return render(
         request,