Skip to content

mikotoIO/mikoto

Repository files navigation

Mikoto

The Most Overkill Messaging App in the World.

Website · Alpha · Docs · Blog · Twitter


Mikoto is an messaging platform designed for building online communities. It uses a thread-based structure for text messaging, voice/video chat, and real-time collaborative wiki editing.

Features

Note: Mikoto is still in early development. Some of these features are not fully implemented.

  • ✨ Open Source (with proprietary extensions for enterprise support)
  • ⚡️ Superuser friendly features, like tab view, zen mode and, keyboard shortcuts and more
  • 📡 Voice, video, and screen sharing
  • 📝 Real-time collaborative wiki channels
  • 🧵 Next-generation thread management
  • 🏡 Threaded DMs and group DMs
  • 🎨 Customizable themes and appearances

and upcoming features:

  • 🪐 DID-based usernames
  • 🔒 E2E encrypted DMs and Group DMs
  • 🔍 Semantic search across all channels
  • 🔌 Pluggable architecture for custom extensions
  • 🛒 A marketplace for extensions and integrations
  • 🌎 Built-in community finder
  • 🥸 A system to handle multiple personas and identities

Setup

# install dependencies
yarn install

# start services (PostgreSQL, Redis, MinIO, etc.)
docker-compose up

# set up database
cd apps/server
npx prisma migrate dev

Development

Mikoto uses a turborepo-based monorepo.

Use Docker Compose to run the necessary services.

To develop all apps and packages, run the following command:

yarn start

To browse/edit the Database run the following command:

Check Dockerfiles and Github Actions for more details, until more documentation is added.

cd apps/server
prisma studio

Build

To build all apps and packages, run the following command:

yarn build

Project Structure

Package Description Stack
apps/server Core server for Mikoto NodeJS + TypeScript + HyperSchema + Prisma
apps/content-proxy S3 Proxy NodeJS + TypeScript
apps/client The web client for Mikoto React + MobX
apps/mobile Mobile client for Mikoto React Native + MobX
apps/desktop Desktop client for Mikoto Electron
packages/mikotojs Mikoto API for JS TypeScript
packages/permcheck Permisson Calculator TypeScript

License

While we're still an early-stage project and the licensing may change in the future, Mikoto is currently dual licensed under AGPL core and a proprietary license. Please email cactus (at) mikoto.io if you are interested in enterprise uses for Mikoto.