Skip to content
This repository was archived by the owner on Sep 28, 2026. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions public/agents.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Seven specialists, one human signature. Each does a single job on your actual pages and numbers; nothing reaches you until a person has read and signed it.">
<title>TinyStudio — The Desk</title>
<link rel="canonical" href="https://tinystudio.io/agents.html">
<link rel="canonical" href="https://tinystudio.io/agents">
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<meta property="og:title" content="TinyStudio — The Desk">
<meta property="og:description" content="Seven specialists, one human signature. Each does a single job on your actual pages and numbers; nothing reaches you until a person has read and signed it.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://tinystudio.io/agents.html">
<meta property="og:url" content="https://tinystudio.io/agents">
<meta property="og:image" content="https://tinystudio.io/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
Expand Down Expand Up @@ -41,8 +41,8 @@
},
{
"@type": "WebPage",
"@id": "https://tinystudio.io/agents.html#webpage",
"url": "https://tinystudio.io/agents.html",
"@id": "https://tinystudio.io/agents#webpage",
"url": "https://tinystudio.io/agents",
"name": "TinyStudio — The Desk",
"description": "Seven specialists, one human signature. Each does a single job on your actual pages and numbers; nothing reaches you until a person has read and signed it.",
"inLanguage": "en",
Expand Down
8 changes: 4 additions & 4 deletions public/pricing.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="One price, plainly stated: the appraisal is free, the desk is $2,500 a month on a three-month minimum, and the delivery guarantee is written out in full.">
<title>Pricing &amp; terms — The Tiny Studio</title>
<link rel="canonical" href="https://tinystudio.io/pricing.html">
<link rel="canonical" href="https://tinystudio.io/pricing">
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<meta property="og:title" content="TinyStudio — Pricing &amp; terms">
<meta property="og:description" content="One price, plainly stated: the appraisal is free, the desk is $2,500 a month on a three-month minimum, and the delivery guarantee is written out in full.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://tinystudio.io/pricing.html">
<meta property="og:url" content="https://tinystudio.io/pricing">
<meta property="og:image" content="https://tinystudio.io/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
Expand Down Expand Up @@ -41,8 +41,8 @@
},
{
"@type": "WebPage",
"@id": "https://tinystudio.io/pricing.html#webpage",
"url": "https://tinystudio.io/pricing.html",
"@id": "https://tinystudio.io/pricing#webpage",
"url": "https://tinystudio.io/pricing",
"name": "TinyStudio — Pricing & terms",
"description": "One price, plainly stated: the appraisal is free, the desk is $2,500 a month on a three-month minimum, and the delivery guarantee is written out in full.",
"inLanguage": "en",
Expand Down
8 changes: 4 additions & 4 deletions public/specimen.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="The appraisal, with the client's name removed: a real audit of a clinic homepage, four findings with evidence and fixes, read and signed by Nish.">
<title>TinyStudio — The Website Appraisal — specimen</title>
<link rel="canonical" href="https://tinystudio.io/specimen.html">
<link rel="canonical" href="https://tinystudio.io/specimen">
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<meta property="og:title" content="TinyStudio — The Website Appraisal, specimen">
<meta property="og:description" content="The appraisal, with the client's name removed: a real audit of a clinic homepage, four findings with evidence and fixes, read and signed by Nish.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://tinystudio.io/specimen.html">
<meta property="og:url" content="https://tinystudio.io/specimen">
<meta property="og:image" content="https://tinystudio.io/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
Expand Down Expand Up @@ -41,8 +41,8 @@
},
{
"@type": "WebPage",
"@id": "https://tinystudio.io/specimen.html#webpage",
"url": "https://tinystudio.io/specimen.html",
"@id": "https://tinystudio.io/specimen#webpage",
"url": "https://tinystudio.io/specimen",
"name": "TinyStudio — The Website Appraisal, specimen",
"description": "The appraisal, with the client's name removed: a real audit of a clinic homepage, four findings with evidence and fixes, read and signed by Nish.",
"inLanguage": "en",
Expand Down
23 changes: 11 additions & 12 deletions scripts/check-site.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -1235,9 +1235,9 @@ if (!worker.includes('"/apple-touch-icon.png"')) {
const socialSharePages = [
["homepage", siteHome, "https://tinystudio.io/"],
["audit page", siteAudit, "https://tinystudio.io/audit"],
["desk page", read("public/agents.html"), "https://tinystudio.io/agents.html"],
["pricing page", read("public/pricing.html"), "https://tinystudio.io/pricing.html"],
["specimen page", read("public/specimen.html"), "https://tinystudio.io/specimen.html"]
["desk page", read("public/agents.html"), "https://tinystudio.io/agents"],
["pricing page", read("public/pricing.html"), "https://tinystudio.io/pricing"],
["specimen page", read("public/specimen.html"), "https://tinystudio.io/specimen"]
];
const SOCIAL_IMAGE_URL = "https://tinystudio.io/og-image.png";

Expand Down Expand Up @@ -1309,9 +1309,9 @@ for (const [pageName, pageHtml, pageUrl] of socialSharePages) {
const structuredDataPages = [
["homepage", siteHome, "https://tinystudio.io/"],
["audit page", siteAudit, "https://tinystudio.io/audit"],
["desk page", read("public/agents.html"), "https://tinystudio.io/agents.html"],
["pricing page", read("public/pricing.html"), "https://tinystudio.io/pricing.html"],
["specimen page", read("public/specimen.html"), "https://tinystudio.io/specimen.html"]
["desk page", read("public/agents.html"), "https://tinystudio.io/agents"],
["pricing page", read("public/pricing.html"), "https://tinystudio.io/pricing"],
["specimen page", read("public/specimen.html"), "https://tinystudio.io/specimen"]
];

const ORGANIZATION_ID = "https://tinystudio.io/#organization";
Expand Down Expand Up @@ -1501,15 +1501,14 @@ for (const [pageName, pageHtml] of internalLinkPages) {
// link sits inside the head and points at the absolute https://tinystudio.io
// address of the page. The deployed worker 307-redirects every .html form to
// its clean extensionless twin, so a canonical must name the address that
// serves 200, never the redirecting form: the audit page's canonical is the
// clean /audit, while the remaining pages keep their .html form here until
// they are migrated the same way.
// serves 200, never the redirecting form: every page's canonical is the clean
// extensionless URL (home stays "/").
const canonicalPages = [
["homepage", siteHome, "https://tinystudio.io/"],
["audit page", siteAudit, "https://tinystudio.io/audit"],
["desk page", read("public/agents.html"), "https://tinystudio.io/agents.html"],
["pricing page", read("public/pricing.html"), "https://tinystudio.io/pricing.html"],
["specimen page", read("public/specimen.html"), "https://tinystudio.io/specimen.html"]
["desk page", read("public/agents.html"), "https://tinystudio.io/agents"],
["pricing page", read("public/pricing.html"), "https://tinystudio.io/pricing"],
["specimen page", read("public/specimen.html"), "https://tinystudio.io/specimen"]
];

const canonicalLinkPattern = /<link\b[^>]*\brel\s*=\s*["']canonical["'][^>]*>/gi;
Expand Down
Loading