mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
feat(meta): add OpenGraph, JSON-LD, security headers for crawler identity
This commit is contained in:
+46
-2
@@ -6,10 +6,54 @@
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta name="description" content="serverless, adminless, decentralized imageboard" />
|
||||
<meta name="description" content="5chan is a free, open-source, decentralized imageboard built on the Bitsocial protocol. No servers, no admins — all content is shared peer-to-peer via IPFS." />
|
||||
<meta name="author" content="bitsocialhq" />
|
||||
<link rel="canonical" href="https://5chan.app/" />
|
||||
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
||||
<link rel="manifest" href="/manifest.json" />
|
||||
<title>5chan</title>
|
||||
|
||||
<!-- OpenGraph -->
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:site_name" content="5chan" />
|
||||
<meta property="og:title" content="5chan — Decentralized Imageboard" />
|
||||
<meta property="og:description" content="Free, open-source, serverless imageboard built on the Bitsocial protocol. No servers, no admins — peer-to-peer via IPFS." />
|
||||
<meta property="og:url" content="https://5chan.app/" />
|
||||
<meta property="og:image" content="https://5chan.app/manifest-icon-512x512.png" />
|
||||
|
||||
<!-- Twitter Card -->
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:title" content="5chan — Decentralized Imageboard" />
|
||||
<meta name="twitter:description" content="Free, open-source, serverless imageboard built on the Bitsocial protocol. Peer-to-peer via IPFS." />
|
||||
<meta name="twitter:image" content="https://5chan.app/manifest-icon-512x512.png" />
|
||||
|
||||
<!-- Structured Data -->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebApplication",
|
||||
"name": "5chan",
|
||||
"url": "https://5chan.app",
|
||||
"description": "Free, open-source, decentralized imageboard built on the Bitsocial protocol. No servers, no admins — all content is shared peer-to-peer via IPFS.",
|
||||
"applicationCategory": "SocialNetworkingApplication",
|
||||
"operatingSystem": "Any",
|
||||
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" },
|
||||
"author": {
|
||||
"@type": "Organization",
|
||||
"name": "bitsocialhq",
|
||||
"url": "https://github.com/bitsocialhq"
|
||||
},
|
||||
"license": "https://www.gnu.org/licenses/old-licenses/gpl-2.0.html",
|
||||
"sourceOrganization": {
|
||||
"@type": "Organization",
|
||||
"name": "bitsocialhq",
|
||||
"url": "https://github.com/bitsocialhq"
|
||||
},
|
||||
"isAccessibleForFree": true,
|
||||
"codeRepository": "https://github.com/bitsocialhq/5chan"
|
||||
}
|
||||
</script>
|
||||
|
||||
<title>5chan — Decentralized Imageboard</title>
|
||||
<!-- React Grab: Hold ⌘C and click any element to provide visual context to AI coding agents (dev only) -->
|
||||
<script type="module">
|
||||
if (import.meta.env.DEV) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"short_name": "5chan",
|
||||
"name": "5chan",
|
||||
"name": "5chan — Decentralized Imageboard",
|
||||
"description": "Free, open-source, decentralized imageboard built on the Bitsocial protocol. No servers, no admins — peer-to-peer via IPFS.",
|
||||
"icons": [
|
||||
{
|
||||
"src": "manifest-icon-192x192.png",
|
||||
@@ -14,5 +15,6 @@
|
||||
}
|
||||
],
|
||||
"start_url": ".",
|
||||
"display": "standalone"
|
||||
"display": "standalone",
|
||||
"categories": ["social", "news"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# https://www.robotstxt.org/robotstxt.html
|
||||
User-agent: *
|
||||
Disallow:
|
||||
|
||||
# 5chan — open-source decentralized imageboard
|
||||
# Source: https://github.com/bitsocialhq/5chan
|
||||
|
||||
+12
@@ -2,6 +2,18 @@
|
||||
"rewrites": [
|
||||
{ "source": "/(.*)", "destination": "/index.html" }
|
||||
],
|
||||
"headers": [
|
||||
{
|
||||
"source": "/(.*)",
|
||||
"headers": [
|
||||
{ "key": "X-Content-Type-Options", "value": "nosniff" },
|
||||
{ "key": "X-Frame-Options", "value": "DENY" },
|
||||
{ "key": "Referrer-Policy", "value": "no-referrer" },
|
||||
{ "key": "Permissions-Policy", "value": "camera=(), microphone=(), geolocation=()" },
|
||||
{ "key": "X-DNS-Prefetch-Control", "value": "off" }
|
||||
]
|
||||
}
|
||||
],
|
||||
"installCommand": "HUSKY=0 YARN_CACHE_FOLDER=/tmp/yarn-cache yarn install --frozen-lockfile --network-timeout 600000 --network-concurrency 1 --child-concurrency 1",
|
||||
"buildCommand": "yarn build",
|
||||
"outputDirectory": "build",
|
||||
|
||||
Reference in New Issue
Block a user