Repository navigation
Publish the shell.online posts on the blog, and send /blogs to /blog/ - #311
Merged
Merged
Conversation
Imports the 23 shell.online posts already published on pilotprotocol.network into blog/posts.json and blog/posts/, with their banners and a canonical link back to the original. Relative links in the bodies now point at pilotprotocol.network, and links between imported posts stay on shell.online. /blogs and /blogs/* answer a 301 to the same path under /blog/; both are added to run_worker_first so the Worker sees them.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes for the user?
shell.online/blog/ (live since #309 but empty) now lists every shell.online post published so far: 23 posts from 2026-09-02 to 2026-09-30, imported from pilotprotocol.network.
/blog/...,/docs/,/trust,/app-store) pointed at pilotprotocol.network pages and now say so explicitly. Links to another imported post stay on shell.online./blogsand/blogs/<anything>answer a 301 to the same path under/blog/. Both paths are added torun_worker_firstinwrangler.example.jsonc, and the landing SEO check enforces it.The two open website blog PRs (pilot-protocol/website#278, #281) are not included; they aren't published yet.
Verification
npm run check→ exit 0; 67 files, 778 tests passed (new/blogsredirect test; the registry test validates all 23 entries and bodies), plus the installer, landing SEO, mobile, deploy guard, QEMU and formula checks.npm run build:web→ 23 post pages, index, feed, sitemap and 23 banners indist/blog/.wrangler dev --config wrangler.example.jsoncwithHost: shell.online:/blog/200 with 23 cards; posts 200 with the canonical link;/blog307;/blogs,/blogs/and/blogs/<slug>/301 to/blog/...;/blog/nope/404; feed, sitemap and banners 200.Access and privacy
No change to authorization, terminal input, passwords, encryption or stored content.
Rollout
Website and Worker only. The private production config needs
/blogsand/blogs/*inrun_worker_firstbefore the next relay deploy (check-worker-routing refuses it otherwise).