home.social

#static-sites — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #static-sites, aggregated by home.social.

fetched live
  1. I've been having fun restoring this old (old) WordPress website from 2011-13 that I archived a couple years ago (when I learned the WP CEO was a bit of a fuckwit)

    Some cool lomo fisheye photos of me in my 20s taken by my friend Vanessa (who also did all the art for our EPs)

    iamtheagent.ohsilence.com/2011

    #Blogging #Blog #Music #IndieWeb #Wordpress #Astro #StaticSites

  2. Naty S @eclecticpassions ·

    In the last few days, I’ve experimenting with a new SSG as a replacement for my secondary site that’s still running —the I learnt to create my first website.

    Once the migration is over, I won’t have to manage a dynamic website any more. Hurray, for the win!

    I'm replacing @WordPress with @zensical

    View full note: burgeonlab.com/notes/2026/0530

    This is post 48 of

    📈 burgeonlab.com/tags/100daystoo

  3. In the last few days, I’ve experimenting with a new SSG as a replacement for my secondary site that’s still running #WordPress—the #CMS I learnt to create my first website.

    Once the migration is over, I won’t have to manage a dynamic website any more. Hurray, #StaticSites for the win!

    I'm replacing @WordPress with @zensical

    View full note: burgeonlab.com/notes/2026/0530

    This is post 48 of #100DaysToOffload

    📈 burgeonlab.com/tags/100daystoo

    #zensical #personalsites #blogs

  4. Jamstack is reshaping how we build sites: front‑end decoupled, served as static assets from CDNs.

    🔑 Insight: By splitting JavaScript, APIs, and markup, you get faster load times, stronger security, and effortless scaling—everything a headless CMS, Gatsby or Next.js can plug into.

    #Jamstack #WebDev #StaticSites #HeadlessCMS #OpenWeb

    🔗 news.google.com/rss/articles/C

  5. Sidenote: If anyone has good recs for an open source #JavaScript library that can do flipbook-style visualizations for digital #zines embedded in static sites: please let me know 🙏🏿

    #staticsite #staticsites #html #html

  6. Sidenote: If anyone has good recs for an open source #JavaScript library that can do flipbook-style visualizations for digital #zines embedded in static sites: please let me know 🙏🏿

    #staticsite #staticsites #html #html

  7. I'm taking on new projects!

    Looking for a web designer/dev? I work with WordPress, Shopify, and static sites (Eleventy/Build Awesome) - whether you need a fresh build, a redesign, or ongoing support.

    Based in Australia and happy to work with clients worldwide. Message me directly or check out alanquirk.com.

    #WebDesign #WebDev #WordPress #Shopify #Eleventy #StaticSites #Freelancer #FreelanceWeb #openForWork #getFediHired #FediHire #ForHire

  8. I'm taking on new projects!

    Looking for a web designer/dev? I work with WordPress, Shopify, and static sites (Eleventy/Build Awesome) - whether you need a fresh build, a redesign, or ongoing support.

    Based in Australia and happy to work with clients worldwide. Message me directly or check out alanquirk.com.

    #WebDesign #WebDev #WordPress #Shopify #Eleventy #StaticSites #Freelancer #FreelanceWeb #openForWork #getFediHired #FediHire #ForHire

  9. It is that time of year when my @blog expires, so I'm taking the opportunity to give the site's style/CSS a quick makeover.

    Do you like my new subscribe form, would you change something?

    #fediverse #css #blog #staticsites #mastodon

  10. It is that time of year when my @blog expires, so I'm taking the opportunity to give the site's style/CSS a quick makeover.

    Do you like my new subscribe form, would you change something?

    #fediverse #css #blog #staticsites #mastodon

  11. There have been many experiments with adding simple ActivityPub support to static blogs, enabling authors to publish their blog into the fediverse to be followed and get commented on. Some of these experimenters have documented what they did, and I've started a list of examples here;

    codeberg.org/fediverse/fedipar

    I chucked this together in a hurry, so please prod me about any mistakes, or any additions that could be made to the list.

    #FediDevs #ActivityPub #blogs #StaticSites #FediverseParty

  12. There have been many experiments with adding simple ActivityPub support to static blogs, enabling authors to publish their blog into the fediverse to be followed and get commented on. Some of these experimenters have documented what they did, and I've started a list of examples here;

    codeberg.org/fediverse/fedipar

    I chucked this together in a hurry, so please prod me about any mistakes, or any additions that could be made to the list.

    #FediDevs #ActivityPub #blogs #StaticSites #FediverseParty

  13. A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 9: Quote Posts

    Summary:

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Why Quote Posts Matter (And Why They’re Controversial)

    The User Experience Problem

    Picture this: Someone finds your blog post fascinating and wants to share it with their followers, but they also want to add their own perspective or why is important. Without quote posts, they have two unsatisfying options:

    1. Simple share: Just boost with no commentary\
    2. Link sharing: Add a link to the blog post in their note

    Neither option creates the rich, attributed conversations that make social media engaging.

    The Solution: Consent-First Quote Implementation

    We’re implementing FEP-044f: Consent-respecting quote posts in our federated blog.

    What this means for your readers:

    • They can quote your posts with confidence that you’ve opted in
    • Their quotes include proper attribution and linking

    What this means for you:

    • Automatic handling of quote requests
    • Future-ready for advanced moderation features (like in the fuuutuuure)

    Implementation Overview

    We are going to:

    1. Modify the Notes JSON to include that the notes are quotable.
    2. Modify our Index function (the only dynamic POST endpoint) to handle quote requests and send the appropriate approval back.

    1. Modifying the Notes: Enhanced ActivityPub Context

    What We Changed: Extended the @context from a simple string to a rich object array supporting the GoToSocial namespace.

    Before:

    "@context": "https://www.w3.org/ns/activitystreams"
    

    After:

    "@context": [
      "https://www.w3.org/ns/activitystreams",
      {
        "gts": "https://gotosocial.org/ns#",
        "interactionPolicy": {"@id": "gts:interactionPolicy", "@type": "@id"},
        "canQuote": {"@id": "gts:canQuote", "@type": "@id"},
        "automaticApproval": {"@id": "gts:automaticApproval", "@type": "@id"}
      }
    ]
    

    We are also adding this section at the end of the Note:

    "interactionPolicy": {
      "canQuote": {
        "automaticApproval": "https://www.w3.org/ns/activitystreams#Public"
      }
    }
    

    If you want to be specific about who can quote your post, this is where you do it, read more in here.

    You can see an example of the implementation in RssUtils.cs - Updated GetOutbox, GetNote, and GetCreateNote methods.

    2: Quote Request Processing

    Now we need to add the quote request handling system that processes incoming quote requests and automatically approves them based on our interaction policy.

    New Components:

    • QuoteRequestService: Processes incoming quote requests from the fediverse
    • Auto-Approval Logic: Automatically approves public quote requests as defined in our interaction policy
    • Quote Authorization: Issues authorization tokens (stamps) for approved quotes

    The Quote Request Flow:

    sequenceDiagram
        participant Requester as Fediverse User
        participant Inbox as Our Inbox
        participant QRS as QuoteRequestService  
        participant Target as Target Instance
        
        Requester->>Inbox: QuoteRequest for our post
        Inbox->>QRS: Process quote request
        QRS->>QRS: Check interaction policy
        QRS->>QRS: Generate authorization stamp
        QRS->>Target: Send Accept + Authorization
        Target->>Requester: Quote approved
    

    Checkout the implementation in the QuoteRequestService.cs.

    Key Takeaways

    “By implementing FEP-044f, we’re not just adding quote functionality - we’re building consent-respecting social interactions into the protocol level.”

    Why This Matters:

    This implementation shows how static sites can participate in modern social web standards while keeping their simplicity and performance benefits. Right now, we’re automatically allowing all public quotes, but this foundation sets us up for more granular consent controls in the future - like requiring approval for specific users or implementing follower-only quoting.

    The consent-respecting approach means our content can be shared thoughtfully across the fediverse, with the infrastructure already in place to handle more sophisticated permission systems as they evolve.

    Also readable in: https://maho.dev/2025/02/a-guide-to-implementing-activitypub-in-a-static-site-or-any-website-part-9-quote-posts/ by @mapache:

    #fediverse #activitypub #static-sites #hugo #azure #mastodon #web-development #social-web #webfinger #http #quote-posts #fep-044f

  14. A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 9: Quote Posts

    Summary:

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Why Quote Posts Matter (And Why They’re Controversial)

    The User Experience Problem

    Picture this: Someone finds your blog post fascinating and wants to share it with their followers, but they also want to add their own perspective or why is important. Without quote posts, they have two unsatisfying options:

    1. Simple share: Just boost with no commentary (or reply)
    2. Link sharing: Add a link to the blog post in their note

    Neither option creates the rich, attributed conversations that make social media engaging.

    The Solution: Consent-First Quote Implementation

    We’re implementing FEP-044f: Consent-respecting quote posts in our federated blog.

    What this means for your readers:

    • They can quote your posts with confidence that you’ve opted in
    • Their quotes include proper attribution and linking

    What this means for you:

    • Automatic handling of quote requests
    • Future-ready for advanced moderation features (like in the fuuutuuure)

    Implementation Overview

    We are going to:

    1. Modify the Notes JSON to assert that the notes are quotable.
    2. Modify our Index function (the only dynamic POST endpoint) to handle quote requests and send the appropriate approval back (blanket approval).

    1. Modifying the Notes: Enhanced ActivityPub Context

    What We Changed: Extended the @context from a simple string to a rich object array supporting the GoToSocial namespace.

    Before:

    "@context": "https://www.w3.org/ns/activitystreams"
    

    After:

    "@context": [
      "https://www.w3.org/ns/activitystreams",
      {
        "gts": "https://gotosocial.org/ns#",
        "interactionPolicy": {"@id": "gts:interactionPolicy", "@type": "@id"},
        "canQuote": {"@id": "gts:canQuote", "@type": "@id"},
        "automaticApproval": {"@id": "gts:automaticApproval", "@type": "@id"}
      }
    ]
    

    We are also adding this section at the end of the Note:

    "interactionPolicy": {
      "canQuote": {
        "automaticApproval": "https://www.w3.org/ns/activitystreams#Public"
      }
    }
    

    If you want to be specific about who can quote your post, this is where you do it, read more in here.

    You can see an example of the implementation in RssUtils.cs - in the GetNote method.

    2: Quote Request Processing

    Now we need to add the quote request handling system that processes incoming quote requests and automatically approves them based on our interaction policy.

    New Components:

    • QuoteRequestService: Processes incoming quote requests from the fediverse
    • Auto-Approval Logic: Automatically approves public quote requests as defined in our interaction policy
    • Quote Authorization: Issues authorization tokens (stamps) for approved quotes

    The Quote Request Flow:

    sequenceDiagram
        participant Requester as Fediverse User
        participant Inbox as Our Inbox
        participant QRS as QuoteRequestService  
        participant Target as Target Instance
        
        Requester->>Inbox: QuoteRequest for our post
        Inbox->>QRS: Process quote request
        QRS->>QRS: Check interaction policy
        QRS->>QRS: Generate authorization stamp
        QRS->>Target: Send Accept + Authorization
        Target->>Requester: Quote approved
    
    

    Checkout the implementation in the QuoteRequestService.cs.

    Key Takeaways

    By implementing FEP-044f, we’re not just adding quote functionality - we’re building consent-respecting social interactions into the protocol level.

    Why This Matters:

    This implementation shows how static sites can participate in modern social web standards while keeping their simplicity and performance benefits. Right now, we’re automatically allowing all public quotes, but this foundation sets us up for more granular consent controls in the future - like requiring approval for specific users or implementing follower-only quoting.

    The consent-respecting approach means our content can be shared thoughtfully across the fediverse, with the infrastructure already in place to handle more sophisticated permission systems as they evolve.

    Next Steps: The Quote Visualization Challenge

    Now that we’ve successfully implemented the backend infrastructure for consent-respecting quote posts, we face an equally important question: How should we display these quotes on our website?

    Treat quoted posts as special reply types? Quotes have different semantic meaning than replies - they’re more like “shared with commentary” So maybe create a separate “Quoted By” section similar to how we handle likes and shares?

    Any ideas?

    Also readable in: https://maho.dev/2026/02/a-guide-to-implementing-activitypub-in-a-static-site-or-any-website-part-9-quote-posts/ by @mapache:

    #fediverse #activitypub #static-sites #hugo #azure #mastodon #web-development #social-web #webfinger #http #quote-posts #fep-044f

  15. A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 9: Quote Posts

    Summary:

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Why Quote Posts Matter (And Why They’re Controversial)

    The User Experience Problem

    Picture this: Someone finds your blog post fascinating and wants to share it with their followers, but they also want to add their own perspective or why is important. Without quote posts, they have two unsatisfying options:

    1. Simple share: Just boost with no commentary (or reply)
    2. Link sharing: Add a link to the blog post in their note

    Neither option creates the rich, attributed conversations that make social media engaging.

    The Solution: Consent-First Quote Implementation

    We’re implementing FEP-044f: Consent-respecting quote posts in our federated blog.

    What this means for your readers:

    • They can quote your posts with confidence that you’ve opted in
    • Their quotes include proper attribution and linking

    What this means for you:

    • Automatic handling of quote requests
    • Future-ready for advanced moderation features (like in the fuuutuuure)

    Implementation Overview

    We are going to:

    1. Modify the Notes JSON to assert that the notes are quotable.
    2. Modify our Index function (the only dynamic POST endpoint) to handle quote requests and send the appropriate approval back (blanket approval).

    1. Modifying the Notes: Enhanced ActivityPub Context

    What We Changed: Extended the @context from a simple string to a rich object array supporting the GoToSocial namespace.

    Before:

    "@context": "https://www.w3.org/ns/activitystreams"
    

    After:

    "@context": [
      "https://www.w3.org/ns/activitystreams",
      {
        "gts": "https://gotosocial.org/ns#",
        "interactionPolicy": {"@id": "gts:interactionPolicy", "@type": "@id"},
        "canQuote": {"@id": "gts:canQuote", "@type": "@id"},
        "automaticApproval": {"@id": "gts:automaticApproval", "@type": "@id"}
      }
    ]
    

    We are also adding this section at the end of the Note:

    "interactionPolicy": {
      "canQuote": {
        "automaticApproval": "https://www.w3.org/ns/activitystreams#Public"
      }
    }
    

    If you want to be specific about who can quote your post, this is where you do it, read more in here.

    You can see an example of the implementation in RssUtils.cs - in the GetNote method.

    2: Quote Request Processing

    Now we need to add the quote request handling system that processes incoming quote requests and automatically approves them based on our interaction policy.

    New Components:

    • QuoteRequestService: Processes incoming quote requests from the fediverse
    • Auto-Approval Logic: Automatically approves public quote requests as defined in our interaction policy
    • Quote Authorization: Issues authorization tokens (stamps) for approved quotes

    The Quote Request Flow:

    sequenceDiagram
        participant Requester as Fediverse User
        participant Inbox as Our Inbox
        participant QRS as QuoteRequestService  
        participant Target as Target Instance
        
        Requester->>Inbox: QuoteRequest for our post
        Inbox->>QRS: Process quote request
        QRS->>QRS: Check interaction policy
        QRS->>QRS: Generate authorization stamp
        QRS->>Target: Send Accept + Authorization
        Target->>Requester: Quote approved
    
    

    Checkout the implementation in the QuoteRequestService.cs.

    Key Takeaways

    By implementing FEP-044f, we’re not just adding quote functionality - we’re building consent-respecting social interactions into the protocol level.

    Why This Matters:

    This implementation shows how static sites can participate in modern social web standards while keeping their simplicity and performance benefits. Right now, we’re automatically allowing all public quotes, but this foundation sets us up for more granular consent controls in the future - like requiring approval for specific users or implementing follower-only quoting.

    The consent-respecting approach means our content can be shared thoughtfully across the fediverse, with the infrastructure already in place to handle more sophisticated permission systems as they evolve.

    Next Steps: The Quote Visualization Challenge

    Now that we’ve successfully implemented the backend infrastructure for consent-respecting quote posts, we face an equally important question: How should we display these quotes on our website?

    Treat quoted posts as special reply types? Quotes have different semantic meaning than replies - they’re more like “shared with commentary” So maybe create a separate “Quoted By” section similar to how we handle likes and shares?

    Any ideas?

    Also readable in: https://maho.dev/2026/02/a-guide-to-implementing-activitypub-in-a-static-site-or-any-website-part-9-quote-posts/ by @mapache:

    #fediverse #activitypub #static-sites #hugo #azure #mastodon #web-development #social-web #webfinger #http #quote-posts #fep-044f

  16. Spent last week debugging Hugo issues in our R-Ladies website - I wanted to add one page per Chapter. However, we have chapter data as Hugo site data, which doesn't render into pages, I needed to setup a content adapter, which I had never done before. Here's how I used Claude to solve it 🧵

  17. Spent last week debugging Hugo issues in our R-Ladies website - I wanted to add one page per Chapter. However, we have chapter data as Hugo site data, which doesn't render into pages, I needed to setup a content adapter, which I had never done before. Here's how I used Claude to solve it 🧵

    #Hugo #WebDev #Debugging #AI #StaticSites #RLadies

  18. Naty S @eclecticpassions ·

    No new posts on my blog since 2026 began... because I've been adding new features on my Hugo site instead!

    I have 5 new pages:
    - All (aka Firehose feed)
    - Sitemap
    - Stats
    and 2 IndieWeb pages:
    - Notes (aka microblogs)
    - Photos

    A page I really enjoyed making was the Statistics page. I added a new line graph from and used Hugo inbuilt calculations.

    ➡️ burgeonlab.com/stats

  19. No new posts on my blog since 2026 began... because I've been adding new features on my Hugo site instead!

    I have 5 new pages:
    - All (aka Firehose feed)
    - Sitemap
    - Stats
    and 2 IndieWeb pages:
    - Notes (aka microblogs)
    - Photos

    A page I really enjoyed making was the Statistics page. I added a new line graph from #ECharts and used Hugo inbuilt calculations.

    ➡️ burgeonlab.com/stats

    #BurgeonLab #blogs #blogger #hugo #staticsites #indieweb #microformat #apache #ApacheECharts #webdev

  20. I'm finally getting around to trying out statichost.eu. Probably shouldn't be beginning with a custom Docker image, because all I'm discovering so far is my failure to configure said image correctly.

    #staticSites

  21. New blog post: Blog Updates and Dirty Tricks

    In this post you’ll find some recent blog updates (boring), dirty tricks to achieve them (interesting), and unreasonable amounts of praise to Zola (deserved). It might be useful if you’re hosting a blog too.

    https://urmaul.com/blog/blog-updates-and-dirty-tricks/

    #Blogging #StaticSites #Zola

  22. 🚀 Bovine Pages Server v0.1.1 is here!

    New features for self-hosted static sites:

    🔒 DNS TXT Verification - Prevent domain hijacking with cryptographic proof of ownership

    🔀 Custom Domain Redirects - URL redirect system with .redirects file support, automatic Traefik middleware creation

    Self-host your static sites with Forgejo/Gitea - no vendor lock-in, full control, automatic HTTPS via Traefik.

    🔗 code.squarecows.com/SquareCows

    #OpenSource #SelfHosted #StaticSites #Forgejo #Gitea #Traefik #WebDev

  23. 🚀 Bovine Pages Server v0.1.1 is here!

    New features for self-hosted static sites:

    🔒 DNS TXT Verification - Prevent domain hijacking with cryptographic proof of ownership

    🔀 Custom Domain Redirects - URL redirect system with .redirects file support, automatic Traefik middleware creation

    Self-host your static sites with Forgejo/Gitea - no vendor lock-in, full control, automatic HTTPS via Traefik.

    🔗 code.squarecows.com/SquareCows

    #OpenSource #SelfHosted #StaticSites #Forgejo #Gitea #Traefik #WebDev

  24. Reaching 1,500 active users this week on @silex feels really good 🥰

    It means a lot to be part of something where we build lighter sites with open tools. Freelance web designers and no-code devs are starting to use Silex for client work, and this makes me proud too 🫣

    Many use it as an all-in-one workflow to publish static sites easily, possibly moving into advanced headless setups, with @WordPress, @11ty and GitLab

    #WebDesign #OpenSource #StaticSites #JAMStack #headless #NoCode #freelance

  25. Reaching 1,500 active users this week on @silex feels really good 🥰

    It means a lot to be part of something where we build lighter sites with open tools. Freelance web designers and no-code devs are starting to use Silex for client work, and this makes me proud too 🫣

    Many use it as an all-in-one workflow to publish static sites easily, possibly moving into advanced headless setups, with @WordPress, @11ty and GitLab

    #WebDesign #OpenSource #StaticSites #JAMStack #headless #NoCode #freelance

  26. The word #wiki means quick, and back in the day they were a very quick way to edit web pages. But they still are! There's no 'back end' admin area to a wiki, it's just: here's a page, click to edit and then save, and you're back on the page and your changes are live. Magical.

    I keep trying to migrate a couple of my projects to #StaticSites, and it's so frustrating having all these extra steps and systems involved! (It might still be worth it, for the reduced complexity in the long-term.)

  27. Your website shouldn't break at 3 AM.
    Plugins shouldn't destroy your layout.
    Updates shouldn't feel like Russian roulette.

    Publii Static CMS gets it ⚡

    Full story: Why Publii Might Be the Smartest Way to Build Your Website for 2026
    getpublii.com/blog/publii-make

    #StaticSites #WebDev #Privacy #WebPerformance #Publii #CMS #wordpress #plugin #StaticSites

  28. Your website shouldn't break at 3 AM.
    Plugins shouldn't destroy your layout.
    Updates shouldn't feel like Russian roulette.

    Publii Static CMS gets it ⚡

    Full story: Why Publii Might Be the Smartest Way to Build Your Website for 2026
    getpublii.com/blog/publii-make

    #StaticSites #WebDev #Privacy #WebPerformance #Publii #CMS #wordpress #plugin #StaticSites

  29. Platforms change rules, raise prices, or disappear overnight. 📉

    Your content shouldn't go with them. 🚫

    Full story: Why You Should Own Your Content (Not Rent It) 👇
    getpublii.com/blog/why-you-sho

    #ContentOwnership #StaticSites #WebPublishing #Publii #IndieWeb #webdev #CMS #Publii

  30. Platforms change rules, raise prices, or disappear overnight. 📉

    Your content shouldn't go with them. 🚫

    Full story: Why You Should Own Your Content (Not Rent It) 👇
    getpublii.com/blog/why-you-sho

    #ContentOwnership #StaticSites #WebPublishing #Publii #IndieWeb #webdev #CMS #Publii

  31. JuhaMatti Santala, the time-traveling "Community Builder," bravely ventures into the wild world of static sites, declaring them the DeLorean of web design. 🕰️✨ Apparently, running a "blaugust2025blaugusteleventy" category transports you back to when you thought getting badges for blogging was a revolutionary idea.🏅👴
    hamatti.org/posts/static-sites #JuhaMattiSantala #CommunityBuilder #TimeTravel #StaticSites #WebDesign #HackerNews #ngated

  32. JuhaMatti Santala, the time-traveling "Community Builder," bravely ventures into the wild world of static sites, declaring them the DeLorean of web design. 🕰️✨ Apparently, running a "blaugust2025blaugusteleventy" category transports you back to when you thought getting badges for blogging was a revolutionary idea.🏅👴
    hamatti.org/posts/static-sites #JuhaMattiSantala #CommunityBuilder #TimeTravel #StaticSites #WebDesign #HackerNews #ngated

  33. Whisper Engine v0.0.10 drops noise:

    ✅ Simplified pagination
    ✅ Version trace in HTML

    Clarity wins.

    #DeadSwitch #WhisperEngine #Emacs #StaticSites

  34. Whisper Engine v0.0.10 drops noise:

    ✅ Simplified pagination
    ✅ Version trace in HTML

    Clarity wins.

    #DeadSwitch #WhisperEngine #Emacs #StaticSites

  35. Well, this is awesome 👀📘
    The first-ever book about using Publii + GitHub Pages is out on Amazon!
    Big shoutout to Brad Moore for putting this together 👏
    📚 link: amazon.com/dp/B0FBG9HH8H

    #Publii #StaticSites #GitHubPages #WebDev #WebDevelopment #book

  36. Well, this is awesome 👀📘
    The first-ever book about using Publii + GitHub Pages is out on Amazon!
    Big shoutout to Brad Moore for putting this together 👏
    📚 link: amazon.com/dp/B0FBG9HH8H

    #Publii #StaticSites #GitHubPages #WebDev #WebDevelopment #book

  37. So, you mean to tell us you bravely abandoned your fancy-schmancy #CMS for a bash script that generates static sites? 🤔 Because nothing screams "cutting-edge" like hopping back to the Stone Age of web development. 🪨💻 Well, at least you "own your data" now, whatever that means. 😏
    it-notes.dragas.net/2025/04/07 #Disruption #StaticSites #WebDevelopment #DataOwnership #TechHumor #HackerNews #ngated

  38. So, you mean to tell us you bravely abandoned your fancy-schmancy #CMS for a bash script that generates static sites? 🤔 Because nothing screams "cutting-edge" like hopping back to the Stone Age of web development. 🪨💻 Well, at least you "own your data" now, whatever that means. 😏
    it-notes.dragas.net/2025/04/07 #Disruption #StaticSites #WebDevelopment #DataOwnership #TechHumor #HackerNews #ngated

  39. If you're intrigued and curious about what else you can do with these tools, I am working on a series of tutorials:

    stefanbohacek.com/tag/static-s

    And here's a Glitch playlist of static sites made with 11ty:

    glitch.com/@stefan/static-webs

    #eleventy #MadeWithGlitch #webdev #indieweb #StaticSites

  40. A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 9: Quote Posts

    Summary:

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Why Quote Posts Matter (And Why They’re Controversial)

    The User Experience Problem

    Picture this: Someone finds your blog post fascinating and wants to share it with their followers, but they also want to add their own perspective or why is important. Without quote posts, they have two unsatisfying options:

    1. Simple share: Just boost with no commentary\
    2. Link sharing: Add a link to the blog post in their note

    Neither option creates the rich, attributed conversations that make social media engaging.

    The Solution: Consent-First Quote Implementation

    We’re implementing FEP-044f: Consent-respecting quote posts in our federated blog.

    What this means for your readers:

    • They can quote your posts with confidence that you’ve opted in
    • Their quotes include proper attribution and linking

    What this means for you:

    • Automatic handling of quote requests
    • Future-ready for advanced moderation features (like in the fuuutuuure)

    Implementation Overview

    We are going to:

    1. Modify the Notes JSON to include that the notes are quotable.
    2. Modify our Index function (the only dynamic POST endpoint) to handle quote requests and send the appropriate approval back.

    1. Modifying the Notes: Enhanced ActivityPub Context

    What We Changed: Extended the @context from a simple string to a rich object array supporting the GoToSocial namespace.

    Before:

    "@context": "https://www.w3.org/ns/activitystreams"
    

    After:

    "@context": [
      "https://www.w3.org/ns/activitystreams",
      {
        "gts": "https://gotosocial.org/ns#",
        "interactionPolicy": {"@id": "gts:interactionPolicy", "@type": "@id"},
        "canQuote": {"@id": "gts:canQuote", "@type": "@id"},
        "automaticApproval": {"@id": "gts:automaticApproval", "@type": "@id"}
      }
    ]
    

    We are also adding this section at the end of the Note:

    "interactionPolicy": {
      "canQuote": {
        "automaticApproval": "https://www.w3.org/ns/activitystreams#Public"
      }
    }
    

    If you want to be specific about who can quote your post, this is where you do it, read more in here.

    You can see an example of the implementation in RssUtils.cs - Updated GetOutbox, GetNote, and GetCreateNote methods.

    2: Quote Request Processing

    Now we need to add the quote request handling system that processes incoming quote requests and automatically approves them based on our interaction policy.

    New Components:

    • QuoteRequestService: Processes incoming quote requests from the fediverse
    • Auto-Approval Logic: Automatically approves public quote requests as defined in our interaction policy
    • Quote Authorization: Issues authorization tokens (stamps) for approved quotes

    The Quote Request Flow:

    sequenceDiagram
        participant Requester as Fediverse User
        participant Inbox as Our Inbox
        participant QRS as QuoteRequestService  
        participant Target as Target Instance
        
        Requester->>Inbox: QuoteRequest for our post
        Inbox->>QRS: Process quote request
        QRS->>QRS: Check interaction policy
        QRS->>QRS: Generate authorization stamp
        QRS->>Target: Send Accept + Authorization
        Target->>Requester: Quote approved
    

    Checkout the implementation in the QuoteRequestService.cs.

    Key Takeaways

    “By implementing FEP-044f, we’re not just adding quote functionality - we’re building consent-respecting social interactions into the protocol level.”

    Why This Matters:

    This implementation shows how static sites can participate in modern social web standards while keeping their simplicity and performance benefits. Right now, we’re automatically allowing all public quotes, but this foundation sets us up for more granular consent controls in the future - like requiring approval for specific users or implementing follower-only quoting.

    The consent-respecting approach means our content can be shared thoughtfully across the fediverse, with the infrastructure already in place to handle more sophisticated permission systems as they evolve.

    Also readable in: https://maho.dev/2025/02/a-guide-to-implementing-activitypub-in-a-static-site-or-any-website-part-9-quote-posts/ by @mapache:

    #fediverse #activitypub #static-sites #hugo #azure #mastodon #web-development #social-web #webfinger #http #quote-posts #fep-044f

  41. I'm trying to make new website in Hugo, it's a bit annoying, because it will almost, but not quite do what I want.

    It's because I want my static site to be based around images, rather than documents.

    It's tempting build my own static site generator, but I sort of know that'll end up being a lot more effort that bending Hugo to do what I want.

    It's sort of hard to know where the sweet productivity spot is between:

    • just sticking with static html
    • using an existing static site generator and learning how to customize it
    • writing my own tooling

    #StaticSites #WebDev