From 5e87f52e5e22d8c234e1ad5d3dec2aa73759d733 Mon Sep 17 00:00:00 2001
From: Michael DiLeo
Date: Sun, 28 Sep 2025 18:00:58 +0000
Subject: [PATCH] seo (#17)
SEO implementation, adds a structured data response and robots.txt, fixes page structure, adds meta tags, add elements to UI for better SEO as well.
Reviewed-on: http://source.michaeldileo.org/michael_dileo/Keyboard-Vagabond-Web/pulls/17
Co-authored-by: Michael DiLeo
Co-committed-by: Michael DiLeo
---
minify-build.js | 6 +-
nginx.conf | 6 ++
public/about.html | 10 +--
public/index.html | 125 ++++++++++++++++++++++++++++-------
public/robots.txt | 22 ++++++
public/site-styles/style.css | 109 ++++++++++++++++++++++++++++++
public/sitemap.xml | 15 +++++
public/structured-data.json | 64 ++++++++++++++++++
8 files changed, 327 insertions(+), 30 deletions(-)
create mode 100644 public/robots.txt
create mode 100644 public/sitemap.xml
create mode 100644 public/structured-data.json
diff --git a/minify-build.js b/minify-build.js
index cd7b0a8..40d06b6 100644
--- a/minify-build.js
+++ b/minify-build.js
@@ -35,10 +35,12 @@ async function createOptimizedBuild() {
const purgeResults = await new PurgeCSS().purge({
content: [
'public/index.html',
- 'public/about.html'
+ 'public/about.html',
+ 'public/robots.txt',
+ 'public/sitemap.xml',
],
css: [
- 'public/css/pico.jade.css'
+ 'public/css/pico.jade.css',
// 'public/css/pico.colors.min.css'
],
safelist: {
diff --git a/nginx.conf b/nginx.conf
index c4e798a..41757a0 100644
--- a/nginx.conf
+++ b/nginx.conf
@@ -16,6 +16,7 @@ http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
+ charset utf-8;
access_log /dev/stdout;
error_log /dev/stderr;
@@ -56,6 +57,11 @@ http {
# add_header Pragma "no-cache";
# add_header Expires "0";
}
+
+ location ~* \.json$ {
+ expires 1d;
+ add_header Cache-Control "public, must-revalidate";
+ }
location /health {
access_log off;
diff --git a/public/about.html b/public/about.html
index 7946c33..93265f9 100644
--- a/public/about.html
+++ b/public/about.html
@@ -65,12 +65,12 @@
Your data is yours and you can download it at any time through the apps.
The servers are run in a cluster with data redundancy across nodes + nightly and weekly backups to offline storage.
Should shutdown happen -
- There will be a 3 month announcement in advance, in accordance with the Mastodon Server Covenant.
+ There will be a 3 month announcement in advance, in accordance with the Mastodon Server Covenant.
Funding -
Keyboard Mastodon is currently funded by the admin, for a cost of ~$40 - $45 per month. Donations may be opened in the future, but have not been set up at this time.
-
The Dirty Technicals
+
The Dirty Technicals
If you're not a mega-nerd, turn back now.
I warned you.
Keyboard Vagabond is run on a 3 node Kubernetes cluster running on 3x Arm VPSs hosted by NetCup in Amsterdam. I chose Amsterdam because I thought that Europe would be more centrally located for people who are traveling the world.
@@ -79,7 +79,7 @@
The Specs
Servers
-
3x 10 ARM vCPUs, 16GB Ram, 500GB (~50GB for Talos and the rest for Longhorn) storage running Talos and Kubernetespan.
+
3x 10 ARM vCPUs, 16GB Ram, 500GB (~50GB for Talos and the rest for Longhorn) storage running Talos and Kubernetespan.
Storage
Longhorn ensures that there are at least 2 copies across the nodes.
Backups and Content
@@ -87,7 +87,7 @@
CDN
CloudFlare provides CDN and special rules have been set up to be sure that as much as possible is cached.
Security
-
Ports are closed off to the world and secured with CloudFlare tunnels and TailScale as the only means of access outside of website access.
+
Ports are closed off to the world and secured with CloudFlare tunnels and secure VPN as the only means of access outside of website access.
A space in the fediverse for travelers, nomads, and vagabonds of all kinds
-
+
+
+
Keyboard Vagabond
+
A comprehensive fediverse community for digital nomads, remote workers, and travel enthusiasts
+
-
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.
-
<mascot here? :D >
- mascot intro and why it was chosen
-
-
Here, you are a member, not just a user - 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.
-
-
What you'll find here
-
Keyboard Vagabond hosts the various fediverse alternatives to big tech and participates in the network.
- Available to you is:
+
+
About Keyboard Vagabond
+
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.
+
Here, you are a member, not just a user - We want to create community in this space, being
+ respectful of each other as well as the places we go and the people we see. This space is what we make of it.
+
+
+
+
+
Our Fediverse Services
+
Keyboard Vagabond hosts various fediverse alternatives to big tech and participates in the network.
+ Available to you are:
Piefed - An alternative to Reddit and similar to and compatible
with Lemmy, but with extra features for topics and communities.
- Both are an alternative to Reddit. See more at join-lemmy.org and
+ See more at join-lemmy.org and
join.piefed.social.
Pixelfed - Like old instagram, where you can share your photos, albums, and create stories. See more at pixelfed.org.
@@ -109,7 +173,7 @@
The rest of the applications are accessible on the websites and can be added to your homescreen. Signing in - you'll search the server that you want to join, such as mastodon.social or mastodon.keyboardvagabond.com, or use the provided default instances.
-
What is the Fediverse
+
What is the Fediverse
The fediverse is a collection of big-tech alternative social media that all communicate with each other using
the same protocol, called ActivityPub. This means that not only can different “instances,” such as this
community, participate with discussions on other servers, but also with the different applications. You can
@@ -119,12 +183,12 @@
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.
Check out this amazing four minute video by Elena Rossini. You can follow her
- on Mastodon by searching @_elena@mastodon.social.