LemmyNet/lemmy-ui

The official web app for lemmy.

CSS

1,013

3,484 commits

updated Oct 7, 2026

See the code

README

GitHub tag (latest SemVer) Build Status GitHub issues Docker Pulls Translation status License GitHub stars

Lemmy UI

A link aggregator and forum for the fediverse.

Join Lemmy · Documentation · Matrix Chat · Report Bug · Request Feature · Releases · Code of Conduct

About The Project

DesktopMobile
desktopmobile

Lemmy is similar to sites like Reddit, Lobste.rs, or Hacker News: you subscribe to forums you're interested in, post links and discussions, then vote, and comment on them. Behind the scenes, it is very different; anyone can easily run a server, and all these servers are federated (think email), and connected to the same universe, called the Fediverse.

For a link aggregator, this means a user registered on one server can subscribe to forums on any other server, and can have discussions with users registered elsewhere.

It is an easily self-hostable, decentralized alternative to Reddit and other link aggregators, outside of their corporate control and meddling.

Each Lemmy server can set its own moderation policy; appointing site-wide admins, and community moderators to keep out the trolls, and foster a healthy, non-toxic environment where all can feel comfortable contributing.

You can find more information in the Backend Repository.

Development

You need to have pnpm installed. Then run the following:

git clone https://github.com/LemmyNet/lemmy-ui.git --recursive
cd lemmy-ui
pnpm install
LEMMY_UI_BACKEND=https://voyager.lemmy.ml pnpm dev

Finally open http://localhost:1234 in your browser. This uses the public test instance https://voyager.lemmy.ml/ as backend. For more details such as developing with a locally compiled Lemmy backend, read the documentation.

Configuration

The following environment variables can be used to configure lemmy-ui:

ENV_VARtypedefaultdescription
LEMMY_UI_HOSTstring0.0.0.0:1234The IP / port that the lemmy-ui isomorphic node server is hosted at.
LEMMY_UI_FRONTENDstringundefinedThe base url where browsers can reach the lemmy-ui server, is inferred from request headers when undefined. (Protocol is optional)
LEMMY_UI_BACKENDstringlocalhost:8536The base url for lemmy-ui in the browser to connect to the lemmy backend server. (Protocol is optional)
LEMMY_UI_BACKEND_INTERNALstringLEMMY_UI_BACKENDThe base url for the lemmy-ui server to connect to the lemmy backend server. (Protocol is optional)
LEMMY_UI_HTTPSboolfalseUses https:// as the default protocol for base urls.
LEMMY_UI_EXTRA_THEMES_FOLDERstring./extra_themesA location for additional lemmy css themes.
LEMMY_UI_DISABLE_CSPboolfalseDisables CSP security headers
LEMMY_UI_CUSTOM_HTML_HEADERstringundefinedInjects a custom script into <head>.

Debugging

These environment variables are for debugging purposes and are disabled by default for production builds, but can be enabled explicitly.

ENV_VARtypedefaultevaluationdescription
LEMMY_UI_ERUDAbooltrueruntimeEnables Eruda, the console for mobile browsers. (In production Eruda partially violates the CSP, but remains useful.)
LEMMY_UI_SOURCE_MAPSbooltruebuildtimeGives browsers and node the ability to report accurate stack traces.
LEMMY_UI_SERVE_CSS_MAPSboolfalseruntimeServes .css.map files when requested. Map files are untracked, run pnpm themes:build to generate and update them.
LEMMY_UI_COMPRESSIONbooltrueruntimeEnables response body compression, useful to test on slow connections.

Credits

Icons from Feather Icons.

Code template based off of MrFoxPro's inferno-isomorphic-template.

inferno
lemmy
link-aggregator
reddit

LemmyNet/lemmy-ui

The official web app for lemmy.

CSS

1,013

3,484 commits

updated Oct 7, 2026

See the code

README

GitHub tag (latest SemVer) Build Status GitHub issues Docker Pulls Translation status License GitHub stars

Lemmy UI

A link aggregator and forum for the fediverse.

Join Lemmy · Documentation · Matrix Chat · Report Bug · Request Feature · Releases · Code of Conduct

About The Project

DesktopMobile
desktopmobile

Lemmy is similar to sites like Reddit, Lobste.rs, or Hacker News: you subscribe to forums you're interested in, post links and discussions, then vote, and comment on them. Behind the scenes, it is very different; anyone can easily run a server, and all these servers are federated (think email), and connected to the same universe, called the Fediverse.

For a link aggregator, this means a user registered on one server can subscribe to forums on any other server, and can have discussions with users registered elsewhere.

It is an easily self-hostable, decentralized alternative to Reddit and other link aggregators, outside of their corporate control and meddling.

Each Lemmy server can set its own moderation policy; appointing site-wide admins, and community moderators to keep out the trolls, and foster a healthy, non-toxic environment where all can feel comfortable contributing.

You can find more information in the Backend Repository.

Development

You need to have pnpm installed. Then run the following:

git clone https://github.com/LemmyNet/lemmy-ui.git --recursive
cd lemmy-ui
pnpm install
LEMMY_UI_BACKEND=https://voyager.lemmy.ml pnpm dev

Finally open http://localhost:1234 in your browser. This uses the public test instance https://voyager.lemmy.ml/ as backend. For more details such as developing with a locally compiled Lemmy backend, read the documentation.

Configuration

The following environment variables can be used to configure lemmy-ui:

ENV_VARtypedefaultdescription
LEMMY_UI_HOSTstring0.0.0.0:1234The IP / port that the lemmy-ui isomorphic node server is hosted at.
LEMMY_UI_FRONTENDstringundefinedThe base url where browsers can reach the lemmy-ui server, is inferred from request headers when undefined. (Protocol is optional)
LEMMY_UI_BACKENDstringlocalhost:8536The base url for lemmy-ui in the browser to connect to the lemmy backend server. (Protocol is optional)
LEMMY_UI_BACKEND_INTERNALstringLEMMY_UI_BACKENDThe base url for the lemmy-ui server to connect to the lemmy backend server. (Protocol is optional)
LEMMY_UI_HTTPSboolfalseUses https:// as the default protocol for base urls.
LEMMY_UI_EXTRA_THEMES_FOLDERstring./extra_themesA location for additional lemmy css themes.
LEMMY_UI_DISABLE_CSPboolfalseDisables CSP security headers
LEMMY_UI_CUSTOM_HTML_HEADERstringundefinedInjects a custom script into <head>.

Debugging

These environment variables are for debugging purposes and are disabled by default for production builds, but can be enabled explicitly.

ENV_VARtypedefaultevaluationdescription
LEMMY_UI_ERUDAbooltrueruntimeEnables Eruda, the console for mobile browsers. (In production Eruda partially violates the CSP, but remains useful.)
LEMMY_UI_SOURCE_MAPSbooltruebuildtimeGives browsers and node the ability to report accurate stack traces.
LEMMY_UI_SERVE_CSS_MAPSboolfalseruntimeServes .css.map files when requested. Map files are untracked, run pnpm themes:build to generate and update them.
LEMMY_UI_COMPRESSIONbooltrueruntimeEnables response body compression, useful to test on slow connections.

Credits

Icons from Feather Icons.

Code template based off of MrFoxPro's inferno-isomorphic-template.

inferno
lemmy
link-aggregator
reddit

Significant stargazers

Joe Lencioni

593 followers · starred Jun 2023

Rom Grk

506 followers · starred Jul 2023

Emilia Bopp

64 followers · starred Jun 2023

John Haley

109 followers · starred Aug 2024