The Micro Network
A personal app platform that provides services without ads, algorithms, or tracking.
- App - Progressive web app for desktop and mobile
- API - Basic API for docs and programmatic access
- Home - One place to catchup with everything
- Blog - Microblogging and community sharing
- Chat - AI assistant with contextual discussions
- Mail - Private messaging and email inbox
- News - Curated RSS feeds and market data
- Video - YouTube search and Ad-free viewing
Mu runs as a single Go binary on your own server or use the hosted version at mu.xyz.
I'm tired of big tech platforms. We can't control any of them. Lots of addictive tendencies. It seems easier to turn them into API and data providers and rebuild the UX on top. Starting with blog, chat, news, mail and video.
Starting with:
- API - Basic API
- App - Basic PWA
- Home - Overview
- Blog - Micro blogging
- Chat - LLM chat UI
- News - RSS news feed
- Video - YouTube search
- Mail - Private messaging
Coming soon:
- Wallet - Credits for usage
- Utilities - QR code scanner, etc
- Services - Marketplace of services
Basic concepts. The app contains cards displayed on the home screen. These are a sort of summary or overview. Each card links to a micro app or an external website. For example the latest Video "more" links to the /video page with videos by channel and search, whereas the markets card redirects to an external app.
Mu is free to use at mu.xyz. Create an account and start using it immediately - no credit card required.
Contact asim@mu.xyz or file an issue to discuss managed hosting.
Ensure you have Go installed
Set your Go bin
export PATH=$HOME/go/bin:$PATH
Download and install Mu
git clone https://github.com/asim/mu
cd mu && go install
To reconfigure prompts, topics, cards, etc you can adjust the following json files.
Note: The binary will need to be recompiled as they are embedded at build time.
Set the chat prompts in chat/prompts.json
Set the home cards in home/cards.json
Set the RSS news feeds in news/feeds.json
Set the YouTube video channels in video/channels.json
We need API keys for the following
export YOUTUBE_API_KEY=xxx
Ollama (Default)
By default, Mu uses Ollama for LLM queries. Install and run Ollama locally:
# Install Ollama from https://ollama.ai/
# Pull a model (e.g., llama3.2)
ollama pull llama3.2
# Ollama runs on http://localhost:11434 by default
Optional environment variables:
export MODEL_NAME=llama3.2 # Default model
export MODEL_API_URL=http://localhost:11434 # Ollama API URL
Fanar (Optional)
Alternatively, use Fanar by setting the API key:
export FANAR_API_KEY=xxx
export FANAR_API_URL=https://api.fanar.qa # Optional, this is the default
When FANAR_API_KEY is set, Mu will use Fanar instead of Ollama.
For vector search see this doc
Then run the app
mu --serve
Go to localhost:8081
Additional documentation is available in the docs folder:
- Design Documentation - Architecture and design decisions
- Messaging System - Complete messaging and mail setup guide
- Environment Variables - All configuration options
- Contextual Discussions - Chat context and discussion features
- Vector Search - Setting up vector embeddings for semantic search
- Screenshots - Application screenshots
Install git hooks to run tests before commits:
./scripts/install-hooks.shThis will prevent commits if tests fail, helping catch regressions early. See scripts/README.md for more details.
Join Discord if you'd like to work on this.
You can sponsor the project using GitHub Sponsors or via Patreon to support ongoing development and hosting costs. Patreon members get access to premium features like Mail, early access to new features, and vote on the project roadmap. Most features remain free for all users.
Mu is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
This means you are free to use, modify, and distribute this software, but if you run a modified version on a server and let others interact with it, you must make your modified source code available under the same license.