Elk is a progressive web app that serves as a client for the Mastodon social network, designed to be deployed via Docker for self-hosted use. It provides a fast, modern web interface for browsing and interacting with Mastodon, optimized for both desktop and mobile devices.
The application distinguishes itself through its offline-first caching strategy and progressive web app shell, which enable basic functionality even when the network is unavailable. It integrates push notification capabilities through a service worker, allowing real-time alerts from the Mastodon server even when the app is not actively open. Additionally, Elk supports the Web Share Target API, enabling it to accept shared text, links, or media from other applications for posting.
The client includes a Mastodon API abstraction layer that handles authentication and pagination, along with client-side routing via Vue Router for smooth navigation between views. For deployment, it offers a Docker containerized setup with persistent storage for user settings, and the progressive web app can be installed as a standalone application with native-like behavior on devices.