<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: The Foundation</title>
    <description>The latest articles on Forem by The Foundation (@the-foundation).</description>
    <link>https://forem.com/the-foundation</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F12363%2F729ceae9-8066-4d98-8388-4e08562c7626.webp</url>
      <title>Forem: The Foundation</title>
      <link>https://forem.com/the-foundation</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/the-foundation"/>
    <language>en</language>
    <item>
      <title>The Foundation Update: From Theory to Working Federation</title>
      <dc:creator>Daniel Nwaneri</dc:creator>
      <pubDate>Wed, 18 Feb 2026 11:24:51 +0000</pubDate>
      <link>https://forem.com/the-foundation/the-foundation-update-from-theory-to-working-federation-2ejm</link>
      <guid>https://forem.com/the-foundation/the-foundation-update-from-theory-to-working-federation-2ejm</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Last week I shipped The Foundation with clipboard capture and security theater. Today it's a real ActivityPub server with automatic conversation capture and passage-level search precision. Here's what actually works now.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Changed Since Launch
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Before (Feb 9):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clipboard scraping with Ctrl+C&lt;/li&gt;
&lt;li&gt;Security scanner blocking legitimate content&lt;/li&gt;
&lt;li&gt;Theoretical ActivityPub support&lt;/li&gt;
&lt;li&gt;Search returned chunks, not conversations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;After (Feb 18):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browser extension auto-captures via Claude's internal API&lt;/li&gt;
&lt;li&gt;Real ActivityPub federation (discoverable on Mastodon)&lt;/li&gt;
&lt;li&gt;Passage-level search with scroll-to-highlight&lt;/li&gt;
&lt;li&gt;Clean UI with mobile support&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Clipboard Capture Mistake
&lt;/h2&gt;

&lt;p&gt;My original approach was fundamentally broken. I tried to capture conversations by listening for copy events:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;copy&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;copiedText&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getSelection&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="c1"&gt;// Parse timestamps to detect Claude vs user...&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Problems:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Required manual Ctrl+A then Ctrl+C&lt;/li&gt;
&lt;li&gt;Missed artifacts (separate panel, not selected)&lt;/li&gt;
&lt;li&gt;Missed uploaded files (not in DOM)&lt;/li&gt;
&lt;li&gt;Only captured partial conversations (virtual scrolling)&lt;/li&gt;
&lt;li&gt;Timestamp regex failed → only got user messages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It was clever but fragile. Every Claude UI update broke it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Solution: Claude's Internal API
&lt;/h2&gt;

&lt;p&gt;Claude Exporter figured this out first. Instead of scraping the DOM, use the API that Claude.ai itself uses:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// 1. Get org ID (one-time setup)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;orgs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://claude.ai/api/organizations&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;credentials&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;include&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;orgId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;orgs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// 2. Get conversation ID from URL&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;convId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pathname&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// 3. Fetch complete conversation&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;conv&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="s2"&gt;`https://claude.ai/api/organizations/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;orgId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/conversations/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;convId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;credentials&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;include&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What you get:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All 44 messages (not 22 user messages)&lt;/li&gt;
&lt;li&gt;Artifacts included&lt;/li&gt;
&lt;li&gt;File metadata (names, types)&lt;/li&gt;
&lt;li&gt;Timestamps on every message&lt;/li&gt;
&lt;li&gt;Claude's auto-generated summary (free)&lt;/li&gt;
&lt;li&gt;Zero truncation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The extension now injects a "Share to Foundation" button. Click it → conversation captured → sent to Worker → embedded → searchable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real ActivityPub Federation
&lt;/h2&gt;

&lt;p&gt;The original article mentioned federation but never built it. Now it's real:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Working endpoints:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/.well-known/nodeinfo&lt;/code&gt; → instance metadata&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/.well-known/webfinger&lt;/code&gt; → user lookup&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/federation/actor&lt;/code&gt; → ActivityPub identity with RSA keypair&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/federation/inbox&lt;/code&gt; → receives Follow activities&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/federation/followers&lt;/code&gt; → who's following this instance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What this means:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mastodon users can search for &lt;code&gt;@knowledge@chat-knowledge-api.fpl-test.workers.dev&lt;/code&gt; and follow The Foundation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Federation tested and working:&lt;/strong&gt; Successfully followed from Mastodon (techhub.social). Follow activity received and processed at inbox, follower stored in database. The Foundation is live on the fediverse. When someone follows, the inbox handler:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Receives Follow activity&lt;/li&gt;
&lt;li&gt;Stores follower in &lt;code&gt;federated_instances&lt;/code&gt; table&lt;/li&gt;
&lt;li&gt;Sends Accept activity back&lt;/li&gt;
&lt;li&gt;They see "Follow request accepted"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It's not theoretical. The protocol works. Other instances can discover you.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Note:&lt;/strong&gt; HTTP signature implementation is still pending. This means The Foundation can receive Follow activities and send Accept responses, but cannot yet send signed activities &lt;em&gt;to&lt;/em&gt; other instances. Full two-way federation is the next step.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Passage-Level Search Precision
&lt;/h2&gt;

&lt;p&gt;Search used to return chunk IDs. Click a result → land somewhere in a 300-message conversation. Frustrating.&lt;/p&gt;

&lt;p&gt;Now it's surgical:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search query:&lt;/strong&gt; "scroll-to-passage"&lt;br&gt;
&lt;strong&gt;Result:&lt;/strong&gt; "Passage 2 of 4" in conversation X&lt;br&gt;
&lt;strong&gt;Click it:&lt;/strong&gt; &lt;code&gt;?msg=92&lt;/code&gt; in URL → scrolls to message 92 → amber highlight pulse&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// search.ts extracts message_index from metadata&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;msgIndex&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message_index&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/view/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;chatId&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;?msg=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;msgIndex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// chat.ts scrolls to exact message&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;target&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.message[data-index="&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;msgIndex&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;"]&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;scrollIntoView&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;behavior&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;smooth&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;classList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;highlighted&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 2.4s amber pulse&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No approximation. No "scroll to top of chunk and hope." You land on the exact message that matched your query.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Removed
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Security scanning:&lt;/strong&gt; The original version tried to block API keys before storage. Noble goal, terrible execution. It blocked legitimate code examples, created friction, and users just worked around it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Better approach:&lt;/strong&gt; Don't try to be smart. Let people save what they want. If they share publicly, they'll review it first. Trust users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clipboard hacks:&lt;/strong&gt; All gone. Extension uses Claude's API like a normal application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Complexity:&lt;/strong&gt; The codebase is smaller and more maintainable now. Fewer edge cases, fewer brittle parsers.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Stack That Actually Works
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser Extension
  ├─ Auto-detects org ID (zero config)
  ├─ Fetches conversation from Claude's API
  └─ Sends to Worker

Cloudflare Worker
  ├─ Stores in D1 (chats + messages + chunks)
  ├─ Generates embeddings (Workers AI)
  └─ Indexes in Vectorize

Search
  ├─ Semantic search via Vectorize
  ├─ Returns passage snippets with message_index
  └─ UI scrolls to exact message

ActivityPub
  ├─ NodeInfo discovery
  ├─ WebFinger lookup
  ├─ Actor with RSA keypair
  └─ Inbox processes Follow activities
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Cost:&lt;/strong&gt; ~$5/month on Cloudflare's free tier&lt;br&gt;
&lt;strong&gt;Latency:&lt;/strong&gt; &amp;lt;100ms search response&lt;br&gt;
&lt;strong&gt;Uptime:&lt;/strong&gt; 99.9% (Cloudflare SLA)&lt;/p&gt;
&lt;h2&gt;
  
  
  Current Limitations
&lt;/h2&gt;

&lt;p&gt;This is infrastructure, not a finished product:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⚠️ &lt;strong&gt;HTTP signatures not implemented&lt;/strong&gt; — The Foundation can receive Follow activities and accept them, but cannot yet send signed activities to other instances. Full two-way federation is still pending.&lt;/li&gt;
&lt;li&gt;⚠️ &lt;strong&gt;No visibility controls yet&lt;/strong&gt; — All conversations are private by default. There's no per-conversation public/private toggle yet.&lt;/li&gt;
&lt;li&gt;⚠️ &lt;strong&gt;Single-user instance&lt;/strong&gt; — Not multi-tenant. Built for personal use; self-hosters each run their own instance.&lt;/li&gt;
&lt;li&gt;⚠️ &lt;strong&gt;Federated Q&amp;amp;A is a separate future project&lt;/strong&gt; — Mentioned in the roadmap below, but not part of this release.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal isn't perfection — it's proving the protocol works.&lt;/p&gt;
&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Immediate:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;del&gt;Test Mastodon follow flow&lt;/del&gt; (Done - tested with techhub.social)&lt;/li&gt;
&lt;li&gt;Implement HTTP signatures for two-way federation&lt;/li&gt;
&lt;li&gt;Add visibility controls (public/private per conversation)&lt;/li&gt;
&lt;li&gt;Write self-hosting documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Next Month:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-tenant support (multiple users per instance)&lt;/li&gt;
&lt;li&gt;Cross-instance search&lt;/li&gt;
&lt;li&gt;Collections feature (curate conversations by topic)&lt;/li&gt;
&lt;li&gt;Chrome Web Store submission&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Long-term Vision:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Federated Q&amp;amp;A as separate product&lt;/li&gt;
&lt;li&gt;Same protocol, different content type (questions/answers instead of conversations)&lt;/li&gt;
&lt;li&gt;Let developers own their knowledge infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Real Vision:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Foundation proves federated knowledge commons work. Federated Q&amp;amp;A proves they scale. Same infrastructure, same protocol, different use case.&lt;/p&gt;

&lt;p&gt;You already have 70% of the code. Just change:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Content type: conversations → questions/answers&lt;/li&gt;
&lt;li&gt;UI: chat viewer → Q&amp;amp;A forum&lt;/li&gt;
&lt;li&gt;Interaction: search → ask + vote&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Backend (Worker):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/dannwaneri/chat-knowledge.git
&lt;span class="nb"&gt;cd &lt;/span&gt;chat-knowledge
npm &lt;span class="nb"&gt;install
&lt;/span&gt;wrangler d1 create chat-knowledge-db
&lt;span class="c"&gt;# Update wrangler.toml with database ID&lt;/span&gt;
wrangler d1 execute chat-knowledge-db &lt;span class="nt"&gt;--remote&lt;/span&gt; &lt;span class="nt"&gt;--file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;schema.sql
npm run deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Extension:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Load unpacked from &lt;code&gt;extension/&lt;/code&gt; folder&lt;/li&gt;
&lt;li&gt;Navigate to claude.ai/chat&lt;/li&gt;
&lt;li&gt;Click "Share to Foundation" button&lt;/li&gt;
&lt;li&gt;Conversation captured automatically&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Search:&lt;/strong&gt;&lt;br&gt;
Visit your Worker URL → semantic search across all captured conversations&lt;/p&gt;

&lt;h2&gt;
  
  
  The Hard Truth
&lt;/h2&gt;

&lt;p&gt;I over-engineered the first version. Security scanning, clipboard hacks, complex parsers — all solving problems users didn't have.&lt;/p&gt;

&lt;p&gt;The new version does less, but does it right:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Capture: just works (uses Claude's API)&lt;/li&gt;
&lt;li&gt;Search: actually precise (passage-level)&lt;/li&gt;
&lt;li&gt;Federation: real protocol (ActivityPub)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ship working code. Iterate based on real usage. Stop building features nobody asked for.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Foundation is live. The protocol works. The search is precise. The federation layer is ready — with the known limitations above clearly documented.&lt;/p&gt;

&lt;p&gt;What comes next isn't more features. It's getting people to use it.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Live demo: &lt;a href="https://chat-knowledge-api.fpl-test.workers.dev" rel="noopener noreferrer"&gt;https://chat-knowledge-api.fpl-test.workers.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Source: &lt;a href="https://github.com/dannwaneri/chat-knowledge" rel="noopener noreferrer"&gt;https://github.com/dannwaneri/chat-knowledge&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Previous article: &lt;a href="https://dev.to/the-foundation/i-built-federated-ai-knowledge-commons-heres-how-56oj"&gt;I Built Federated AI Knowledge Commons&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cloudflare</category>
      <category>opensource</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Update: Scaling Back The Foundation</title>
      <dc:creator>Daniel Nwaneri</dc:creator>
      <pubDate>Sat, 14 Feb 2026 14:46:43 +0000</pubDate>
      <link>https://forem.com/the-foundation/update-scaling-back-the-foundation-5bek</link>
      <guid>https://forem.com/the-foundation/update-scaling-back-the-foundation-5bek</guid>
      <description>&lt;h1&gt;
  
  
  Update: Scaling Back The Foundation
&lt;/h1&gt;

&lt;p&gt;I launched The Foundation with big plans: federated AI knowledge commons, MCP servers, semantic search across organizations. Built the proof-of-concept. It works.&lt;/p&gt;

&lt;p&gt;But I underestimated the scope. This is a multi-person, multi-month project. And I have client work that pays bills and family that needs time.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Changes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Right now:&lt;/strong&gt;&lt;br&gt;
The Foundation becomes simpler - a place where developers write verification case studies. No complex infrastructure. Just knowledge sharing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"AI code I rejected and why"&lt;/li&gt;
&lt;li&gt;"How I verified this architectural decision"&lt;/li&gt;
&lt;li&gt;"Times AI was confidently wrong"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Later (maybe):&lt;/strong&gt;&lt;br&gt;
The federated infrastructure. When we have people and capacity to build it properly.&lt;/p&gt;

&lt;h2&gt;
  
  
  If You Want to Help
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Write verification case studies&lt;/li&gt;
&lt;li&gt;Share examples of rejecting AI output&lt;/li&gt;
&lt;li&gt;If you're technical and want to co-build infrastructure: DM me&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'd rather be honest about capacity than burn out delivering promises I can't keep.&lt;/p&gt;

&lt;p&gt;The problem is real. The solution is still needed. Just needs to grow at a sustainable pace.&lt;/p&gt;

</description>
      <category>community</category>
      <category>career</category>
      <category>opensource</category>
      <category>discuss</category>
    </item>
    <item>
      <title>I Shipped the Solution to Knowledge Collapse in 21 Days</title>
      <dc:creator>Daniel Nwaneri</dc:creator>
      <pubDate>Mon, 09 Feb 2026 11:07:59 +0000</pubDate>
      <link>https://forem.com/the-foundation/i-built-federated-ai-knowledge-commons-heres-how-56oj</link>
      <guid>https://forem.com/the-foundation/i-built-federated-ai-knowledge-commons-heres-how-56oj</guid>
      <description>&lt;p&gt;Three weeks ago, I wrote about knowledge collapse - how our best technical insights are dying in private AI chats while Stack Overflow bleeds 78% of its traffic.&lt;/p&gt;

&lt;p&gt;Hundreds of developers agreed we need a solution.&lt;/p&gt;

&lt;p&gt;So I built one. And it's running in production right now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's the live demo:&lt;/strong&gt; &lt;a href="https://chat-knowledge-api.fpl-test.workers.dev" rel="noopener noreferrer"&gt;https://chat-knowledge-api.fpl-test.workers.dev&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Here's the source code:&lt;/strong&gt; &lt;a href="https://github.com/dannwaneri/chat-knowledge" rel="noopener noreferrer"&gt;https://github.com/dannwaneri/chat-knowledge&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Here's the complete build session you're reading from:&lt;/strong&gt; 107 chunks, 174 messages, imported via HTML&lt;/p&gt;

&lt;p&gt;Let me show you how it works.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Problem (Quick Recap)
&lt;/h2&gt;

&lt;p&gt;Knowledge collapse is happening right now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your best debugging solutions live in private Claude chats&lt;/li&gt;
&lt;li&gt;No attribution, no discovery, no commons&lt;/li&gt;
&lt;li&gt;Stack Overflow traffic down 78% since ChatGPT launched&lt;/li&gt;
&lt;li&gt;We're optimizing ourselves into a knowledge dead-end&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We need "Stack Overflow for AI conversations" - but decentralized, privacy-first, and developer-owned.&lt;/p&gt;


&lt;h2&gt;
  
  
  What I Actually Built
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. HTML Import System
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The workflow is dead simple:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Have a valuable Claude conversation&lt;/li&gt;
&lt;li&gt;Press &lt;code&gt;Ctrl+S&lt;/code&gt; (save as HTML)&lt;/li&gt;
&lt;li&gt;Import it: &lt;code&gt;node dist/cli/import-html.js chat.html&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Done - it's searchable&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Tested on this article's build session:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;File size: 4.6MB&lt;/li&gt;
&lt;li&gt;Messages: 136 parsed&lt;/li&gt;
&lt;li&gt;Chunks created: 91&lt;/li&gt;
&lt;li&gt;Time: &amp;lt; 2 seconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No complex setup. No API keys. Just save and import.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Security Scanner (The Critical Feature)
&lt;/h3&gt;

&lt;p&gt;Before any chat goes public, it runs through auto-detection:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔴 CRITICAL (auto-block):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API keys, Bearer tokens&lt;/li&gt;
&lt;li&gt;Private URLs (localhost, .internal domains)&lt;/li&gt;
&lt;li&gt;Credentials, passwords&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Real results from my build session scan:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Total issues detected: 599
Critical blocks: 3 (2 Bearer tokens, 1 API key)
High severity: Multiple localhost URLs
Safe to share: FALSE ✅ (exactly as designed)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the difference between "share everything" and "share safely." One leaked API key costs more than this entire system.&lt;/p&gt;

&lt;h2&gt;
  
  
  By The Numbers
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;This Build Session:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start: Problem identified (Jan 15)&lt;/li&gt;
&lt;li&gt;Build: 107 conversation chunks&lt;/li&gt;
&lt;li&gt;Messages: 174 total&lt;/li&gt;
&lt;li&gt;File size: 4.6MB HTML&lt;/li&gt;
&lt;li&gt;Parse time: &amp;lt; 2 seconds&lt;/li&gt;
&lt;li&gt;Security scan: 599 issues detected (3 critical auto-blocks)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ship date: Feb 8 (24 days from problem to production)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;That's faster than most companies decide what to build.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Semantic Search
&lt;/h3&gt;

&lt;p&gt;Not keyword matching - actual understanding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Query:&lt;/strong&gt; "how to handle vectorize embeddings"&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Found:&lt;/strong&gt; Content about "dimension reduction" and "optimization"&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Relevance score:&lt;/strong&gt; 0.78&lt;/p&gt;

&lt;p&gt;The system understood WHAT I meant, not just what I typed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Workers AI (&lt;code&gt;@cf/baai/bge-base-en-v1.5&lt;/code&gt;) - generates embeddings&lt;/li&gt;
&lt;li&gt;Vectorize - stores 768-dimension vectors&lt;/li&gt;
&lt;li&gt;D1 - metadata and chat structure&lt;/li&gt;
&lt;li&gt;Cosine similarity search across all imported conversations&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  4. Federation Protocol (ActivityPub)
&lt;/h3&gt;

&lt;p&gt;This isn't just personal knowledge management. It's designed to federate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live endpoints:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NodeInfo: &lt;code&gt;/api/federation/nodeinfo&lt;/code&gt; (200 OK ✅)&lt;/li&gt;
&lt;li&gt;WebFinger: &lt;code&gt;/api/federation/.well-known/webfinger&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Inbox/Outbox: ActivityPub standard&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What federation means:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You run your instance&lt;/li&gt;
&lt;li&gt;I run my instance&lt;/li&gt;
&lt;li&gt;We search across ALL of them&lt;/li&gt;
&lt;li&gt;No single point of control&lt;/li&gt;
&lt;li&gt;No corporate overlord&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exactly like Mastodon, but for developer knowledge.&lt;/p&gt;


&lt;h2&gt;
  
  
  Technical Architecture (How It Actually Works)
&lt;/h2&gt;
&lt;h3&gt;
  
  
  The Stack
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Frontend: HTML → Parser → Chunks
Backend: Cloudflare Workers (edge-native)
Database: D1 (SQLite at the edge)
Vector Store: Vectorize (768-dim embeddings)
AI: Workers AI (BGE-base-en-v1.5)
Protocol: ActivityPub (federation standard)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  The Flow
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. IMPORT
   HTML file → Parse messages → Chunk content → Generate embeddings

2. SECURITY
   Scan for secrets → Flag risks → Require review → Safe by default

3. STORAGE
   Chunks → D1 (metadata)
   Embeddings → Vectorize (semantic search)

4. SEARCH
   Query → Generate embedding → Cosine similarity → Ranked results

5. FEDERATION (coming)
   Public chats → ActivityPub → Federated timeline → Cross-instance search
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  What Was Hard
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. HTML Parsing&lt;/strong&gt;&lt;br&gt;
Claude's HTML export format isn't documented. Had to reverse-engineer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Message boundaries&lt;/li&gt;
&lt;li&gt;Code block preservation&lt;/li&gt;
&lt;li&gt;Artifact handling&lt;/li&gt;
&lt;li&gt;Nested content structure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Security Scanner&lt;/strong&gt;&lt;br&gt;
Can't just regex for "API key" - need to understand context:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is this a code example or real credential?&lt;/li&gt;
&lt;li&gt;Is localhost URL in docs or actual endpoint?&lt;/li&gt;
&lt;li&gt;Balance: too strict = false positives, too loose = leaks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Federation Protocol&lt;/strong&gt;&lt;br&gt;
ActivityPub is designed for social posts, not Q&amp;amp;A:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to represent "question" vs "answer"?&lt;/li&gt;
&lt;li&gt;Vote federation across instances?&lt;/li&gt;
&lt;li&gt;Spam prevention without centralized moderation?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Edge-Native Architecture&lt;/strong&gt;&lt;br&gt;
Cloudflare Workers have constraints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;10ms CPU limit per request&lt;/li&gt;
&lt;li&gt;No filesystem&lt;/li&gt;
&lt;li&gt;Async-only database access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Working within constraints = better architecture.&lt;/p&gt;
&lt;h3&gt;
  
  
  The Security Scanner in Action
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Real security detection from the codebase&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;patterns&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;bearerToken&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/Bearer&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;[&lt;/span&gt;&lt;span class="sr"&gt;A-Za-z0-9&lt;/span&gt;&lt;span class="se"&gt;\-&lt;/span&gt;&lt;span class="sr"&gt;._~+&lt;/span&gt;&lt;span class="se"&gt;/]&lt;/span&gt;&lt;span class="sr"&gt;+=*/gi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;[&lt;/span&gt;&lt;span class="sr"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\"]?&lt;/span&gt;&lt;span class="sr"&gt;api&lt;/span&gt;&lt;span class="se"&gt;[&lt;/span&gt;&lt;span class="sr"&gt;_-&lt;/span&gt;&lt;span class="se"&gt;]?&lt;/span&gt;&lt;span class="sr"&gt;key&lt;/span&gt;&lt;span class="se"&gt;[&lt;/span&gt;&lt;span class="sr"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\"]?\s&lt;/span&gt;&lt;span class="sr"&gt;*&lt;/span&gt;&lt;span class="se"&gt;[&lt;/span&gt;&lt;span class="sr"&gt;:=&lt;/span&gt;&lt;span class="se"&gt;]\s&lt;/span&gt;&lt;span class="sr"&gt;*&lt;/span&gt;&lt;span class="se"&gt;[&lt;/span&gt;&lt;span class="sr"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\"]?[&lt;/span&gt;&lt;span class="sr"&gt;A-Za-z0-9-_&lt;/span&gt;&lt;span class="se"&gt;]{20,}[&lt;/span&gt;&lt;span class="sr"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\"]?&lt;/span&gt;&lt;span class="sr"&gt;/gi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;localhost&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/https&lt;/span&gt;&lt;span class="se"&gt;?&lt;/span&gt;&lt;span class="sr"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\/\/(&lt;/span&gt;&lt;span class="sr"&gt;localhost|127&lt;/span&gt;&lt;span class="se"&gt;\.&lt;/span&gt;&lt;span class="sr"&gt;0&lt;/span&gt;&lt;span class="se"&gt;\.&lt;/span&gt;&lt;span class="sr"&gt;0&lt;/span&gt;&lt;span class="se"&gt;\.&lt;/span&gt;&lt;span class="sr"&gt;1|::1&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;/gi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;internalDomain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/https&lt;/span&gt;&lt;span class="se"&gt;?&lt;/span&gt;&lt;span class="sr"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\/\/[&lt;/span&gt;&lt;span class="sr"&gt;a-z0-9.-&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;\.(&lt;/span&gt;&lt;span class="sr"&gt;local|internal|corp|dev&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;/gi&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Scan returns: { safe: boolean, issues: Issue[] }&lt;/span&gt;
&lt;span class="c1"&gt;// Auto-blocks if critical issues found&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Database Schema (12 tables)
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="n"&gt;chats&lt;/span&gt;                  &lt;span class="c1"&gt;-- Core chat storage&lt;/span&gt;
&lt;span class="n"&gt;chunks&lt;/span&gt;                 &lt;span class="c1"&gt;-- Content chunks for search&lt;/span&gt;
&lt;span class="n"&gt;pre_share_scans&lt;/span&gt;        &lt;span class="c1"&gt;-- Security scanner results&lt;/span&gt;
&lt;span class="n"&gt;chunk_redactions&lt;/span&gt;       &lt;span class="c1"&gt;-- Auto-redaction tracking&lt;/span&gt;
&lt;span class="n"&gt;share_approvals&lt;/span&gt;        &lt;span class="c1"&gt;-- Sharing workflow&lt;/span&gt;
&lt;span class="n"&gt;federated_instances&lt;/span&gt;    &lt;span class="c1"&gt;-- Federation network&lt;/span&gt;
&lt;span class="n"&gt;federated_knowledge&lt;/span&gt;    &lt;span class="c1"&gt;-- Cross-instance content&lt;/span&gt;
&lt;span class="n"&gt;federation_activities&lt;/span&gt;  &lt;span class="c1"&gt;-- ActivityPub events&lt;/span&gt;
&lt;span class="n"&gt;knowledge_analytics&lt;/span&gt;    &lt;span class="c1"&gt;-- Usage tracking&lt;/span&gt;
&lt;span class="n"&gt;collections&lt;/span&gt;            &lt;span class="c1"&gt;-- Knowledge curation&lt;/span&gt;
&lt;span class="n"&gt;collection_items&lt;/span&gt;       &lt;span class="c1"&gt;-- Collection membership&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This is production-grade infrastructure, not a proof of concept.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why I Built This Now
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Timing matters.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Stack Overflow traffic is down 78% and still falling. Every day, thousands of valuable debugging sessions happen in private AI chats and disappear forever.&lt;/p&gt;

&lt;p&gt;We're not just losing knowledge - we're losing the HABIT of knowledge sharing.&lt;/p&gt;

&lt;p&gt;Building this now means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Early adopters shape the protocol&lt;/li&gt;
&lt;li&gt;Federation standards emerge organically
&lt;/li&gt;
&lt;li&gt;We avoid corporate capture (no VC, no "pivot to paid")&lt;/li&gt;
&lt;li&gt;Developers own the infrastructure from day one&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The best time to rebuild the knowledge commons was before Stack Overflow collapsed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The second-best time is now.&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;
&lt;h3&gt;
  
  
  It Solves Knowledge Collapse
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Insights stay discoverable&lt;/strong&gt; - Semantic search finds relevant content&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Attribution preserved&lt;/strong&gt; - Source tracking built-in&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Privacy respected&lt;/strong&gt; - Security scanner catches leaks&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;No platform risk&lt;/strong&gt; - Self-hosted, you control your data&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  It's Actually Decentralized
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ActivityPub&lt;/strong&gt; = proven federation protocol (powers Mastodon's 10M+ users)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer-owned instances&lt;/strong&gt; - Run your own, connect with others&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No "rug pull" risk&lt;/strong&gt; - Open source, MIT licensed&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  It's Viable at Edge Scale
&lt;/h3&gt;

&lt;p&gt;Cloudflare Workers handles massive scale:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Edge-native architecture&lt;/li&gt;
&lt;li&gt;D1 database at the edge&lt;/li&gt;
&lt;li&gt;Vectorize for semantic search&lt;/li&gt;
&lt;li&gt;Workers AI for embeddings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The same tech stack I use for production apps serving thousands of users.&lt;/p&gt;


&lt;h2&gt;
  
  
  From Discussion to Infrastructure
&lt;/h2&gt;

&lt;p&gt;Three weeks ago, Richard Pascoe asked in the comments: "Could Mastodon servers like Fosstodon help foster a knowledge sharing platform?"&lt;/p&gt;

&lt;p&gt;I said yes and built it.&lt;/p&gt;

&lt;p&gt;This isn't theoretical infrastructure. It's ActivityPub-compatible, meaning it federates with Mastodon, Fosstodon, and the entire Fediverse network.&lt;/p&gt;

&lt;p&gt;Richard's question became the bridge between diagnosis and solution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://dev.to/richardpascoe"&gt;@richardpascoe&lt;/a&gt; - your instance is ready when you are.&lt;/strong&gt; 🚀&lt;/p&gt;


&lt;h2&gt;
  
  
  Real Use Cases (What This Enables)
&lt;/h2&gt;
&lt;h3&gt;
  
  
  For Individual Developers
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Portfolio of problem-solving&lt;/strong&gt; - Your best debugging sessions, searchable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learning in public&lt;/strong&gt; - Share solutions, get feedback, build reputation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Future reference&lt;/strong&gt; - "I solved this before, where was that chat?"&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  For Teams
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Institutional knowledge&lt;/strong&gt; - Team's collective debugging history&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Onboarding&lt;/strong&gt; - New devs search team's past solutions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pattern recognition&lt;/strong&gt; - See recurring problems across conversations&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  For Communities
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Niche expertise&lt;/strong&gt; - Rust specialists, Cloudflare devs, etc. share domain knowledge&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Federated discovery&lt;/strong&gt; - Find experts across instances&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attribution&lt;/strong&gt; - Credit flows to who actually solved it&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  For The Commons
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stack Overflow alternative&lt;/strong&gt; - But decentralized and community-owned&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI training data&lt;/strong&gt; - High-quality, attributed conversations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Knowledge archaeology&lt;/strong&gt; - Insights don't die with platforms&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Immediate (This Week)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ Open source on GitHub (MIT license)&lt;/li&gt;
&lt;li&gt;✅ Documentation for self-hosting&lt;/li&gt;
&lt;li&gt;✅ Production deployment live&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Short-term (Next Month)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Import 50+ historical Claude chats (build the corpus)&lt;/li&gt;
&lt;li&gt;MCP extension ("share this chat publicly" from Claude Code)&lt;/li&gt;
&lt;li&gt;First federation test with another developer&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Long-term (3-6 Months)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;10+ federated instances&lt;/li&gt;
&lt;li&gt;Collections feature (curate knowledge by topic)&lt;/li&gt;
&lt;li&gt;Analytics (which insights are most valuable)&lt;/li&gt;
&lt;li&gt;Cross-instance search&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  This Is The Foundation in Action
&lt;/h2&gt;

&lt;p&gt;Two weeks ago, we created &lt;a href="https://dev.to/the-foundation"&gt;@the-foundation&lt;/a&gt; to preserve developer knowledge publicly.&lt;/p&gt;

&lt;p&gt;Richard Pascoe published our first collaborative post on fundamentals.&lt;/p&gt;

&lt;p&gt;This is our second: working infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Foundation isn't just writing about the problem. We're shipping solutions.&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Join The Foundation
&lt;/h2&gt;

&lt;p&gt;This isn't a solo project. It's infrastructure.&lt;/p&gt;
&lt;h3&gt;
  
  
  For Developers
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Clone the repo:&lt;/strong&gt; &lt;a href="https://github.com/dannwaneri/chat-knowledge" rel="noopener noreferrer"&gt;https://github.com/dannwaneri/chat-knowledge&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run your own instance&lt;/strong&gt; - Full setup guide in README&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contribute to the protocol&lt;/strong&gt; - Issues and PRs welcome&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  For Writers
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Import your best AI conversations&lt;/strong&gt; - Build your knowledge portfolio&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Share safely&lt;/strong&gt; - Security scanner protects you&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Get discovered&lt;/strong&gt; - Federated search makes your insights findable&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  For The Curious
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Star the repo&lt;/strong&gt; ⭐ - Show you care about preserving knowledge&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Share this article&lt;/strong&gt; - Help spread the word&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Join the discussion&lt;/strong&gt; - Comment below with your thoughts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The knowledge commons doesn't rebuild itself. But we can build it together.&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Installation (5 Minutes)
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the repo&lt;/span&gt;
git clone https://github.com/dannwaneri/chat-knowledge.git
&lt;span class="nb"&gt;cd &lt;/span&gt;chat-knowledge

&lt;span class="c"&gt;# Install dependencies&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Login to Cloudflare (free tier works)&lt;/span&gt;
wrangler login

&lt;span class="c"&gt;# Create infrastructure&lt;/span&gt;
wrangler d1 create chat-knowledge-db
wrangler vectorize create chat-knowledge-embeddings &lt;span class="nt"&gt;--dimensions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;768 &lt;span class="nt"&gt;--metric&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;cosine

&lt;span class="c"&gt;# Run migrations&lt;/span&gt;
wrangler d1 execute chat-knowledge-db &lt;span class="nt"&gt;--remote&lt;/span&gt; &lt;span class="nt"&gt;--file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;migrations/migration-federation.sql
wrangler d1 execute chat-knowledge-db &lt;span class="nt"&gt;--remote&lt;/span&gt; &lt;span class="nt"&gt;--file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;migrations/migration-sanitizer.sql

&lt;span class="c"&gt;# Deploy&lt;/span&gt;
npm run deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;That's it. You now have your own federated knowledge instance.&lt;/p&gt;


&lt;h2&gt;
  
  
  Try It Right Now
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Import a chat:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Save any Claude conversation as HTML (Ctrl+S)&lt;/span&gt;
npm run build
node dist/cli/import-html.js path/to/chat.html &lt;span class="s2"&gt;"My First Import"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Search it:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://your-worker.workers.dev/search &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"query": "debugging tips", "maxResults": 5}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Scan for secrets:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node dist/cli/safe-share.js &amp;lt;chat-id&amp;gt;
&lt;span class="c"&gt;# Shows what would leak before you share&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The Meta Moment
&lt;/h2&gt;

&lt;p&gt;I wrote about the problem three weeks ago.&lt;br&gt;&lt;br&gt;
Now the solution is running in production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From observation to shipped product in 21 days.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the power of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloudflare Workers (deploy in seconds)&lt;/li&gt;
&lt;li&gt;AI embeddings (semantic search out of the box)&lt;/li&gt;
&lt;li&gt;ActivityPub (proven federation protocol)&lt;/li&gt;
&lt;li&gt;Building in public (accountability + feedback)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Your move, Stack Overflow.&lt;/strong&gt; 👊&lt;/p&gt;




&lt;h2&gt;
  
  
  Related Articles
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://dev.to/dannwaneri/chrome-tabs-story"&gt;My Chrome Tabs Tell a Story&lt;/a&gt;&lt;/strong&gt; - The observation that started it all&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://dev.to/dannwaneri/knowledge-collapse"&gt;We're Creating a Knowledge Collapse&lt;/a&gt;&lt;/strong&gt; - The problem statement (12K+ views)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://dev.to/dannwaneri/above-the-api"&gt;Above the API: What Developers Contribute When AI Can Code&lt;/a&gt;&lt;/strong&gt; - What skills actually matter&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You're here&lt;/strong&gt; - The solution&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Let's Build This Together
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/dannwaneri/chat-knowledge" rel="noopener noreferrer"&gt;https://github.com/dannwaneri/chat-knowledge&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://chat-knowledge-api.fpl-test.workers.dev" rel="noopener noreferrer"&gt;https://chat-knowledge-api.fpl-test.workers.dev&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Twitter:&lt;/strong&gt; &lt;a href="https://twitter.com/dannwaneri" rel="noopener noreferrer"&gt;@dannwaneri&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you believe in preserving developer knowledge, star the repo ⭐ and let's make this real.&lt;/p&gt;

&lt;p&gt;The foundation is laid. Now we need builders.&lt;/p&gt;

&lt;p&gt;Are you in?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>activitypub</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Welcome to The Foundation: Preserving Developer Knowledge in Public</title>
      <dc:creator>Daniel Nwaneri</dc:creator>
      <pubDate>Fri, 06 Feb 2026 14:18:55 +0000</pubDate>
      <link>https://forem.com/the-foundation/welcome-to-the-foundation-preserving-developer-knowledge-in-public-3842</link>
      <guid>https://forem.com/the-foundation/welcome-to-the-foundation-preserving-developer-knowledge-in-public-3842</guid>
      <description>&lt;p&gt;We're building public alternatives to private AI knowledge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why We Exist
&lt;/h2&gt;

&lt;p&gt;Stack Overflow's traffic dropped 78% in two years. Wikipedia gets buried by Google's AI summaries. Developers solve problems in private AI chats that leave no public trace.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The result:&lt;/strong&gt; Junior developers have no Stack Overflow to learn from. The knowledge commons that taught verification, architecture, and skepticism is dying.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Our mission:&lt;/strong&gt; Preserve and build public knowledge infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We're Building
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Right now (Bridge solution):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Curate valuable discussions&lt;/li&gt;
&lt;li&gt;Document reasoning paths publicly&lt;/li&gt;
&lt;li&gt;Share verification techniques&lt;/li&gt;
&lt;li&gt;Mentor explicitly in public&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Soon (Federated infrastructure):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ActivityPub-based Q&amp;amp;A platform&lt;/li&gt;
&lt;li&gt;Community-owned (no corporate control)&lt;/li&gt;
&lt;li&gt;Federated (multiple instances, no single point of failure)&lt;/li&gt;
&lt;li&gt;Open source from day one&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How This Started
&lt;/h2&gt;

&lt;p&gt;From a series of articles:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://dev.to/dannwaneri/my-chrome-tabs-tell-a-story-we-havent-processed-yet-ec9"&gt;My Chrome Tabs Tell a Story We Haven't Processed Yet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/dannwaneri/were-creating-a-knowledge-collapse-and-no-ones-talking-about-it-226d"&gt;We're Creating a Knowledge Collapse and No One's Talking About It&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/dannwaneri/above-the-api-what-developers-contribute-when-ai-can-code-5025"&gt;Above the API: What Developers Contribute When AI Can Code&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The comments proved something: developers want to build alternatives, not just complain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current Members
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dev.to/dannwaneri"&gt;@dannwaneri&lt;/a&gt; - Founder, Cloudflare Workers specialist&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/richardpascoe"&gt;@richardpascoe&lt;/a&gt; - Fediverse advocate, builder&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/nandofm"&gt;@nandofm&lt;/a&gt; - Self-hosting specialist, months of thinking on knowledge entropy&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to Contribute
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;If you're interested in:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing about verification techniques in the AI era&lt;/li&gt;
&lt;li&gt;Documenting architecture decisions publicly&lt;/li&gt;
&lt;li&gt;Building federated infrastructure&lt;/li&gt;
&lt;li&gt;Preserving developer knowledge&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;You're welcome here.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Comment below or message us to get involved.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bridge to Building
&lt;/h2&gt;

&lt;p&gt;We're using this organization as a bridge:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Test&lt;/strong&gt; what developers actually need (on existing platform)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Document&lt;/strong&gt; what works and what doesn't&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build&lt;/strong&gt; federated version with real user feedback&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We don't wait for perfect infrastructure. We start with imperfect platforms, learn fast, build better.&lt;/p&gt;

&lt;h2&gt;
  
  
  Join Us
&lt;/h2&gt;

&lt;p&gt;If you believe knowledge should compound publicly, you belong here.&lt;/p&gt;

&lt;p&gt;Let's build what comes after Stack Overflow.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Questions? Comments? Want to help? Drop a comment below.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>community</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
