<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:social="https://badgefed.org/ns/social" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>The BadgeFed Project Blog</title>
    <link>https://badgefed.vocalcat.com/</link>
    <description>The BadgeFed Project Blog - Decentralized badges for the Fediverse with ActivityPub and Open Badges.</description>
    <language>en</language>
    <lastBuildDate>Sun, 15 Mar 2026 16:06:00 +0000</lastBuildDate>
    <atom:link href="https://badgefed.vocalcat.com/index.xml" rel="self" type="application/rss+xml"/>
        <item>
      <title>I Love Free Software Day 2026</title>
      <link>https://badgefed.vocalcat.com/2026/03/i-love-free-software-day-2026/</link>
      <pubDate>Sun, 15 Mar 2026 16:06:00 +0000</pubDate>
      <guid>https://badgefed.vocalcat.com/2026/03/i-love-free-software-day-2026/</guid>
      <description>Hardly anybody argues, that saying thank you isn&apos;t something nice. Saying thank you can be done in many ways. But no matter how you say it, the important part o...</description>
      <content:encoded><![CDATA[<p>Hardly anybody argues, that saying thank you isn't something nice. Saying thank you can be done in many ways. But no matter how you say it, the important part of this is that a 'Thank you' for the receiving person means being seen in the effort one brings along, being treated in a nice and respectful way. A 'Thank you' can come a long way to keep others motivated and to let them feel part of a community.</p>
<h2 id="i-love-free-software-day">I Love Free Software Day</h2>
<p>Since 2010 the Free Software Foundation Europe (FSFE) has been celebrating the &quot;I Love Free Software Day&quot;. Each year on the 14th of February Free Software enthusiasts reach out to one another, to contributors, to maintainers, developers highlighting their work and thanking them for their commitment to software freedom. With 2022 the FSFE and its local groups started something different for this special day dedicated to Free Software and its contributors. Together they organised small get-togethers, dedicated events all over Europe. It started with one big event and since then there are now over 20 events in over 10 European countries. By now it is not merely the FSFE and the local FSFE groups, but new groups joining the party and taking up the challenge to organise a local event.</p>
<p>Those events are a great opportunity to share and discuss the hot topics around Free Software, to exchange thoughts, work on Free Software projects and to build bridges among each other to strengthen our ever-growing network. However, organising an event, very much like contributing to Free Software, takes time, energy and resources. With some of this, the FSFE tries to help as much as possible, but still the organisation relies upon a small group of dedicated people willing to take up this challenge and to make something truly special for all the Free Software fans in Europe.</p>
<h2 id="digital-thank-you">Digital 'Thank You'</h2>
<p>To highlight the commitment and to say thank you to those who are part of this and who want to let the community around Free Software spire ever more, we have long been thinking about a good way to do this. As for us the question is how we could possibly say thank you in a new and remarkable way. Many ideas floated around, we could be writing a blog post about the effort done by others, we could send postcards, write an email and share the work done by volunteers to bring together a bunch of people.
But, we, Bonnie, responsible for the &quot;I Love Free Software Day&quot; at the FSFE and Damian, a dedicated Free Software advocate and volunteer for the FSFE, wanted to have a new and truly unique way of saying 'Thank you' to all the event organisers involved in the &quot;I Love Free Software Day&quot;. Then the solution came to us with BadgeFed. A badge, which can be connected to your fediverse account.</p>
<h2 id="the-hands-on-experience">The hands-on experience</h2>
<p>So we went ahead and started to set up a new issuer on the instance, Damian, has been operating. We made three sets of badges, each issued in a different way. One for event organisers, which we issued manually to people responsible for the „I Love Free Software Day“ event in different cities. One for contributors, which they distributed by a unique URL organisers had, and one for participants which was supposed to be easy to collect and displayed as a QR code between presentations.</p>
<p>Because of how BadgeFed is designed the issuer can be migrated to a new instance, operated by FSFE. This allows us to keep to already issued badges. Only requirement for this is to have the proper set of keys. BadgeFed also supports RBAC, which is great, since you do not have to allow one user to access your other issuers. Smart design choices like this allow you to tinker freely and then the proof of concept works smothly and migrate without much pain.</p>
<h1 id="conclusion">Conclusion</h1>
<p>BadgeFed is very easy to use and it is an amazing option to just let others know how much this person has done for the „I Love Free Software Day“, how much time the person has dedicated into organising something for the community, and to let them know your contribution has not gone by unnoticed. So, we invite you to create different badges yourself. We are still playing around with OpenBadges and will tinker with BadgeFed over the next years...so stay tuned for more badges.</p>
]]></content:encoded>
      <author>Bonnie Mehring, Damian Fajfer</author>
      <category>activitypub</category>
      <category>badfeded</category>
      <category>openbadges</category>
      <category>fediverse</category>
      <category>fsfe</category>
      <category>ngo</category>
    </item>
    <item>
      <title>BadgeFed 0.0.2 Release: Docker, Federation Standards, and FOSDEM 2026!</title>
      <link>https://badgefed.vocalcat.com/2026/01/badgefed-0.0.2-release-docker-federation-standards-and-fosdem-2026/</link>
      <pubDate>Wed, 21 Jan 2026 15:00:00 +0000</pubDate>
      <guid>https://badgefed.vocalcat.com/2026/01/badgefed-0.0.2-release-docker-federation-standards-and-fosdem-2026/</guid>
      <description>Hey Fediverse! The changes have been coming fast and furious, so much happening that we couldn&apos;t keep up with individual posts! But here we are with something b...</description>
      <content:encoded><![CDATA[<p>Hey Fediverse!</p>
<p>The changes have been coming fast and furious, so much happening that we couldn't keep up with individual posts! But here we are with something big to share.</p>
<h2 id="badgefed-0.0.2-is-live">BadgeFed 0.0.2 is Live!</h2>
<p>After incredible feedback from our community (huge thanks to @fajfer@mastodon.social for the contributions to @badgefed, it became clear we needed a new release.</p>
<p><strong><a href="https://github.com/tryvocalcat/badgefed/releases/tag/0.0.2">Download BadgeFed 0.0.2 here →</a></strong></p>
<h2 id="whats-new">What's New</h2>
<h3 id="docker-ready">🐳 Docker-Ready</h3>
<p>We've restructured everything for easier deployment. Now you can mount all persistent storage cleanly.</p>
<h3 id="global-expansion">🌍 Global Expansion</h3>
<ul>
<li><strong>New BadgeFed server in Poland</strong> running on Kubernetes! Follow @bot@odznaka.reszka.org</li>
<li><strong>New official domain</strong>: <a href="https://badgefed.org/">https://badgefed.org/</a> - we've grown! 🎉</li>
</ul>
<p>With our new domain comes new opportunities—and new challenges! We're currently exploring how to implement the ActivityPub <strong>Move</strong> activity to enable seamless account migration between BadgeFed servers. This would allow users to migrate their badge credentials and followers when moving between instances, maintaining the decentralized spirit while ensuring user sovereignty over their digital achievements.</p>
<h3 id="federation-standards">📡 Federation Standards</h3>
<p>We implemented <strong>FEP-67ff: FEDERATION.md</strong> (thanks @andypiper@macaw.social!)—you can see exactly <a href="https://github.com/tryvocalcat/badgefed/blob/main/FEDERATION.md">how BadgeFed federates</a>.</p>
<h3 id="performance-reliability">⚡ Performance &amp; Reliability</h3>
<ul>
<li><strong>New queue system</strong> for better responsiveness and job management</li>
<li><strong>Multiple Mastodon server support</strong> for improved federation</li>
</ul>
<h3 id="and-much-more">🔍 And Much More...</h3>
<p>Honestly, there have been so many rapid changes and improvements that we've lost track of documenting everything! The best way to discover all the new features and enhancements is to dive in and explore BadgeFed 0.0.2 yourself. You might find some pleasant surprises we forgot to mention here.</p>
<h2 id="see-badgefed-at-fosdem-2026">See BadgeFed at FOSDEM 2026! 🇧🇪</h2>
<p>We're presenting at FOSDEM 2026! Join us for:</p>
<p><strong>&quot;Decentralised Badges with BadgeFed: Implementing ActivityPub-based Credentials for Non Profits&quot;</strong>
📅 January 31, 4:30pm local time<br />
📍 Brussels, Belgium<br />
🔗 <a href="https://fosdem.org/2026/schedule/event/JEMNBZ-decentralised-badges-activitypub-badgefed/">Session Details</a></p>
<p>Come say hi and see BadgeFed in action!</p>
<hr />
<p>For full documentation and setup instructions, check out our <a href="https://github.com/tryvocalcat/badgefed">GitHub repo</a>.</p>
<p>Badge up! 🏅</p>
]]></content:encoded>
      <author>Maho Pacheco</author>
      <category>badgefed</category>
      <category>fediverse</category>
      <category>openbadges</category>
      <category>update</category>
      <category>activitypub</category>
      <category>docker</category>
      <category>kubernetes</category>
      <category>federation</category>
      <category>fosdem</category>
    </item>
    <item>
      <title>BadgeFed 0.1.1 — Breaking change: per-domain database filenames</title>
      <link>https://badgefed.vocalcat.com/2025/08/badgefed-0.1.1-breaking-change-per-domain-database-filenames/</link>
      <pubDate>Tue, 19 Aug 2025 10:00:00 +0000</pubDate>
      <guid>https://badgefed.vocalcat.com/2025/08/badgefed-0.1.1-breaking-change-per-domain-database-filenames/</guid>
      <description>We are VERY excited about all the features landing in the next release! However, we’re also introducing one big breaking change—and that’s the purpose of this p...</description>
      <content:encoded><![CDATA[<p>We are VERY excited about all the features landing in the next release! However, we’re also introducing one big breaking change—and that’s the purpose of this post. WE ENCOURAGE EVERYONE USING BADGEFED TO CREATE A DATABASE BACKUP BEFORE UPGRADING.</p>
<p>(GO, do it now, we will wait for you and then continue reading this post.)</p>
<p>Don’t worry: if you forget, chances are you won’t lose data, but recovery may be trickier. If you can, please back up first.</p>
<h2 id="summary-read-before-upgrading">Summary (read before upgrading)</h2>
<ul>
<li>Database filenames now match your domain, for example: <code>mydomain.db</code>. The previous single default filename is no longer used by default.</li>
<li>Back up your existing SQLite file NOW. You can also download a backup from the admin portal: Admin &gt; Database &gt; Download Backup.</li>
<li>After upgrading to 0.1.1, the app uses a per-domain database. Use the import utility to migrate from your backup—or copy your backup into the data directory and rename it to the domain-based filename.</li>
<li>Prefer one shared database? Set the environment variable <code>SQLITE_DB_PATH</code> to your desired  (or current) filename (for example, <code>badgefed.db</code>).</li>
</ul>
<h3 id="if-you-already-upgraded-without-preparing">If you already upgraded without preparing</h3>
<ul>
<li>Your previous database was not replaced or deleted. Locate your old <code>badgefed.db</code> (or backup), copy it to the data directory, and rename it to the new domain-based filename.</li>
</ul>
<p>The 0.1.1 release and full release notes are coming soon!</p>
<p>Badge up!</p>
]]></content:encoded>
      <author>Maho Pacheco</author>
      <category>badgefed</category>
      <category>fediverse</category>
      <category>openbadges</category>
      <category>update</category>
      <category>activitypub</category>
      <category>sqlite</category>
      <category>federation</category>
    </item>
    <item>
      <title>BadgeFed Update: Multiple Instances Online!</title>
      <link>https://badgefed.vocalcat.com/2025/08/badgefed-update-multiple-instances-online/</link>
      <pubDate>Wed, 13 Aug 2025 20:00:00 +0000</pubDate>
      <guid>https://badgefed.vocalcat.com/2025/08/badgefed-update-multiple-instances-online/</guid>
      <description>Hey Fediverse! 👋 We&apos;ve been quiet… but not idle. Forget waiting for long blog posts, time for micro updates. Today&apos;s news: We’ve got a few BadgeFed instances l...</description>
      <content:encoded><![CDATA[<p>Hey Fediverse! 👋</p>
<p>We've been quiet… but not idle. Forget waiting for long blog posts, time for micro updates.</p>
<p>Today's news:</p>
<p>We’ve got a few BadgeFed instances live and federating! 🏅</p>
<p>To make it happen, we did a hardcore backend rewrite to support <strong>multiple domains on a single machine</strong>.
For most, it's a niche cost-saving move, but it might be useful for others too. Under the hood: each domain runs its own SQLite DB, with backups in place.</p>
<p>But this isn't just about the tech, the fun part is seeing multiple BadgeFed servers talking to each other (!!). Follow them, check the thread, boost it, and watch for more as they come online!</p>
]]></content:encoded>
      <author>Maho Pacheco</author>
      <category>badgefed</category>
      <category>fediverse</category>
      <category>openbadges</category>
      <category>update</category>
      <category>activitypub</category>
      <category>sqlite</category>
      <category>federation</category>
    </item>
    <item>
      <title>BadgeFed @ FediForum June 2025: Unconferences, Demos, and Community Feedback</title>
      <link>https://badgefed.vocalcat.com/2025/06/badgefed-fediforum-june-2025-unconferences-demos-and-community-feedback/</link>
      <pubDate>Mon, 16 Jun 2025 20:00:00 +0000</pubDate>
      <guid>https://badgefed.vocalcat.com/2025/06/badgefed-fediforum-june-2025-unconferences-demos-and-community-feedback/</guid>
      <description>Hey Fediverse! 👋 We just wrapped up an amazing FediForum June 2025 a week ago, and BadgeFed was right in the thick of it! Here’s a recap of what we did, what w...</description>
      <content:encoded><![CDATA[<p>Hey Fediverse! 👋</p>
<p>We just wrapped up an amazing FediForum June 2025 a week ago, and BadgeFed was right in the thick of it! Here’s a recap of what we did, what we learned, and what’s next for decentralized badges.</p>
<hr />
<h2 id="badgefed-at-fediforum-unconferences-speed-demos">BadgeFed at FediForum: Unconferences &amp; Speed Demos</h2>
<p>BadgeFed had the honor of presenting and hosting <strong>two unconference sessions</strong> and showing off our work in <strong>one speed demo slots</strong> (<a href="https://www.youtube.com/watch?v=7TBJpaqZ7Ng">watch the demo</a>). The energy was fantastic; lots of curiosity, sharp questions, and a real hunger for open standards in the credentialing space.</p>
<h2 id="community-feedback-standards-docs-and-openness">Community Feedback: Standards, Docs, and Openness</h2>
<p>A big theme at FediForum was <strong>specs and open standards</strong>. We’re right there with you! That’s why we’ve enhanced our <a href="https://github.com/tryvocalcat/badgefed/blob/main/DETAILS.md">technical documentation</a> to explain exactly how BadgeFed uses <strong>ActivityPub</strong> and <strong>OpenBadges</strong> together:</p>
<ul>
<li><strong>Issuers are ActivityPub actors</strong>, each instance can federate and follow others.</li>
<li><strong>Badges are ActivityPub Notes</strong> with OpenBadge 2.1 attachments for maximum compatibility and verifiability.</li>
<li><strong>Strict linking</strong> between issuer and badge, and between badge and recipient, to prevent spoofing.</li>
<li><strong>Signature validation</strong> for both ActivityPub and OpenBadge data.</li>
<li><strong>Federation</strong>: badges propagate via follows, and a special announcer actor helps with discoverability.</li>
<li><strong>Comments and interactions</strong>: badges can be discussed and shared across the Fediverse.</li>
</ul>
<p>Read more in our <a href="https://github.com/tryvocalcat/badgefed/blob/main/DETAILS.md">DETAILS.md</a>.</p>
<h2 id="making-badgefed-easier-to-try">Making BadgeFed Easier to Try</h2>
<p>We heard you: people want to try BadgeFed! Right now, it’s a solo setup (one admin, one Docker container), but we’re working hard to make it easier for others to deploy, configure, and even federate their own instances. Stay tuned for updates on multi-admin support and streamlined onboarding.</p>
<h2 id="feedback-discoverability-vs.spam">Feedback: Discoverability vs. Spam</h2>
<p>One of the most important pieces of feedback we received was about <strong>badge discoverability vs. timeline spam</strong> (<a href="https://github.com/tryvocalcat/badgefed/issues/11">see the issue</a>). We want badges to be easy to find and share, but we also don’t want to flood the Fediverse with unwanted posts. This is now our <strong>top priority</strong>, we’re rethinking how verbose BadgeFed should be, and exploring opt-in/opt-out models for badge visibility and hashtag use.</p>
<h2 id="whats-next-embedding-profile-badges">What’s Next: Embedding &amp; Profile Badges</h2>
<p>We’re also working on ways to let you <strong>embed badges in your blog</strong> or <strong>add them to your Mastodon profile</strong>. More news on that soon!</p>
<hr />
<p>FediForum was a fantastic experience, huge thanks to everyone who attended, gave feedback, and showed interest in decentralized credentials. Let’s keep building a more open, verifiable, and user-empowered Fediverse!</p>
<p>Badge up, and see you in the timeline! 🏅</p>
]]></content:encoded>
      <author>Maho Pacheco</author>
      <category>activitypub</category>
      <category>badgefed</category>
      <category>fediverse</category>
      <category>dotnet</category>
      <category>decentralization</category>
      <category>open-source</category>
      <category>openbadges</category>
      <category>identity</category>
      <category>fediforum</category>
      <category>recap</category>
    </item>
    <item>
      <title>BadgeFed: Early Decentralization Experiments + OpenBadges Export! - Second April 2025 Update</title>
      <link>https://badgefed.vocalcat.com/2025/04/badgefed-early-decentralization-experiments-openbadges-export-second-april-2025-update/</link>
      <pubDate>Mon, 28 Apr 2025 16:55:00 +0000</pubDate>
      <guid>https://badgefed.vocalcat.com/2025/04/badgefed-early-decentralization-experiments-openbadges-export-second-april-2025-update/</guid>
      <description>Hey Fediverse! 👋 Two weeks have passed and here we have another update from the BadgeFed burrow! Here&apos;s what&apos;s new, brewing, and how you can jump in if you&apos;re ...</description>
      <content:encoded><![CDATA[<p>Hey Fediverse! 👋<br />
Two weeks have passed and here we have another update from the BadgeFed burrow!
Here's what's new, brewing, and how you can jump in if you're feeling adventurous.</p>
<hr />
<h2 id="early-bits-of-decentralization">Early Bits of Decentralization</h2>
<p>We've started the very first steps toward decentralization! 🛰️
Right now, we're planning to add <strong>two more test instances</strong> to push federation further.</p>
<p>That said—<strong>there are still no controls for blocking, defederating, moderating, or deleting</strong> yet. So we're <em>not</em> opening it up publicly just yet (BadgeFed isn't ready for the wild west).</p>
<p><strong>BUT</strong>—if you're comfortable around <strong>SQL</strong> and <strong>servers</strong>, <strong>don't mind losing data</strong>, and want to help us test the early messy bits, <strong>let us know</strong>! We'd love to have more fearless testers on board.</p>
<hr />
<h2 id="openbadges-export-is-live">OpenBadges Export is Live! 🎉</h2>
<p>Big milestone: <strong>you can now export your badges to OpenBadges format!</strong></p>
<p>This is a huge step toward real portability. Right now, you can only export badges tied to <strong>profile URLs</strong> (think Mastodon profiles, etc.), <em>not emails</em> yet.</p>
<p>That means you <em>can't</em> directly import them into platforms like <strong>Badgr</strong> or <strong>Credly</strong> (unless they someday support URL-based verification).<br />
We're going to push for that—because identity shouldn't be chained to an email address.</p>
<p>Also: <strong>we have zero interest in storing emails</strong>. Privacy first. Always.</p>
<hr />
<h2 id="uxui-improvements-search">UX/UI Improvements + Search 🔍</h2>
<p>A few small but mighty improvements:</p>
<ul>
<li><strong>New search page</strong>! Now you can search your past badges easily.</li>
<li><strong>Badges are now an attachment to a regular ActivityPub note</strong>, instead of a separate document type.
<ul>
<li>We tried doing a new document type, but... <em>Mastodon just ignored it.</em></li>
<li>Like it or not, we need to be Mastodon-compatible to reach people. But attachments are a <strong>fine</strong> way to extend the ActivityPub spec.</li>
</ul>
</li>
</ul>
<p>Little things, but they add up to a smoother experience.</p>
<hr />
<h2 id="follow-other-issuers-and-bridgefed">Follow Other Issuers! (and Bridgefed!)</h2>
<p>Issuers can now <strong>follow other issuers</strong>!<br />
We think this is a critical building block for decentralization. 🛠️</p>
<p>Plus, if you follow <strong>Bridgy Fed</strong>, it will <strong>bridge to Bluesky</strong>!</p>
<hr />
<h2 id="lots-of-other-nerdy-bits">Lots of Other Nerdy Bits</h2>
<p>Under the hood:</p>
<ul>
<li>Tons of minor improvements and cleanups</li>
<li>More internal support for federating badges across different servers</li>
<li>Prepping groundwork for instance-level controls later</li>
</ul>
<hr />
<h2 id="wanna-test-with-us">Wanna Test With Us? 🧪</h2>
<p>If you're comfortable with:</p>
<ul>
<li>Raw SQL</li>
<li>Servers crashing</li>
<li>Maybe losing everything 😅</li>
</ul>
<p>...and want to help shape early decentralized BadgeFed, <strong>message us</strong>!</p>
<p>(Seriously, it'll be messy but fun.)</p>
<p>👉 <a href="https://github.com/tryvocalcat/badgefed">GitHub Repo</a></p>
<p>Let's make federated badges a reality. 🚀</p>
<p>—Maho</p>
]]></content:encoded>
      <author>Maho Pacheco</author>
      <category>activitypub</category>
      <category>badgefed</category>
      <category>fediverse</category>
      <category>dotnet</category>
      <category>decentralization</category>
      <category>open-source</category>
      <category>openbadges</category>
      <category>identity</category>
      <category>roadmap</category>
    </item>
    <item>
      <title>BadgeFed Grows Up (a Little) - April 2025 Update</title>
      <link>https://badgefed.vocalcat.com/2025/04/badgefed-grows-up-a-little-april-2025-update/</link>
      <pubDate>Sun, 13 Apr 2025 16:27:54 +0000</pubDate>
      <guid>https://badgefed.vocalcat.com/2025/04/badgefed-grows-up-a-little-april-2025-update/</guid>
      <description>Hey Fediverse! 👋 Big news—BadgeFed is officially growing out of its prototype phase. This is your periodic (weekly? monthly? vibes-based?) update on what’s new...</description>
      <content:encoded><![CDATA[<p>Hey Fediverse! 👋<br />
Big news—BadgeFed is officially growing out of its prototype phase. This is your periodic (weekly? monthly? vibes-based?) update on what’s new, what’s brewing, and what we need help with.</p>
<hr />
<h2 id="real-badges-real-people">Real Badges, Real People</h2>
<p>We’ve issued around <strong>25 badges</strong>—our first batch we consider <em>real</em>! 🎉<br />
Out of those, about 10 were accepted. Folks who accepted should’ve received a private notification. If you didn’t, check your inbox or let us know!</p>
<hr />
<h2 id="admin-auth-hashtags-ux-glow-up">Admin Auth, Hashtags &amp; UX Glow-Up</h2>
<p>We added authentication for the admin panel!<br />
Right now, you’ll need to set up a Mastodon server and a unique admin user. That account will manage everything: badges, actors, and more.</p>
<p>We also added <strong>hashtag support</strong>! So badges now show up properly across the fediverse with their tags.<br />
Huge shoutout to <a href="https://dotnet.social/@SmartmanApps">@SmartmanApps@dotnet.social</a>—this one’s for you! And thanks for the reminder: hashtags really are the backbone of fediverse discoverability.</p>
<p>On the visual side—we gave the UI some love! It’s starting to feel like something we’re proud of. If you’re into CSS or design, we’d <em>love</em> to collaborate.</p>
<p>We’re inching toward a private beta launch. Just trying to avoid any irreversible DB/spec changes before opening the doors. (We’ve already nuked the whole database a few times... classic early days.)</p>
<hr />
<h2 id="federation-future-thinking">Federation &amp; Future Thinking</h2>
<p>We’re still figuring out federation, we have already a few ideas to implement it.</p>
<p>We're deep in the weeds of the OpenBadges spec and slowly building out ActivityPub updates (like actor updates, more robust object flows, etc.).</p>
<p>We also started poking at what interop with <strong>at-proto (aka Bluesky)</strong> might look like. We’re skeptical, but curious. If you’ve got thoughts, we’re all ears.</p>
<hr />
<h2 id="tech-notes-nerdy-bits">Tech Notes &amp; Nerdy Bits</h2>
<ul>
<li>Still using <strong>SQLite</strong>—haven’t made the jump to PostgreSQL yet.</li>
<li>We added a (very alpha) settings option to download your DB and run raw SQL. It’s powerful... and risky. Use with care.</li>
<li>Exploring the idea of <strong>one SQLite DB per actor</strong>, so identities and records can be portable across servers.</li>
</ul>
<p>Oh—and we finally squashed that annoying cache issue showing old badges.<br />
Huge thanks to <a href="https://stefanbohacek.online/@stefan">Stefan Bohacek</a> for the report. We made the badge note ID actually unique now. 🙃</p>
<hr />
<h2 id="bug-fixes-shoutouts">Bug Fixes &amp; Shoutouts</h2>
<p>Massive props to:</p>
<ul>
<li><a href="https://mitra.social/@silverpill"><strong>Silver Pill</strong></a> for reporting an issue when following an issuer/actor.</li>
<li><a href="https://a11y.social/@dankeck"><strong>Dan Keck</strong></a> for the awesome a11y PR that added alt-text to badges.</li>
</ul>
<p>Keep ‘em coming—we appreciate every bug report and contribution.</p>
<hr />
<h2 id="whats-next">What’s Next? 📅</h2>
<p>We’re heads-down on:</p>
<ul>
<li>Federation polish</li>
<li>Better actor management</li>
<li>OpenBadges support</li>
<li>Prepping for private beta</li>
</ul>
<p>This is an open-source project. If you're into decentralization, badges, identity, or just weird fun tech—<strong>jump in</strong>. Feedback, PRs, issue ideas, and vibes are all welcome.</p>
<p>👉 <a href="https://github.com/tryvocalcat/badgefed">GitHub Repo</a></p>
<p>Let’s make federated badges a thing. 🏅<br />
—Maho</p>
]]></content:encoded>
      <author>Maho Pacheco</author>
      <category>activitypub</category>
      <category>badgefed</category>
      <category>fediverse</category>
      <category>dotnet</category>
      <category>decentralization</category>
      <category>open-source</category>
      <category>identity</category>
      <category>roadmap</category>
    </item>
    <item>
      <title>BadgeFed: From Prototype to Reality</title>
      <link>https://badgefed.vocalcat.com/2025/03/badgefed-from-prototype-to-reality/</link>
      <pubDate>Mon, 31 Mar 2025 16:27:54 +0000</pubDate>
      <guid>https://badgefed.vocalcat.com/2025/03/badgefed-from-prototype-to-reality/</guid>
      <description>Hey Fediverse, we&apos;ve got some exciting news—BadgeFed is moving out of the prototype phase! That&apos;s right, what started as a scrappy proof-of-concept is now becom...</description>
      <content:encoded><![CDATA[<p>Hey Fediverse, we've got some exciting news—BadgeFed is moving out of the prototype phase! That's right, what started as a scrappy proof-of-concept is now becoming a real, structured, and (dare we say) polished federated badge system.
And since we believe in working out in the open, we want to share our roadmap with you.</p>
<h2 id="the-big-three-priorities">The Big Three Priorities 🏆</h2>
<p>We're focusing on three major areas to take BadgeFed from &quot;hey, this kinda works&quot; to &quot;oh wow, this is actually usable.&quot;</p>
<h3 id="authentication">1. Authentication 🔐</h3>
<p>Right now, logging in is a bit of a mess. So we're tackling authentication properly, integrating OAuth so you can log in using your Mastodon (or other Fediverse) account.
We're building this with .NET and Blazor because performance and scalability matter. Plus, no one wants to manage yet another username/password combo.</p>
<h3 id="federation-spec">2. Federation &amp; Spec 🌍</h3>
<p>We're making sure BadgeFed speaks ActivityPub fluently. Right now, federation kinda-sorta works, but we need to define a proper spec that makes badge issuing,
earning, and verification seamless across different platforms. Whether you're on Mastodon, Pleroma, or something else entirely, BadgeFed should just work.
We're ironing out the kinks so badges travel as smoothly as your cat pictures. Also we want to support export and import from OpenBadges spec, and we need to do some experimentation on how this could travel on the fediverse.</p>
<h3 id="packaging-docs-and-docker">3. Packaging, Docs, and Docker 📦</h3>
<p>What's cooler than a decentralized badge system? A decentralized badge system that's easy to set up.
We're working on clear documentation, making installation painless, and putting together a Docker container so you don't have to wrestle with dependencies or even dotnet.
One command, and boom—you're federating badges like a pro.</p>
<hr />
<h2 id="the-would-be-nice-priorities">The &quot;Would Be Nice&quot; Priorities ✨</h2>
<p>Once the big three are solid, we're setting our sights on some much-needed improvements:</p>
<ul>
<li><strong>Approval Process &amp; Expiration</strong> – Not all badges should last forever. We're adding controls for expiration dates and approval workflows.</li>
<li><strong>Stats &amp; Insights</strong> – Want to see how many people are earning badges? We'll be adding analytics to track adoption and engagement.</li>
<li><strong>CSS &amp; UI/UX Love</strong> – Let's be honest, the prototype is functional, but it's not winning any beauty contests. Expect smoother UI, better mobile support, and fewer &quot;why is this button here?&quot; moments.</li>
<li><strong>Landing Page</strong> – BadgeFed deserves a proper introduction. A clean, informative landing page is in the works.</li>
</ul>
<hr />
<h2 id="whats-next">What's Next? 📅</h2>
<p>We're heads-down working on these priorities, but as always, feedback, ideas, and contributions are welcome.
This is an open-source project, and the best way to make sure it fits the needs of the Fediverse is to have the community involved.</p>
<p>If you want to help, hop into our discussions, check out the repo at <a href="https://github.com/tryvocalcat/badgefed">https://github.com/tryvocalcat/badgefed</a>, or just share your thoughts. Let's make federated badges a thing! 🏅</p>
]]></content:encoded>
      <author>Maho Pacheco</author>
      <category>activitypub</category>
      <category>badgefed</category>
      <category>fediverse</category>
      <category>dotnet</category>
      <category>decentralization</category>
      <category>open-source</category>
      <category>identity</category>
      <category>roadmap</category>
    </item>
    <item>
      <title>Introducing a Minimalistic ActivityPub Badge System: Decentralized, Verified, and Built for the Fediverse</title>
      <link>https://badgefed.vocalcat.com/2025/03/introducing-a-minimalistic-activitypub-badge-system-decentralized-verified-and-built-for-the-fediverse/</link>
      <pubDate>Sun, 30 Mar 2025 20:27:54 +0000</pubDate>
      <guid>https://badgefed.vocalcat.com/2025/03/introducing-a-minimalistic-activitypub-badge-system-decentralized-verified-and-built-for-the-fediverse/</guid>
      <description>In the ever-evolving world of digital credentials, we’ve seen centralized platforms like Credly dominate the badge and certification space. But what if we could...</description>
      <content:encoded><![CDATA[<p>In the ever-evolving world of digital credentials, we’ve seen centralized platforms like Credly dominate the badge and certification space.
But what if we could flip the script? What if badges could be decentralized, self-certified, and issued directly by organizations in the Fediverse?</p>
<p>By reusing the social graph already present in the Fediverse, we can enable a seamless integration of badges into the networks people are already part of.
Instead of creating new, siloed systems for certification, we can utilize the trusted connections and relationships within platforms like Mastodon to issue and verify badges.
It’s about making the credentialing process as decentralized and open as the social interactions we have online today.</p>
<p>That's exactly what I'm working on with my latest project: a minimalistic ActivityPub implementation for badges, built using #dotnet.</p>
<h2 id="the-problem-with-traditional-badge-systems">The Problem with Traditional Badge Systems</h2>
<p>It’s mind-blowing that major organizations—think Microsoft, Non-Profits, and educational institutions—spend thousands of dollars on badge providers like Pearson just to get a &quot;verified&quot; badge.
These badges, while useful, are locked into centralized platforms that limit the potential for genuine, open verification systems.</p>
<p>What if badges could be as decentralized as social media profiles? Imagine organizations running their own badge systems—similar to the way social media instances like Mastodon operate in the Fediverse.
Think about a domain-based badge system like <code>badges.mozilla.com</code>, or a school district offering badges at <code>certifications.myschooldistrict.com</code>. Even a podcast could issue badges to its guests, with the entire verification happening directly within the domain.</p>
<h2 id="why-activitypub">Why ActivityPub?</h2>
<p>ActivityPub is already a powerful protocol for secure, decentralized communication between actors in the Fediverse.
It enables us to create verifiable interactions and sign digital artifacts in a way that was previously the domain of a few centralized certificate authorities.
With ActivityPub, we can extend this to badges, allowing people and organizations to interact with verified credentials in the same decentralized way that we share posts,
follows, and interactions across Mastodon or any other Fediverse platform.</p>
<p>Think about how LetsEncrypt disrupted the centralized SSL certificate market. Now, with a decentralized badge system, we can enable a similar revolution for verified credentials.</p>
<h2 id="the-project-so-far">The Project So Far</h2>
<p>I’ve made some solid progress, and there’s now a functional proof of concept (PoC) in place. The project is live and can be found here: <a href="https://github.com/tryvocalcat/activitypub-badges">ActivityPub Badges on GitHub</a>.</p>
<p>This fediverse actor, the badges issuer, isn’t a Mastodon instance, a Pleroma, or a blog—it’s an actor in a badge system. You can follow it on Mastodon, but its badges are not microblogging notes.
Instead, think of it as a way to display verified credentials directly from a decentralized source.</p>
<p>Here’s the first badge I’ve issued:</p>
<p><a href="https://badges.vocalcat.com/record/10">First Badge: View on Mastodon</a></p>
<p>Simply copy and paste the URL and open it in your Mastodon client. The badge will show up as a note, and you can celebrate, comment, or share it within your ActivityPub network.
This is how the badge system will work—just like social media, but with credentials!</p>
<h2 id="a-decentralized-future-for-badges">A Decentralized Future for Badges</h2>
<p>The ultimate goal is to create a decentralized badge system where different instances of badge issuers will recognize each other’s certifications.
This way, even if a certificate issuer disappears, the credential is still secure and verifiable across the network.
Imagine the survivability of certificates in such a system—if your issuer disappears, the credential still exists in a federated, decentralized space.</p>
<p>It’s an exciting future, and I’m just getting started. If you want to learn more about the progress of this project, follow me, or check out the GitHub repo. (Btw, I am not a Mastodon account, or a BadgeFed system, I am a static site).</p>
<p>Let’s create a future where verification is decentralized, secure, and open for everyone.</p>
<h2 id="early-adopter-badge-who-wants-one">Early Adopter Badge: Who Wants One?</h2>
<p>As with any new project, there’s always room for early adopters. If you’re interested in getting your own badge, let me know! Follow the progress and get involved as we continue to build this decentralized badge system.</p>
<hr />
<p>Feel free to share your thoughts, questions, and comments. Badge up, own your credentials, and let the Fediverse showcase your achievements.</p>
]]></content:encoded>
      <author>Maho Pacheco</author>
      <category>activitypub</category>
      <category>badfeded</category>
      <category>fediverse</category>
      <category>dotnet</category>
    </item>
    <item>
      <title>Hello Fediverse!</title>
      <link>https://badgefed.vocalcat.com/2025/03/hello-fediverse/</link>
      <pubDate>Sun, 30 Mar 2025 18:27:54 +0000</pubDate>
      <guid>https://badgefed.vocalcat.com/2025/03/hello-fediverse/</guid>
      <description></description>
      <content:encoded><![CDATA[]]></content:encoded>
      <category>activitypub</category>
      <category>badfeded</category>
      <category>fediverse</category>
    </item>
  </channel>
</rss>
