ℹ️ Information about the project
🚩 Bugs, Issues, and other Important Information
🧰 Technologies that were used to create LEX
LEX (LazerEX) is a Lightweight, Open Source Frontend for Reddit written in Go.
The name "Lazer" is an intentional misspelling of the word "Laser"
Reddit has a lot of potential, but is purposely degraded.
Why? It was likely done to push their mobile app, which is kind of saddening.
The issues with Reddit currently are some of the following:
- NSFW is heavily blocked (even if the post is not actually NSFW)
- On mobile, Reddit won't even allow you to view ANY subreddit. Be it NSFW or Not.
You can even test this, by setting your user agent to something likeMozilla/5.0 (Android 13; Mobile; rv:68.0) Gecko/68.0 Firefox/112.0
- On mobile, Reddit won't even allow you to view ANY subreddit. Be it NSFW or Not.
- The UI is extremely slow, and unresponsive.
- To the point that it can take 20 seconds just to go back from a comment section.
- Too much bloat, and therefore the data usage is very high.
These issues can be observed on all browsers (for example: Chrome, Firefox, Brave, etc.)
These are some of the issues that LEX aims to fix.
- NSFW content is allowed, but only if you allow it.
- In the settings page (located at
http://localhost:9090/config
there is an option to enable NSFW subreddits, and posts.)
- In the settings page (located at
- Optional Javascript and Configurations.
- A lot of configurations, so you can use LEX as you want to!
Configurations include:- Enabling HLS Videos
- Enabling Infinite "Scroll"
- Enabling Gallery Navigation via Arrow Keys
- Allowing NSFW Subreddits and Posts
- Allowing Images from Unknown Sources
- Using Advanced Math to Re-size the Page
- Setting Preferred Image Resolutions
- A lot of configurations, so you can use LEX as you want to!
- No Ads.
Unfortunately, unlike other open source reddit frontends, LEX does not provide a demo website, and there are three ways to build/use LEX.
The only requirement to build the project is Go
If Go is installed, run the following commands in your terminal
git clone https://github.com/cmd777/lex.git &&
cd lex/cmd/lex &&
go get -u &&
go run main.go
That's everything! All you need to do next, is just navigate to http://localhost:9090/r/{your_favorite_subreddit}
LEX provides downloadable, pre-built binaries for all major operating systems, including Windows, Linux, and MacOS.
To install LEX via these automatically built binaries, go to the releases tab, and download the appropriate zip for your OS + ARCH, and extract it.
- For 32 bit Windows machines, download
lex-windows.zip
, then launch lex-i386-windows.exe - For 64 bit Windows machines, download
lex-windows.zip
, then launch lex-amd64-windows.exe
- For 32 bit Linux machines, download
lex-linux.zip
, then launch lex-i386-linux - For 64 bit Linux machines, download
lex-linux.zip
, then launch lex-amd64-linux
- For Intel MacOS machines, download
lex-darwin.zip
, then launch lex-amd64-darwin - For M1 MacOS machines, download
lex-darwin.zip
, then launch lex-arm64-darwin
That's everything! All you need to do next, is just navigate to http://localhost:9090/r/{your_favorite_subreddit}
* Pre-built binaries are published around every two weeks.
** This is not definitive, releases can be published earlier, or later, depending on functionality, and current it's current status. (example; a hotfix release would be published as soon as possible)
LEX can also be installed via the go install
command.
If you have at least go 1.16 or later
, you can run the following command:
go install github.com/cmd777/lex/cmd/lex@latest
which will install the latest version of LEX.
Afterwards, simply run lex
in your terminal, and that's everything!
Note
you may need to add
export PATH=$PATH:$(go env GOPATH)/bin
to your.profile
file to be able to use the commandlex
!
If you wish to uninstall LEX, simply run the following command:
rm $(go env GOPATH)/bin/lex
Chrome | Edge | Safari | Firefox | Opera | IE |
---|---|---|---|---|---|
26> | 19> | 6.1> | 49> | 15> | 11(?) |
Legend
>
-> Any equal, or newer version is supported
?
-> Unsure of compatability
X
-> Not compatible
-
-> No newer version required
The table displays the recommended versions for browsers, though older versions may be compatible to an extent.
Based on Can I Use data
Windows | Linux | macOS |
---|---|---|
Windows 7 or newer | Kernel version 2.6.32 or newer | macOS 10.13 High Sierra or newer |
The table displays the required minimum versions for operating systems.
LEX does not require administrator, or firewall privileges.
Based on the Go Documentation
LEX is still in early stages of development, a lot of features are missing, and it might be prone to bugs.
I try to fix most of the critical bugs before pushing any changes, but if you find a bug, or have any questions, feel free to create an issue for it.
For the features that are planned to be added, or the things that need to be fixed, you can once again, take a look at the issues tab
I work on LEX in my free time as a hobby, therefore development may be slow, thank you for your patience!
LEX is not affiliated with, sponsored, or endorsed by Reddit.
All content that is displayed on LEX has been sourced from Reddit. LEX does not host any of the content.
In case of any issues with a post, such as copyright infringement, trademark infringement, or violation of Reddit's community rules, the reports should be directed to Reddit.
Go ➡️ Programming Language
https://github.com/golang/go/blob/master/LICENSEHumanize (go-humanize) ➡️ Formatting time, numbers, etc.. to Human Friendly Units
https://github.com/dustin/go-humanize/blob/master/LICENSEFiber ➡️ HTTP Web Framework
https://github.com/gofiber/fiber/blob/master/LICENSE(Fiber) Utils ➡️ Common functions with better performance
https://github.com/gofiber/utils/blob/master/LICENSEGo-JSON ➡️ Fast JSON Decoder
https://github.com/goccy/go-json/blob/master/LICENSEBluemonday ➡️ HTML Sanitizer
https://github.com/microcosm-cc/bluemonday/blob/main/LICENSE.mdBlackfriday ➡️ Markdown Processor
https://github.com/russross/blackfriday/blob/master/LICENSE.txtSASS ➡️ CSS Extension
https://github.com/sass/sass/blob/main/LICENSEAlso used to create LEX: