restructuring for better SEO

This commit is contained in:
2025-09-28 17:58:24 +01:00
parent b9ddb56bbe
commit ea4aa1d34b
7 changed files with 316 additions and 22 deletions

View File

@@ -38,7 +38,7 @@ async function createOptimizedBuild() {
'public/about.html'
],
css: [
'public/css/pico.jade.css'
'public/css/pico.jade.css',
// 'public/css/pico.colors.min.css'
],
safelist: {

View File

@@ -57,6 +57,11 @@ http {
# add_header Expires "0";
}
location ~* \.json$ {
expires 1d;
add_header Cache-Control "public, must-revalidate";
}
location /health {
access_log off;
return 200 'healthy\n';

View File

@@ -5,9 +5,44 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="light dark">
<!-- Primary SEO Meta Tags -->
<title>Keyboard Vagabond - Fediverse Community for Digital Nomads & Travelers</title>
<meta name="title" content="Keyboard Vagabond - Fediverse Community for Digital Nomads & Travelers">
<meta name="description" content="Join Keyboard Vagabond's fediverse community for digital nomads, remote workers, and travel enthusiasts. Access Mastodon, Piefed, Pixelfed, Bookwyrm, Write Freely, and more - all in one place.">
<meta name="keywords" content="fediverse, digital nomad, remote work, travel, mastodon, piefed, pixelfed, bookwyrm, write freely, social media alternative, keyboard vagabond">
<meta name="author" content="Keyboard Vagabond">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://www.keyboardvagabond.com/">
<link rel="sitemap" type="application/xml" title="Sitemap" href="/sitemap.xml">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://www.keyboardvagabond.com/">
<meta property="og:title" content="Keyboard Vagabond - Fediverse Community for Digital Nomads & Travelers">
<meta property="og:description" content="Join Keyboard Vagabond's fediverse community for digital nomads, remote workers, and travel enthusiasts. Access Mastodon, Piefed, Pixelfed, Bookwyrm, Write Freely, and more - all in one place.">
<meta property="og:image" content="https://picsur.keyboardvagabond.com/i/076a5b88-20d3-426e-ad7f-f24a68d3fa70.jpg?width=1200">
<meta property="og:site_name" content="Keyboard Vagabond">
<meta property="og:locale" content="en_US">
<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image">
<meta property="twitter:url" content="https://www.keyboardvagabond.com/">
<meta property="twitter:title" content="Keyboard Vagabond - Fediverse Community for Digital Nomads & Travelers">
<meta property="twitter:description" content="Join Keyboard Vagabond's fediverse community for digital nomads, remote workers, and travel enthusiasts. Access Mastodon, Piefed, Pixelfed, Bookwyrm, Write Freely, and more - all in one place.">
<meta property="twitter:image" content="https://picsur.keyboardvagabond.com/i/076a5b88-20d3-426e-ad7f-f24a68d3fa70.jpg?width=1200">
<!-- Additional SEO -->
<meta name="theme-color" content="#2d5a27">
<meta name="msapplication-TileColor" content="#2d5a27">
<meta name="application-name" content="Keyboard Vagabond">
<!-- Structured Data -->
<script type="application/ld+json" src="/structured-data.json"></script>
<link rel="stylesheet" href="css/pico.jade.min.css">
<link rel="stylesheet" href="site-styles/style.css">
<title>Keyboard Vagabond</title>
</head>
<body>
@@ -52,29 +87,58 @@
</nav>
</header>
<div class="banner-container">
<img src="https://picsur.keyboardvagabond.com/i/076a5b88-20d3-426e-ad7f-f24a68d3fa70.jpg?width=2048" alt="Scenic mountain road with snow-capped peaks" class="banner">
<h1 class="banner-title">Welcome to Keyboard Vagabond</h1>
<p class="banner-subtitle">A space in the fediverse for travelers, nomads, and vagabonds of all kinds</p>
</div>
<section class="banner-container" role="banner" aria-labelledby="main-heading">
<img src="https://picsur.keyboardvagabond.com/i/076a5b88-20d3-426e-ad7f-f24a68d3fa70.jpg?width=2048" alt="Scenic mountain road with snow-capped peaks representing the journey of digital nomads and travelers" class="banner">
<h1 id="main-heading" class="banner-title">Welcome to Keyboard Vagabond</h1>
<p class="banner-subtitle">A comprehensive fediverse community for digital nomads, remote workers, and travel enthusiasts</p>
</section>
<!-- Main content -->
<main class="container">
<section aria-labelledby="intro-heading">
<h2 id="intro-heading" class="sr-only">About Keyboard Vagabond</h2>
<p>We welcome you to this space to connect with others, share information, create memories, and help each other
to travel responsibly and considerately as we explore the world.</p>
<p>&lt;mascot here? :D &gt;
<strong>mascot intro and why it was chosen</strong>
</p>
<p><strong>Here, you are a member, not just a user</strong> - We want to create community in this space, being
respectful of each other as well as the places go and the people we see. This space is what we make of it.
respectful of each other as well as the places we go and the people we see. This space is what we make of it.
</p>
<h2>What you'll find here</h2>
<p>Keyboard Vagabond hosts the various fediverse alternatives to big tech and participates in the network.
Available to you is:</p>
</section>
<section aria-labelledby="services-heading">
<h2 id="services-heading">Our Fediverse Services</h2>
<p>Keyboard Vagabond hosts various fediverse alternatives to big tech and participates in the network.
Available to you are:</p>
<!-- Services Summary for SEO -->
<div class="services-summary" role="region" aria-label="Quick access to all services">
<h3>Quick Access to All Services</h3>
<div class="service-links">
<a href="https://mastodon.keyboardvagabond.com" target="_blank" class="service-link" aria-label="Mastodon - Social Media Alternative">
<strong>Mastodon</strong> - Social Media
</a>
<a href="https://piefed.keyboardvagabond.com" target="_blank" class="service-link" aria-label="Piefed - Community Forum">
<strong>Piefed</strong> - Community Forum
</a>
<a href="https://pixelfed.keyboardvagabond.com" target="_blank" class="service-link" aria-label="Pixelfed - Photo Sharing">
<strong>Pixelfed</strong> - Photo Sharing
</a>
<a href="https://bookwyrm.keyboardvagabond.com" target="_blank" class="service-link" aria-label="Bookwyrm - Book Reviews">
<strong>Bookwyrm</strong> - Book Reviews
</a>
<a href="https://blog.keyboardvagabond.com" target="_blank" class="service-link" aria-label="Write Freely - Blogging">
<strong>Write Freely</strong> - Blogging
</a>
<a href="https://picsur.keyboardvagabond.com" target="_blank" class="service-link" aria-label="Picsur - Image Hosting">
<strong>Picsur</strong> - Image Hosting
</a>
</div>
</div>
<h3>Detailed Service Information</h3>
<ul>
<li><strong><a href="https://piefed.keyboardvagabond.com">Piefed</a></strong> - Similar to and compatible
<li><strong><a href="https://piefed.keyboardvagabond.com">Piefed</a></strong> - An alternative to Reddit and similar to and compatible
with <a href="https://join-lemmy.org">Lemmy</a>, but with extra features for topics and communities.
Both are an alternative to Reddit. See more at <a href="https://join-lemmy.org">join-lemmy.org</a> and
See more at <a href="https://join-lemmy.org">join-lemmy.org</a> and
<a href="https://join.piefed.social/try/">join.piefed.social</a>.</li>
<li><strong><a href="https://pixelfed.keyboardvagabond.com">Pixelfed</a></strong> - Like old instagram, where you can share your photos, albums, and create stories. See more at <a
href="https://pixelfed.org/servers">pixelfed.org</a>.</li>
@@ -119,7 +183,7 @@
make a video on PeerTube (Youtube alternative) and discuss on Mastodon. Your Write Freely blog posts will,
if you enable it, be visible on Mastodon and people can follow your blog account.</p>
<p>Check out this amazing four minute video by <a href="https://news.elenarossini.com">Elena Rossini</a>. You can follow her
on Mastodon by searching @_elena@mastodon.social.</p>
on Mastodon by searching <a href="https://mastodon.social/@_elena@mastodon.social" target="_blank">@_elena@mastodon.social</a>.</p>
<div class="video-container">
<iframe title="Introducing the Fediverse: a New Era of Social Media"
src="https://videos.elenarossini.com/videos/embed/64VuNCccZNrP4u9MfgbhkN" frameborder="0" allowfullscreen=""
@@ -190,7 +254,22 @@
</main>
<!-- Footer -->
<footer></footer>
<footer class="container" role="contentinfo">
<hr>
<section aria-labelledby="footer-heading">
<h2 id="footer-heading" class="sr-only">Footer Information</h2>
<p><strong>Keyboard Vagabond</strong> - A fediverse community for digital nomads, remote workers, and travel enthusiasts.</p>
<span>Connect with us across the fediverse:</span><br/>
<ul>
<li><a href="https://mastodon.keyboardvagabond.com">Mastodon</a>&nbsp;- Social Media</li>
<li><a href="https://piefed.keyboardvagabond.com">Piefed</a>&nbsp;- Community Forum</li>
<li><a href="https://pixelfed.keyboardvagabond.com">Pixelfed</a>&nbsp;- Photo Sharing</li>
<li><a href="https://bookwyrm.keyboardvagabond.com">Bookwyrm</a>&nbsp;- Book Reviews</li>
<li><a href="https://blog.keyboardvagabond.com">Write Freely</a>&nbsp;- Blogging</li>
</ul>
<p><small>&copy; 2025 Keyboard Vagabond. Part of the decentralized fediverse network.</small></p>
</section>
</footer>
<script src="scripts/bundle.js"></script>
</body>

22
public/robots.txt Normal file
View File

@@ -0,0 +1,22 @@
User-agent: *
Allow: /
# Sitemap location
Sitemap: https://www.keyboardvagabond.com/sitemap.xml
# Disallow crawling of fediverse subdomains to focus on main site
Disallow: /mastodon/
Disallow: /piefed/
Disallow: /pixelfed/
Disallow: /bookwyrm/
Disallow: /blog/
Disallow: /picsur/
# Allow important pages
Allow: /about.html
Allow: /css/
Allow: /scripts/
Allow: /site-styles/
# Crawl delay to be respectful
Crawl-delay: 1

View File

@@ -328,3 +328,112 @@
position: relative;
}
}
/* Services Summary Styling */
.services-summary {
background: var(--pico-muted-color);
background: rgba(var(--pico-muted-color-rgb, 0, 0, 0), 0.05);
border: 1px solid var(--pico-muted-border-color);
border-radius: var(--pico-border-radius);
padding: var(--pico-spacing);
margin: var(--pico-typography-spacing-vertical) 0;
}
.services-summary h3 {
margin-top: 0;
margin-bottom: var(--pico-typography-spacing-vertical);
color: var(--pico-primary);
}
.service-links {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: calc(var(--pico-spacing) * 0.75);
margin: 0;
}
.service-link {
display: block;
padding: calc(var(--pico-spacing) * 0.75);
background: var(--pico-background-color);
border: 1px solid var(--pico-muted-border-color);
border-radius: var(--pico-border-radius);
text-decoration: none;
color: var(--pico-color);
transition: all 0.2s ease;
text-align: center;
}
.service-link:hover {
background: var(--pico-primary);
color: var(--pico-primary-inverse);
border-color: var(--pico-primary);
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.service-link strong {
display: block;
font-size: 1.1em;
margin-bottom: calc(var(--pico-spacing) * 0.25);
}
/* Screen reader only class */
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* Responsive service links */
@media (max-width: 768px) {
.service-links {
grid-template-columns: 1fr;
gap: calc(var(--pico-spacing) * 0.5);
}
.service-link {
padding: calc(var(--pico-spacing) * 0.5);
}
}
footer ul {
display: flex;
flex-wrap: wrap;
gap: calc(var(--pico-spacing) * 0.5);
list-style: none;
padding: 0;
margin: 0;
align-items: center;
}
footer li {
margin: 0;
display: flex;
align-items: center;
}
footer li:not(:last-child)::after {
content: "|";
margin: 0 calc(var(--pico-spacing) * 0.5);
color: var(--pico-muted-color);
font-weight: normal;
}
@media (max-width: 480px) {
footer ul {
flex-direction: column;
align-items: center;
gap: calc(var(--pico-spacing) * 0.5);
}
footer li:not(:last-child)::after {
content: none; /* Remove delimiters on mobile */
}
}

15
public/sitemap.xml Normal file
View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.keyboardvagabond.com/</loc>
<lastmod>2024-12-19</lastmod>
<changefreq>monthly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://www.keyboardvagabond.com/about.html</loc>
<lastmod>2024-12-19</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>

View File

@@ -0,0 +1,64 @@
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Keyboard Vagabond",
"url": "https://www.keyboardvagabond.com",
"logo": "https://picsur.keyboardvagabond.com/i/076a5b88-20d3-426e-ad7f-f24a68d3fa70.jpg?width=400",
"description": "A fediverse community for digital nomads, remote workers, and travel enthusiasts offering multiple social media alternatives including Mastodon, Piefed, Pixelfed, Bookwyrm, and Write Freely.",
"sameAs": [
"https://mastodon.keyboardvagabond.com",
"https://piefed.keyboardvagabond.com",
"https://pixelfed.keyboardvagabond.com",
"https://bookwyrm.keyboardvagabond.com",
"https://blog.keyboardvagabond.com"
],
"foundingDate": "2025",
"areaServed": "Global",
"knowsAbout": ["Fediverse", "Digital Nomadism", "Remote Work", "Travel", "Social Media Alternatives"],
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Fediverse Services",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Mastodon",
"description": "Decentralized social media alternative to Twitter"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Piefed",
"description": "Community forum alternative to Reddit with enhanced features"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Pixelfed",
"description": "Photo sharing platform alternative to Instagram"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Bookwyrm",
"description": "Book discussion and review platform"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Write Freely",
"description": "Minimalist federated blogging platform"
}
}
]
}
}