ShareFeed allows a group of people to share websites, videos, and other web content with each other. It features a dead-simple UI suitable for users of all technical levels, designed to replace mindless social media scrolling with meaningful relational sharing.
ShareFeed consists of two components across two repositories:
- This repo (
sharefeed) - Holochain app, UI, and browser extension sharefeed-desktop- Desktop app wrapper (based on Kangaroo)
All data is stored on the Holochain distributed network, giving you full ownership and control of your data.
- Download the latest release from sharefeed-desktop releases
- Run the installer for your platform:
- Windows: Run
ShareFeed-Setup.exe - macOS: Open
ShareFeed.dmgand drag to Applications - Linux: Run
ShareFeed.AppImageor install the.debpackage
- Windows: Run
- Download
sharefeed-extension.zipfrom the Releases page - Unzip to a folder on your computer
- Open Chrome and go to
chrome://extensions - Enable "Developer mode" (toggle in top right)
- Click "Load unpacked" and select the unzipped folder
- The ShareFeed icon will appear in your browser toolbar
cd extension
npm install
npm run buildThen load the extension/dist folder as an unpacked extension.
- Start the Desktop App - Launch ShareFeed from your applications
- Share Content - Click the ShareFeed icon in your browser while viewing any webpage
- Add Details - Optionally add a note or highlight specific text
- View Feed - Open the desktop app to see shares from your group
- Node.js v18+
- Rust (for Holochain development)
- Holochain CLI tools
# Clone both repositories
git clone https://github.com/lightningrodlabs/sharefeed.git
git clone https://github.com/lightningrodlabs/sharefeed-desktop.git
cd sharefeed
npm install
cd ../sharefeed-desktop
yarn installsharefeed/ # This repo
├── dnas/ # Holochain DNA (backend)
│ └── sharefeed/
│ └── zomes/
│ ├── integrity/ # Data validation
│ └── coordinator/ # Business logic
├── extension/ # Chrome browser extension
│ └── src/
│ ├── popup/ # Extension popup UI
│ ├── background/ # Service worker
│ └── storage/ # Holochain integration
├── ui/ # Svelte web UI
└── workdir/ # Build output (.happ, .webhapp)
sharefeed-desktop/ # Separate repo
├── src/main/ # Electron main process
├── pouch/ # Place .webhapp here
└── kangaroo.config.ts # App configuration
# Start with one agent
npm run start
# Start with two agents (for testing multi-user)
npm run start:2cd extension
npm run devThen load extension/dist as an unpacked extension in Chrome.
# In sharefeed repo: build and deploy webhapp
npm run deploy:desktop
# In sharefeed-desktop repo: run the desktop app
cd ../sharefeed-desktop
yarn dev# Run all tests
npm test
# Unit tests only
npm run test:unit
# Integration tests only
npm run test:integration# Creates sharefeed-extension.zip in repo root
npm run package:extension# In sharefeed repo: build webhapp
npm run package
# Copy to desktop repo
cp workdir/sharefeed.webhapp ../sharefeed-desktop/pouch/
# In sharefeed-desktop: build for your platform
cd ../sharefeed-desktop
yarn build:linux # or build:win, build:mac-arm64, build:mac-x64Releases are automated via GitHub Actions across both repositories.
# Update version in package.json
# Commit changes
# Tag and push to trigger CI build
git tag happ-v0.1.0
git push origin happ-v0.1.0This triggers .github/workflows/release-webhapp.yaml which:
- Builds the webhapp using nix
- Creates a draft GitHub release with
sharefeed.webhappandsharefeed.happ - Outputs SHA256 checksums
git tag ext-v0.1.0
git push origin ext-v0.1.0This triggers .github/workflows/release-extension.yaml which:
- Builds and zips the extension
- Creates a draft GitHub release with
sharefeed-extension.zip
After the webhapp release is published:
-
Update
kangaroo.config.tsin sharefeed-desktop:webhapp: { url: 'https://github.com/lightningrodlabs/sharefeed/releases/download/happ-v0.1.0/sharefeed.webhapp', sha256: '<sha256-from-release>', },
-
Push to the
releasebranch:git checkout release git merge main git push origin release
This triggers the desktop release workflow which builds installers for:
- Windows (.exe)
- macOS (x86 and arm64 .dmg)
- Linux (.AppImage and .deb)
ShareFeed uses Holochain for decentralized data storage and peer-to-peer networking:
- No central server - Data is stored across participants' devices
- Cryptographic identity - Each user has a unique keypair
- DHT storage - Shares are distributed across the network
The extension connects directly to the local Holochain conductor:
- Fixed ports - Admin: 21211, App: 21212
- WebSocket connection - Uses @holochain/client
- Fallback storage - Local storage when Holochain unavailable
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
npm test) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use TypeScript for all new code
- Follow existing code style
- Add tests for new features
- Update documentation as needed
This project is licensed under the Cryptographic Autonomy License 1.0 (CAL-1.0). See the LICENSE file for details.
The CAL-1.0 ensures that:
- You can freely use, modify, and distribute this software
- Recipients maintain full control of their own data
- Source code remains available to all users