• Stars
    star
    175
  • Rank 213,802 (Top 5 %)
  • Language Svelte
  • License
    GNU Affero Genera...
  • Created about 1 year ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A beautiful and convenient desktop-first alternate web UI for Lemmy.
logo

Alexandrite

Alexandrite is a beautiful desktop-first alternative web UI for Lemmy, a social link aggregator and discussion forum for the Fediverse.

Alexandrite comes packed full of features!

  • Infinite scrolling
  • View posts in an overlay or side-by-side with the feed in a second column so you don't lose your spot
  • Customizable theme hue
  • Powerful account switcher, login to different accounts across the same or different instances simultaneously in different browser tabs
  • Most mod tools
  • Supports most markdown formatting

Support Development

A lot of time and effort has gone into Alexandrite. If you would like to support development you can Buy Me a Coffee. I really appreciate all the support!

Self Hosting

Alexandrite supports self hosting with a few configuration options. Check out the example environment variable config to see what options can be passed as arguments to docker.

Using Docker

The easiest way to host Alexandrite would be using a prebuilt image, or building from source using the provided Dockerfile.

The app listens inside the container to port 3000 and doesn't provide HTTPs, you'll probably want to configure your own reverse proxy between the internet and Alexandrite to provide HTTPS.

Run using:

docker run -p 3000:3000 ghcr.io/sheodox/alexandrite:latest

Or, with some customized options:

docker run -p 3000:3000 --env 'ALEXANDRITE_DEFAULT_INSTANCE=programming.dev' ghcr.io/sheodox/alexandrite:latest

Or as part of a docker compose setup:

version: '3.7'
services:
  # ...
  alexandrite:
    image: ghcr.io/sheodox/alexandrite:latest
    ports:
      - 3000:3000
    environment:
      # example config only allowing logins to example.com
      # with no links to Lemmy docs, or an instance list
      ALEXANDRITE_DEFAULT_INSTANCE: example.com
      ALEXANDRITE_WELCOME_LEMMY_HELP: false
      ALEXANDRITE_WELCOME_INSTANCE_HELP: false
      ALEXANDRITE_FORCE_INSTANCE: example.com

Serverless

You can alternatively host Alexandrite on the serverless platforms supported by Sveltekit's adapter-auto. It should be pretty low on resource usage, as SSR is disabled.

Contributing

PRs are welcome! The app is written in Svelte using Sveltekit, running with SSR disabled, as all interactions with Lemmy are done client-side using lemmy-js-client.

One small warning, I really enjoy figuring out how things work and doing things myself for the learning experience instead of using third party libraries. The UI is written using my own very sparsely documented UI/component library that is a mix of pre-built components and Bootstrap/Tailwind-like utility classes. The virtualized list renderer is also custom built.

More Repositories

1

jimaku-player

Use your own subtitles on VRV or Crunchyroll to learn Japanese!
TypeScript
93
star
2

projectlaunch.nvim

Neovim plugin for launching commands in your projects
Lua
29
star
3

context.reviews

Learn Japanese by studying the words you find reading native materials!
Svelte
12
star
4

konshuu

A todo tracker focusing on your work and personal tasks a week at a time.
Svelte
8
star
5

wellread

Read without losing the plot. Well Read helps you organize your notes about books you're reading, so you're never lost when starting a new volume.
Go
5
star
6

japanese-userscripts

A collection of my Tampermonkey userscripts for helping with studying Japanese. 日本語の勉強を手軽に!
JavaScript
4
star
7

seating-chart

A website to plan your wedding reception seating chart with a nice drag and drop UI
Svelte
4
star
8

jisho-quickfire

Express app for quick and convenient word lookups in succession using Jisho.org.
CSS
4
star
9

dotfiles

Lua
3
star
10

markdown-map.nvim

Popup table of contents for markdown file headings
Lua
3
star
11

mantra

Occasionally remind yourself of things.
Go
3
star
12

harbinger

Self-hosted uptime tracking and logging with Discord webhook notifications
Go
3
star
13

oitsuku

A tool for updating multiple node dependencies to the latest version at once
Go
3
star
14

telepathy

A WIP ad hoc file transfer tool
Go
2
star
15

sheodox.com

TypeScript
2
star
16

bacon

Typescript & Electron app to compute the number of clicks to get between two Wikipedia pages.
TypeScript
2
star
17

overseer-dashboard

Light control and your day at a glance, meant for wall mounted touchscreens. Built using PyQt5
Python
2
star
18

nr

Interactive "npm run"
Go
2
star
19

Overseer

Tools for hosting LAN parties!
TypeScript
1
star
20

dungeons

just some bad canvas game
JavaScript
1
star
21

overseer-lights-button

Turn on lights with Overseer using a GPIO wired button on a Raspberry Pi.
Python
1
star
22

panda3d-platformer

Game dev practice making a mario inspired 2d platformer in Panda3D
Python
1
star
23

nier-quote-scrolling-led-matrix

Show a bunch of Nier: Automata quotes on an Adafruit 16x32 display.
C++
1
star
24

onaji

Stringify and parse JSON with support for more data types.
TypeScript
1
star
25

sheodox-base-app

Boilerplate for a web application using Docker, Docker Compose, Postgres, Node, Typescript, Svelte, Express, TypeORM, and sheodox-ui to help me start new projects quicker.
JavaScript
1
star
26

lister

An organizable list tracking application.
JavaScript
1
star
27

skungeons

Add floating dungeons to Minecraft! (requires Forge)
Java
1
star
28

overseer-echo

Backup server used with Overseer for backing up and distributing game files so they don't need to be re-downloaded.
Go
1
star
29

sshmon

Simple user interface for accessing SSH sessions using GTK+
Python
1
star
30

overseer-backup

scheduled backup for overseer files
JavaScript
1
star
31

game-voter

A minimal Express site to decide what game to LAN!
JavaScript
1
star
32

dice-chest

Plan things with just the broad strokes.
Svelte
1
star
33

display-arrange

Easily favorite and restore screen arrangements.
Python
1
star
34

fly-demo

Panda3D demo scene with first person mouselook/keyboard controls
Python
1
star
35

fetch-visualizer

Sorry
Svelte
1
star
36

gdq-speedrun-reminder-bot

A self-hosted site to notify you over Discord when GDQ speedruns you're interested in are about to start.
TypeScript
1
star