# elk-zone/elk

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/elk-zone-elk).**

6,026 stars · 621 forks · Vue · MIT

## Links

- GitHub: https://github.com/elk-zone/elk
- Homepage: https://elk.zone
- awesome-repositories: https://awesome-repositories.com/repository/elk-zone-elk.md

## Topics

`mastodon` `mastodon-client` `nuxt-app`

## Description

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.

## Tags

### Web Development

- [Mastodon](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/web-clients/mastodon.md) — Provides a fast, modern web interface for browsing and interacting with the Mastodon social network.
- [Web Share Targets](https://awesome-repositories.com/f/web-development/web-share-targets.md) — Sending text, links, or media from other applications directly into the Mastodon client for posting.
- [Offline Caching Strategies](https://awesome-repositories.com/f/web-development/offline-caching-strategies.md) — Implements an offline-first caching strategy to enable basic functionality when the network is unavailable.
- [Progressive Web Apps](https://awesome-repositories.com/f/web-development/progressive-web-apps.md) — Loads a minimal app shell that caches core assets and fetches dynamic content on demand.

### Development Tools & Productivity

- [REST API Clients](https://awesome-repositories.com/f/development-tools-productivity/rest-apis/rest-api-clients.md) — Encapsulates Mastodon REST API calls behind a thin client layer handling authentication and pagination.

### DevOps & Infrastructure

- [Web Client Self-Hosting](https://awesome-repositories.com/f/devops-infrastructure/self-hosted-applications/client-application-self-hosting/web-client-self-hosting.md) — Builds and runs a containerized instance of the web client using a provided Dockerfile with persistent storage. ([source](https://cdn.jsdelivr.net/gh/elk-zone/elk@main/README.md))
- [Docker Deployments](https://awesome-repositories.com/f/devops-infrastructure/self-hosted-deployments/docker-deployments.md) — Ships a Dockerfile for containerized self-hosted deployment with persistent storage for user settings.

### Networking & Communication

- [Push Notification Listeners](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/notification-delivery-services/push-notification-providers/web-push-notifications/push-notification-listeners.md) — Subscribes to a push service and displays notifications from the server even when the app is not open. ([source](https://docs.elk.zone/pwa))
- [Web Push Notification Receivers](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/notification-delivery-services/push-notification-providers/web-push-notifications/web-push-notification-receivers.md) — Uses a service worker to receive push events and display notifications via the Notification API.

### Software Engineering & Architecture

- [Progressive Web Apps](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/reference-apps-and-blueprints/web-applications/progressive-web-apps.md) — A web application that can be installed on devices and works offline with native-like capabilities.
