Overview
Discover what makes memEx powerful
memEx is a self‑hosted knowledge‑management platform built on the Elixir ecosystem. At its core, it functions as a web‑based wiki that supports rich text editing, version control of pages, and interlinking via backlinks. From a developer’s standpoint, memEx exposes a clean REST/GraphQL API that allows programmatic CRUD operations on pages, users, and tags. The application is designed to run behind any HTTP reverse proxy, making it straightforward to integrate into existing infrastructure.
Rich Markdown & Wiki Syntax
Versioning & Diff
Backlink Graph
Role‑Based Access Control
Overview
memEx is a self‑hosted knowledge‑management platform built on the Elixir ecosystem. At its core, it functions as a web‑based wiki that supports rich text editing, version control of pages, and interlinking via backlinks. From a developer’s standpoint, memEx exposes a clean REST/GraphQL API that allows programmatic CRUD operations on pages, users, and tags. The application is designed to run behind any HTTP reverse proxy, making it straightforward to integrate into existing infrastructure.
Key Features
- Rich Markdown & Wiki Syntax – Pages are authored in Markdown with extended syntax for tables, code blocks, and inline math. The rendering engine is powered by the
Earmarklibrary, ensuring fast conversion to HTML. - Versioning & Diff – Every edit creates a new revision stored in the database. The UI exposes diffs and a history timeline, while the API offers endpoints to fetch specific revisions or compare two versions.
- Backlink Graph – memEx automatically tracks inbound links, providing a graph view that can be queried via the API. This is useful for dependency analysis or knowledge mapping.
- Role‑Based Access Control – Fine‑grained permissions (read, write, admin) are enforced at the page level. The API accepts JWTs or session cookies for authentication.
Technical Stack
- Language & Framework – Elixir 1.17 with Phoenix 1.7, leveraging the OTP concurrency model for handling thousands of simultaneous users.
- WebSocket Support – Phoenix Channels deliver real‑time collaboration features (e.g., live editing indicators).
- Database – PostgreSQL is the primary persistence layer. All schema migrations are managed by
Ecto, and the application ships a Docker image with a pre‑configured PostgreSQL service. - Search – Built‑in full‑text search uses Postgres’
tsvectorindexes; for larger deployments, an optional Elasticsearch connector is available via a plugin. - Containerization – A
Dockerfileanddocker‑compose.ymlprovide a zero‑config setup for local development or production deployment.
Core Capabilities
- API Endpoints –
/api/pages,/api/users,/api/tagssupport standard CRUD, with pagination and filtering. Webhooks can be configured to trigger on page changes. - Webhooks & Extensions – External services can subscribe to events (page created, updated, deleted) via HTTP callbacks. The plugin system allows developers to inject custom logic into the request pipeline or add new UI components.
- CLI – The bundled
teaCLI (written in Elixir) offers commands for database migrations, seeding, and health checks, facilitating CI/CD pipelines.
Deployment & Infrastructure
- Self‑Hosting – memEx can run on any Linux distribution with Docker or as a native release. The binary is statically linked, requiring only the runtime environment and PostgreSQL.
- Scalability – The stateless Phoenix process model makes horizontal scaling trivial. A load balancer can distribute traffic across multiple replicas; session persistence is handled via encrypted cookies.
- Observability – Built‑in metrics expose Prometheus endpoints (
/metrics). Logging is structured JSON, compatible with ELK or Loki stacks.
Integration & Extensibility
- Plugin Architecture – Plugins are simple Elixir modules that hook into Phoenix’s Plug pipeline or define new routes. The repository includes example plugins for OAuth2 authentication and custom markdown extensions.
- Webhooks – External systems can listen to page events, enabling workflows such as automatic documentation generation or CI triggers.
- Custom Themes – The frontend is built with Tailwind CSS; developers can override styles or supply their own assets via the
/assetsdirectory.
Developer Experience
- Documentation – The README and Wiki provide clear guidance on API usage, plugin development, and deployment. Contributing guidelines are enforced with
CredoandMix format. - Community – While the project has modest star count, it follows open‑source best practices: issue tracking, pull request templates, and a code of conduct.
- Licensing – The application is released under the MIT license, giving developers freedom to modify and redistribute.
Use Cases
- Internal Documentation Hub – Teams can host a knowledge base that supports versioned pages, backlinks, and role‑based access without relying on third‑party SaaS.
- Educational Platforms – Instructors can deploy memEx to create course notes, allowing students to view revision history and track dependencies between concepts.
- Developer Documentation – Projects that need an open‑source, self‑hosted wiki for API docs or architecture diagrams can leverage memEx’s plugin system to integrate with CI/CD pipelines.
Advantages
- Performance & Concurrency – Elixir’s lightweight processes enable handling of high‑volume traffic with minimal latency.
- Flexibility – The plugin system and exposed APIs allow deep customization, from authentication to search backends.
- Open‑Source Control – Self‑hosting eliminates vendor lock‑in and ensures data sovereignty, critical for regulated industries.
- Zero‑Config Docker – Rapid onboarding is possible with a single
docker-compose up, making memEx attractive for dev‑ops teams.
Overall, memEx offers a robust, extensible platform for developers who require an on‑premises knowledge management solution that can grow with their organization’s technical needs.
Open SourceReady to get started?
Join the community and start self-hosting memEx today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Runtipi
All‑in‑one self‑hosted app orchestrator
Bludit
Fast, Flat‑File CMS for quick sites and blogs
Paaster
Secure, private pastebin with end‑to‑end encryption
LittleLink
DIY Linktree alternative with over 100 branded buttons
Thelia
Customizable, French‑made e‑commerce platform for scalable online stores
Form.io
Self-hosted form builder and API platform for enterprises
