Skip to content

Commit b84b12d

Browse files
committed
Refine site copy, terms, and asset metadata
Update site-wide titles and meta descriptions to emphasize public domain / open-source framing; adjust OpenGraph and Twitter tags accordingly. Add an "Open Source" link to the footer and set page-specific title/description on the home page. Revise Terms: note API distribution, link to the GitHub repo, add new Eligibility and Privacy sections (collection, non‑collection, cookies), add a Changes section, and update the "Last updated" date. Improve specimen asset page metadata by including scientific name in titles/OG, rewording meta descriptions, add uploaded date to the metadata block, change "Attribution" label to "Credit", and tweak spacing.
1 parent f8acead commit b84b12d

File tree

4 files changed

+86
-15
lines changed

4 files changed

+86
-15
lines changed

app/views/layouts/application.html.erb

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<!DOCTYPE html>
22
<html>
33
<head>
4-
<title><%= content_for(:title) || "Specimen Gallery – Free CC0 Specimen Cutouts (PNG, Transparent Background)" %></title>
4+
<title><%= content_for(:title) || "Specimen Gallery – Public Domain Natural Specimen Cutouts" %></title>
55
<meta name="viewport" content="width=device-width,initial-scale=1">
6-
<meta name="description" content="<%= content_for(:meta_description) || "Free, high-quality transparent-background specimen cutouts (PNG). CC0 public domainuse for illustration, research, education, and design. Open-source and community-built." %>">
6+
<meta name="description" content="<%= content_for(:meta_description) || "An open-source, public domain gallery of natural specimen cutoutsfree to use, contribute, and build on." %>">
77
<meta name="apple-mobile-web-app-capable" content="yes">
88
<meta name="application-name" content="Specimen Gallery">
99
<meta name="mobile-web-app-capable" content="yes">
@@ -18,17 +18,17 @@
1818
<%# OpenGraph tags %>
1919
<meta property="og:site_name" content="Specimen Gallery">
2020
<meta property="og:type" content="<%= content_for(:og_type) || "website" %>">
21-
<meta property="og:title" content="<%= content_for(:og_title) || content_for(:title) || "Specimen Gallery – Free CC0 Specimen Cutouts" %>">
22-
<meta property="og:description" content="<%= content_for(:og_description) || content_for(:meta_description) || "Free, high-quality transparent-background specimen cutouts (PNG). CC0 public domainopen-source and community-built." %>">
21+
<meta property="og:title" content="<%= content_for(:og_title) || content_for(:title) || "Specimen Gallery – Public Domain Natural Specimen Cutouts" %>">
22+
<meta property="og:description" content="<%= content_for(:og_description) || content_for(:meta_description) || "An open-source, public domain gallery of natural specimen cutoutsfree to use, contribute, and build on." %>">
2323
<meta property="og:url" content="<%= content_for(:canonical_url) || request.original_url %>">
2424
<% if content_for?(:og_image) %>
2525
<meta property="og:image" content="<%= content_for(:og_image) %>">
2626
<% end %>
2727

2828
<%# Twitter Card %>
2929
<meta name="twitter:card" content="<%= content_for?(:og_image) ? "summary_large_image" : "summary" %>">
30-
<meta name="twitter:title" content="<%= content_for(:og_title) || content_for(:title) || "Specimen Gallery – Free CC0 Specimen Cutouts" %>">
31-
<meta name="twitter:description" content="<%= content_for(:og_description) || content_for(:meta_description) || "Free, high-quality transparent-background specimen cutouts (PNG). CC0 public domain." %>">
30+
<meta name="twitter:title" content="<%= content_for(:og_title) || content_for(:title) || "Specimen Gallery – Public Domain Natural Specimen Cutouts" %>">
31+
<meta name="twitter:description" content="<%= content_for(:og_description) || content_for(:meta_description) || "An open-source, public domain gallery of natural specimen cutouts — free to use, contribute, and build on." %>">
3232
<% if content_for?(:og_image) %>
3333
<meta name="twitter:image" content="<%= content_for(:og_image) %>">
3434
<% end %>
@@ -129,6 +129,8 @@
129129
<%= link_to "Upload Guide", upload_guide_path, class: "hover:text-stone-700 dark:hover:text-stone-200 transition-colors" %>
130130
<span class="text-stone-300 dark:text-stone-600">·</span>
131131
<%= link_to "Terms", terms_path, class: "hover:text-stone-700 dark:hover:text-stone-200 transition-colors" %>
132+
<span class="text-stone-300 dark:text-stone-600">·</span>
133+
<%= link_to "https://github.com/chispainnov/specimen-gallery", target: "_blank", rel: "noopener", class: "hover:text-stone-700 dark:hover:text-stone-200 transition-colors" do %>Open Source<% end %>
132134
</div>
133135
</div>
134136
</footer>

app/views/pages/home.html.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
<% content_for(:title) { "Specimen Gallery – Free CC0 Specimen Cutouts" } %>
2+
<% content_for(:meta_description) { "Browse and contribute public domain natural specimen cutouts with transparent backgrounds for research, illustration, and reference." } %>
3+
14
<div class="w-full">
25
<!-- Hero Section -->
36
<div class="text-center pt-4 md:pt-0 mb-12">

app/views/pages/terms.html.erb

Lines changed: 65 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
</li>
1919
<li class="flex gap-2">
2020
<span class="text-stone-400 dark:text-stone-500"></span>
21-
<span>We may store, display, and distribute your submissions as part of the gallery.</span>
21+
<span>We may store, display, and distribute your submissions as part of the gallery and via our API.</span>
2222
</li>
2323
</ul>
2424
</section>
@@ -83,7 +83,7 @@
8383
</li>
8484
<li class="flex gap-2">
8585
<span class="text-stone-400 dark:text-stone-500"></span>
86-
<span>The software, site structure, and original platform code are intended to be open source and licensed under the MIT License unless otherwise stated.</span>
86+
<span>The software is open source under the MIT License. <a href="https://github.com/chispainnov/specimen-gallery" target="_blank" rel="noopener" class="text-amber-600 dark:text-amber-500 hover:underline">View the code on GitHub</a>.</span>
8787
</li>
8888
<li class="flex gap-2">
8989
<span class="text-stone-400 dark:text-stone-500"></span>
@@ -96,9 +96,71 @@
9696
</ul>
9797
</section>
9898

99+
<section class="mb-8">
100+
<h2 class="font-serif text-xl text-stone-800 dark:text-stone-200 mb-3">8. Eligibility</h2>
101+
<p class="text-stone-600 dark:text-stone-300">
102+
You must be at least 13 years old to use Specimen Gallery. By using this site, you confirm you meet this requirement.
103+
</p>
104+
</section>
105+
106+
<section class="mb-8">
107+
<h2 class="font-serif text-xl text-stone-800 dark:text-stone-200 mb-3">9. Privacy</h2>
108+
<p class="text-stone-600 dark:text-stone-300 mb-3 font-medium">What we collect:</p>
109+
<ul class="space-y-2 text-stone-600 dark:text-stone-300 mb-4">
110+
<li class="flex gap-2">
111+
<span class="text-stone-400 dark:text-stone-500"></span>
112+
<span>Images you upload</span>
113+
</li>
114+
<li class="flex gap-2">
115+
<span class="text-stone-400 dark:text-stone-500"></span>
116+
<span>Optional attribution name you provide</span>
117+
</li>
118+
<li class="flex gap-2">
119+
<span class="text-stone-400 dark:text-stone-500"></span>
120+
<span>Basic site analytics (pages visited, referrer)</span>
121+
</li>
122+
<li class="flex gap-2">
123+
<span class="text-stone-400 dark:text-stone-500"></span>
124+
<span>IP addresses in server logs (automatically deleted after 30 days)</span>
125+
</li>
126+
</ul>
127+
128+
<p class="text-stone-600 dark:text-stone-300 mb-3 font-medium">What we DON'T do:</p>
129+
<ul class="space-y-2 text-stone-600 dark:text-stone-300 mb-4">
130+
<li class="flex gap-2">
131+
<span class="text-stone-400 dark:text-stone-500"></span>
132+
<span>Sell your data</span>
133+
</li>
134+
<li class="flex gap-2">
135+
<span class="text-stone-400 dark:text-stone-500"></span>
136+
<span>Track you across other sites</span>
137+
</li>
138+
<li class="flex gap-2">
139+
<span class="text-stone-400 dark:text-stone-500"></span>
140+
<span>Require accounts or emails to browse</span>
141+
</li>
142+
</ul>
143+
144+
<p class="text-stone-600 dark:text-stone-300 mb-3 font-medium">Cookies:</p>
145+
<p class="text-stone-600 dark:text-stone-300 mb-4">
146+
We use minimal cookies for site functionality. No advertising cookies.
147+
</p>
148+
149+
<p class="text-stone-600 dark:text-stone-300">
150+
Questions? <a href="mailto:specimengallery.helpdesk@gmail.com" class="text-amber-600 dark:text-amber-500 hover:underline">specimengallery.helpdesk@gmail.com</a>
151+
</p>
152+
</section>
153+
154+
<section class="mb-8">
155+
<h2 class="font-serif text-xl text-stone-800 dark:text-stone-200 mb-3">10. Changes to these terms</h2>
156+
<p class="text-stone-600 dark:text-stone-300">
157+
We may update these terms occasionally. Continued use of the site means you accept any changes.
158+
</p>
159+
</section>
160+
99161
<div class="pt-6 border-t border-stone-200 dark:border-stone-700">
100162
<p class="text-sm text-stone-500 dark:text-stone-400">
101-
Last updated: January 2026
163+
Last updated: February 2026
102164
</p>
103165
</div>
104166
</div>

app/views/specimen_assets/show.html.erb

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
<% content_for(:title) { "#{@specimen_asset.display_name} — Specimen Gallery" } %>
2-
<% content_for(:meta_description) { "Free CC0 transparent-background cutout of #{@specimen_asset.display_name}. Download high-quality PNG for illustration, research, and design." } %>
3-
<% content_for(:og_title) { "#{@specimen_asset.display_name} — Free CC0 Specimen Cutout" } %>
4-
<% content_for(:og_description) { "Download a free transparent-background PNG of #{@specimen_asset.display_name}. CC0 public domain — no attribution required." } %>
1+
<% scientific = @specimen_asset.taxon.scientific_name %>
2+
<% display = @specimen_asset.display_name %>
3+
<% full_name = scientific.present? && scientific != display ? "#{display} (#{scientific})" : display %>
4+
<% content_for(:title) { "#{full_name} – CC0 Transparent PNG | Specimen Gallery" } %>
5+
<% content_for(:meta_description) { "Free CC0 transparent background cutout of #{display}. Public domain specimen image for research, visualization, and illustration." } %>
6+
<% content_for(:og_title) { "#{full_name} – CC0 Transparent PNG" } %>
7+
<% content_for(:og_description) { "Free CC0 transparent background cutout of #{display}. Public domain specimen image for research, visualization, and illustration." } %>
58
<% if @specimen_asset.image.attached? %>
69
<% content_for(:og_image) { url_for(@specimen_asset.image) } %>
710
<% end %>
@@ -98,11 +101,12 @@
98101
</div>
99102

100103
<!-- Metadata -->
101-
<div class="text-sm text-stone-500 dark:text-stone-400 space-y-1">
104+
<div class="text-sm text-stone-500 dark:text-stone-400 space-y-1.5">
105+
<p>Uploaded: <%= @specimen_asset.created_at.strftime("%b %-d, %Y") %></p>
102106
<p>License: <%= @specimen_asset.license == "CC0" ? "CC0 (Public Domain)" : "CC-BY" %></p>
103107
<% if @specimen_asset.license == "CC_BY" && @specimen_asset.attribution_name.present? %>
104108
<p>
105-
Attribution:
109+
Credit:
106110
<% if @specimen_asset.attribution_url.present? %>
107111
<%= link_to @specimen_asset.attribution_name, @specimen_asset.attribution_url,
108112
target: "_blank", rel: "noopener",

0 commit comments

Comments
 (0)