Skip to content

SativusCrocus/Mycelium-Kit

Repository files navigation


Mycelium Kit



Stars Forks Issues MIT License Node 18+ <10kb


Give it a GitHub repo. It builds a self-replicating growth flywheel.

Live Index  •  Quick Start  •  How It Works  •  Modules




The Problem

Getting an open-source project noticed is harder than building it. You push to GitHub, maybe post once on Reddit, and watch the stars stay at zero. There's no distribution engine for indie open source. Marketing feels gross. Growth hacking feels fake. The result: great projects die in obscurity.

The Solution

Mycelium Kit turns any GitHub repo into a self-propagating network node. Like mycelium in nature, it builds invisible infrastructure that connects, nourishes, and grows.

One command. It scans your repo, upgrades your README, builds an embeddable Passport widget, pins everything to IPFS, publishes to decentralized networks, generates 30-50 ready-to-post seeding assets, and registers your project in the Mycelium Index. Every site that embeds your Passport becomes a node in the network, automatically registering itself and strengthening the mesh.

No algorithms. No gatekeepers. No tracking. Just code propagating code.


How It Works

  You provide:  GitHub repo  +  Live URL  +  Description
                               │
                               v
          ┌─────────────────────────────────────────┐
          │          Mycelium Kit Pipeline           │
          ├─────────────────────────────────────────┤
          │                                         │
          │  1. Repo Autopsy     ── scan & upgrade  │
          │  2. Passport Build   ── <10kb widget    │
          │  3. IPFS Pinning     ── permanent       │
          │  4. Nostr / Bluesky  ── decentralized   │
          │  5. Seeding Pack     ── 30-50 assets    │
          │  6. Radicle Mirror   ── p2p Git         │
          │  7. Index Update     ── network effect  │
          │                                         │
          └─────────────────────────────────────────┘
                               │
                               v
        README + Widget + IPFS Pins + Seeding Pack + Registry
                               │
                               v
                    ┌──────────────────────┐
                    │   Self-Replicating   │
                    │      Flywheel        │
                    │                      │
                    │  Widget embedded on  │
                    │  external sites ──>  │
                    │  beacon registers    │
                    │  back to Index ──>   │
                    │  more visibility ──> │
                    │  more embeds ──>     │
                    │  stronger network    │
                    └──────────────────────┘

Quick Start

Prerequisites

  • Node.js 18+ and Git

Install & Run

git clone https://github.com/SativusCrocus/Mycelium-Kit.git
cd Mycelium-Kit
npm install

node src/cli.js \
  --repo https://github.com/YOU/YOUR_REPO \
  --live-url https://your-site.com \
  --description "What your project does"

Configure (optional)

All integrations degrade gracefully. Set what you have, skip what you don't.

cp .env.example .env
Variable Service Free Tier
PINATA_JWT IPFS pinning 1GB free
NOSTR_PRIVATE_KEY Nostr publishing Free
BLUESKY_HANDLE Bluesky posting Free
MASTODON_INSTANCE ActivityPub posting Free
GITHUB_TOKEN Higher API limits Free

Output

File What
README.md Upgraded — problem/solution/demo/benefits format
dist/passport-widget.js Embeddable <mycelium-passport> web component
seeding-pack.json 30-50 ready-to-post growth assets
.mycelium-meta.json Project metadata for all modules

Modules

Repo Autopsy — repo-autopsy.js

Scans your GitHub repo via API. Analyzes README quality, fetches stars/forks/languages/topics, and generates an upgraded README in problem → solution → demo → benefits format. Suggests optimal topics for discoverability.

Passport Widget — passport-builder.js

Generates a self-contained vanilla JS web component:

  • Shadow DOM — zero CSS conflicts with host pages
  • < 10kb total, mobile-responsive
  • Live stats fetched client-side from GitHub API
  • 7 Propagate buttons — X, Reddit, LinkedIn, HN, dev.to, Bluesky, Mastodon
  • UTM + referral tracking on every share link
  • Auto-registers embedding site with Mycelium Index via beacon
<script src="dist/passport-widget.js"></script>
<mycelium-passport></mycelium-passport>

IPFS Pinner — ipfs-pinner.js

Pins widget and metadata to IPFS via Pinata (free tier). Optional permanent archival to Arweave via Irys. Creates immutable, censorship-resistant hosting.

Decentralized Publisher — nostr-publisher.js

One module, three protocols:

  • Nostr — kind-1 events to 5 well-connected relays
  • Bluesky — AT Protocol with rich text facets
  • Mastodon — ActivityPub status posting

All posts are manual-trigger only. Zero auto-posting to closed platforms.

Seeding Generator — seeding-generator.js

Generates 30-50 ready-to-post assets across 10 niches:

Platform Assets Style
Reddit (general + language-specific) 7 posts Value-first, non-shill
Hacker News 3 posts Show HN + reply templates
dev.to 3 articles Tutorial + comparison format
X / Twitter 5 tweets/threads Problem-solution hooks
LinkedIn 3 posts Professional narrative
Discord 3 messages Community-appropriate
Indie Hackers 3 posts Builder journey
Mastodon + Bluesky 6 posts Platform-native
Reply templates 10 templates Contextual, helpful

Radicle Mirror — radicle-mirror.js

Mirrors your repo to the Radicle P2P network for censorship resistance. Sets up rad remote for ongoing sync.

Mycelium Index — mycelium-index/

The live directory of every project in the network:

  • Glassmorphism dark theme with animated mesh gradients
  • Real-time search, language filtering, sorting
  • /api/register — Vercel serverless function that receives widget beacons
  • Zero tracking, zero cookies, zero frameworks

Live at mycelium-index.vercel.app


Architecture

mycelium-kit/
├── .github/workflows/
│   └── mycelium-autopsy.yml ······· Full 8-step GitHub Action pipeline
├── src/
│   ├── cli.js ····················· CLI orchestrator
│   ├── repo-autopsy.js ············ Scan + upgrade README
│   ├── passport-builder.js ········ Shadow DOM widget builder
│   ├── ipfs-pinner.js ············· Pinata IPFS + Arweave archival
│   ├── nostr-publisher.js ········· Nostr + Bluesky + Mastodon
│   ├── seeding-generator.js ······· 30-50 growth assets
│   ├── radicle-mirror.js ·········· P2P Git mirror
│   ├── index-updater.js ··········· Registry updater
│   └── utils.js ··················· Zero-dep shared utilities
├── mycelium-index/
│   ├── api/register.js ············ Vercel serverless beacon endpoint
│   ├── index.html ················· Static directory site
│   ├── style.css ·················· Glassmorphism design system
│   ├── app.js ····················· Client-side search + filtering
│   ├── registry.json ·············· Live project registry
│   └── vercel.json ················ Routing + CORS + caching
├── assets/
│   ├── logo.svg ··················· Project logo
│   ├── favicon.svg ················ Favicon
│   └── banner.svg ················· README banner
└── test/
    └── utils.test.js ·············· 21 passing unit tests

GitHub Action

The included workflow runs the full pipeline on every push to main or via manual trigger. Copy it to any repo.

# .github/workflows/mycelium-autopsy.yml — already included
# Trigger manually with publishing:
gh workflow run "Mycelium Autopsy & Upgrade" \
  -f repo_url="https://github.com/you/repo" \
  -f live_url="https://your-site.com" \
  -f publish="yes"

Required secrets:

Secret Purpose
PINATA_JWT IPFS pinning
NOSTR_PRIVATE_KEY Nostr publishing (optional)
BLUESKY_HANDLE + BLUESKY_APP_PASSWORD Bluesky posting (optional)
MASTODON_INSTANCE + MASTODON_TOKEN Mastodon posting (optional)

GITHUB_TOKEN is provided automatically by GitHub Actions.


Self-Dogfooding

Mycelium Kit runs on itself. The Action on this repo:

  1. Scans itself and upgrades its own README
  2. Builds and pins its own Passport widget to IPFS
  3. Registers itself in the Mycelium Index
  4. Generates its own seeding pack
  5. Publishes to Nostr (when triggered manually)

The Index at mycelium-index.vercel.app shows Mycelium-Kit as the first node in the network.


Security & Privacy

Full analysis in SECURITY.md.

  • No secrets in code — env vars and GitHub Secrets only
  • No auto-posting — all social posts require manual trigger
  • No tracking — beacon sends hostname only, zero PII
  • No cookies — the Index and widget are stateless
  • Shadow DOM — widget sandboxed from host page
  • Rate-limited API — 5 req/min/IP on /api/register
  • Input validation — hostname sanitization, blocklists, size caps

Edge Cases

Scenario Behavior Fix
Private repo 404 from API Set GITHUB_TOKEN with repo scope
No README Creates from scratch Review generated README
Rate limited Waits up to 2min, retries Use GITHUB_TOKEN for 5000 req/hr
Nostr relay down Publishes to fewer relays Kit tries 5, succeeds if 1+ works
Bluesky auth fail Skips with warning Check handle + app password
Radicle missing Prints install instructions Install CLI, run rad auth
Widget CSS conflict None Shadow DOM isolates styles
CSP blocks widget Won't load Allowlist script domain in CSP
Concurrent beacon writes 409 with retry hint Client retries automatically

Testing

npm test                # 21 unit tests, all passing

# Integration smoke tests
node src/repo-autopsy.js --repo https://github.com/sindresorhus/got
node src/passport-builder.js && ls -la dist/passport-widget.js
node src/seeding-generator.js

Contributing

Contributions welcome. Fork, branch, PR.

  1. Fork the repo
  2. git checkout -b feature/your-feature
  3. git commit -m 'Add your feature'
  4. git push origin feature/your-feature
  5. Open a Pull Request

License

MIT — use it, fork it, grow it.




Mycelium Kit



Built with Mycelium Kit — the network grows with every node.



About

Self-replicating growth engine for open-source projects. Scans your repo, builds an embeddable Passport widget, pins to IPFS, publishes to Nostr/Bluesky/Mastodon, and creates a decentralized propagation network. Zero tracking. Zero fluff.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors