Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1291 commits
Select commit Hold shift + click to select a range
1a898d6
make resize observer
MathMan05 Jan 29, 2026
1c7db25
fix slight bug
MathMan05 Jan 29, 2026
091d064
add todo
MathMan05 Jan 29, 2026
60f9397
Localisation updates from https://translatewiki.net.
translatewiki Jan 29, 2026
524ae2d
message rendering updates
MathMan05 Jan 30, 2026
c47c24d
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Jan 30, 2026
63c2cf4
fixes
MathMan05 Jan 31, 2026
70b1295
more fixes
MathMan05 Jan 31, 2026
93fbfa6
fixes
MathMan05 Feb 4, 2026
2c05b6b
more fixes
MathMan05 Feb 4, 2026
0737279
first thread commits
MathMan05 Feb 4, 2026
8032901
unread CSS fixes
MathMan05 Feb 4, 2026
9071414
keep track of more data
MathMan05 Feb 4, 2026
05a4142
Localisation updates from https://translatewiki.net.
translatewiki Feb 5, 2026
e93a174
initial forum work
MathMan05 Feb 5, 2026
6b3fa52
search updates
MathMan05 Feb 6, 2026
bd92a65
creating posts in forums support
MathMan05 Feb 7, 2026
cb0c66b
check some settings
MathMan05 Feb 7, 2026
af20135
less settings for threads
MathMan05 Feb 7, 2026
02a2339
can't change thread type
MathMan05 Feb 7, 2026
cdef1c8
can't change forums either
MathMan05 Feb 7, 2026
ccbbeea
tag management
MathMan05 Feb 7, 2026
db95a42
forum icons
MathMan05 Feb 7, 2026
6b36100
forum creation
MathMan05 Feb 7, 2026
a74b19a
mention highlighting fix
MathMan05 Feb 7, 2026
4de3f8a
reset backoff on ready
MathMan05 Feb 7, 2026
720af19
edit tags
MathMan05 Feb 7, 2026
c26b35d
fix perm check
MathMan05 Feb 7, 2026
6161b5f
another perm check
MathMan05 Feb 7, 2026
d274312
fix channel dupe issue
MathMan05 Feb 7, 2026
263931c
more dynamic threads
MathMan05 Feb 7, 2026
6e0594d
threads do not need to be ordered
MathMan05 Feb 7, 2026
7184929
fix mention CSS
MathMan05 Feb 7, 2026
3b25d48
remove async from a function
MathMan05 Feb 7, 2026
1256b27
fix some scrolling issues
MathMan05 Feb 7, 2026
6034f42
snap to bottom a bit more
MathMan05 Feb 7, 2026
c9a1c29
scroller fixes
MathMan05 Feb 7, 2026
83ed028
fix some perf issues
MathMan05 Feb 7, 2026
ab03df2
fix firefox channel drag bug
MathMan05 Feb 7, 2026
553005f
Merge pull request #235 from MathMan05/forums
MathMan05 Feb 7, 2026
cfa224d
unreads only for visable threads
MathMan05 Feb 7, 2026
1c0b410
really make sure its set
MathMan05 Feb 7, 2026
e406496
debugging
MathMan05 Feb 8, 2026
9dbea5c
do not let that happen
MathMan05 Feb 8, 2026
74873fb
only show button for threads
MathMan05 Feb 8, 2026
49b8615
maybe fix thread bug?
MathMan05 Feb 8, 2026
0f6aba3
clear the usermap
MathMan05 Feb 8, 2026
1d9a7c9
fix typo
MathMan05 Feb 8, 2026
75d0e34
Localisation updates from https://translatewiki.net.
translatewiki Feb 9, 2026
a3a3a8c
toggle invites status
MathMan05 Feb 9, 2026
f800aac
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Feb 9, 2026
f5ad9bc
only one member at a time
MathMan05 Feb 9, 2026
d33e46f
bug
MathMan05 Feb 9, 2026
5b702af
Making cover-over reconnecting go over Dialog boxes
Rgoplay Feb 10, 2026
4feea34
Fixing account switcher z-index
Rgoplay Feb 10, 2026
cfccf8e
don't sort for new discover in spacebar
MathMan05 Feb 11, 2026
ed1b6e4
Merge pull request #242 from Rgoplay/loading-cover-over
MathMan05 Feb 11, 2026
d1af5ef
error pop up
MathMan05 Feb 11, 2026
0b9c5a5
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Feb 11, 2026
ee2af0a
no more odd reply line
MathMan05 Feb 11, 2026
84b54b1
update theme imedietly
MathMan05 Feb 11, 2026
bf66d53
disable gradient colors setting
MathMan05 Feb 11, 2026
69a77c3
fix gif animate settings
MathMan05 Feb 11, 2026
2c89548
minor style adjustments
ygg2 Feb 12, 2026
fa12f0a
Localisation updates from https://translatewiki.net.
translatewiki Feb 12, 2026
c7560af
Update en.json
TheGeekno72 Feb 12, 2026
3ef6ac8
swap reply and edit buttons
MathMan05 Feb 12, 2026
9f5dc68
rename group menu
MathMan05 Feb 12, 2026
c7c6936
Update en.json
TheGeekno72 Feb 12, 2026
d38ae12
wow
MathMan05 Feb 12, 2026
57220a4
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Feb 12, 2026
a054dbf
Update en.json
TheGeekno72 Feb 12, 2026
fa90352
Update en.json
TheGeekno72 Feb 12, 2026
bbb0823
yay no more bug
MathMan05 Feb 13, 2026
0a7be8f
round settings pfp
MathMan05 Feb 13, 2026
2617510
Merge pull request #266 from TheGeekno72/main
MathMan05 Feb 13, 2026
16f3d61
Merge pull request #264 from ygg2/main
MathMan05 Feb 13, 2026
5ffe3d7
read near empty channels
MathMan05 Feb 13, 2026
362dba3
fix another scroller bug
MathMan05 Feb 13, 2026
884da3e
fix bug (hurry!)
MathMan05 Feb 13, 2026
54ecec5
fix a few thing
MathMan05 Feb 13, 2026
57b9d19
oops
MathMan05 Feb 13, 2026
c3efc00
focus on ghosts
MathMan05 Feb 13, 2026
278ab47
oops, good
MathMan05 Feb 13, 2026
4ff70bd
fix CDN urls
MathMan05 Feb 13, 2026
5fa9ec9
banner -> banners
MathMan05 Feb 13, 2026
aa94a38
do not flash for that + new function
MathMan05 Feb 13, 2026
c8a46ad
Update en.json
TheGeekno72 Feb 13, 2026
41f8796
Merge pull request #270 from TheGeekno72/main
MathMan05 Feb 13, 2026
397ec97
Update en.json
TheGeekno72 Feb 14, 2026
0075065
fix eating space bug
MathMan05 Feb 14, 2026
8630cc9
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Feb 14, 2026
1b74a00
Update en.json
TheGeekno72 Feb 14, 2026
3f764ae
Update en.json
TheGeekno72 Feb 14, 2026
e81f7ba
Update en.json
TheGeekno72 Feb 14, 2026
9a4d2bd
pinned message box + bottom card hr adjustments
ygg2 Feb 14, 2026
09e2d2f
Update en.json
TheGeekno72 Feb 14, 2026
a1b895c
don't update members from bugged member list
MathMan05 Feb 14, 2026
a3ab19d
template fix
MathMan05 Feb 14, 2026
91225ce
Update en.json
TheGeekno72 Feb 15, 2026
e2fa1b6
Make new guilds draggable
Rgoplay Feb 15, 2026
54e1484
Localisation updates from https://translatewiki.net.
translatewiki Feb 16, 2026
f1e7bee
fix quote bug
MathMan05 Feb 16, 2026
17a5617
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Feb 16, 2026
8bde2cf
allow non-standerd spaces
MathMan05 Feb 17, 2026
dac2cc1
Fixes creating invisible scroll on form error
Rgoplay Feb 17, 2026
9105354
Reverting overflow change, final fix
Rgoplay Feb 17, 2026
5b2ce00
Merge pull request #280 from Rgoplay/make-new-guilds-draggable
MathMan05 Feb 18, 2026
87d5522
Merge pull request #273 from ygg2/main
MathMan05 Feb 18, 2026
953eb49
Localisation updates from https://translatewiki.net.
translatewiki Feb 19, 2026
eb8d205
fix accent color bug
MathMan05 Feb 19, 2026
e6a7508
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Feb 19, 2026
52b177f
Added response code verification when adding a new channel
Rgoplay Feb 19, 2026
3f78ecf
Localisation updates from https://translatewiki.net.
translatewiki Feb 23, 2026
81327a3
mobile send update
MathMan05 Feb 23, 2026
5efb499
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Feb 23, 2026
7758e7b
no more weird proxy
MathMan05 Feb 23, 2026
62aab92
make jumps happen
MathMan05 Feb 23, 2026
48a0077
get rid of log
MathMan05 Feb 24, 2026
f7d1902
Localisation updates from https://translatewiki.net.
translatewiki Feb 26, 2026
b835320
initial v2 work
MathMan05 Feb 27, 2026
dce0d03
z-index issues, yay
MathMan05 Mar 1, 2026
f4220ba
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Mar 1, 2026
50fbe6b
more component type
MathMan05 Mar 2, 2026
2a58d85
Localisation updates from https://translatewiki.net.
translatewiki Mar 2, 2026
4a8bc7b
no pings in hidden channels
MathMan05 Mar 2, 2026
4fd597d
show error
MathMan05 Mar 2, 2026
fa8fe83
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Mar 2, 2026
0843d7c
Merge pull request #287 from Rgoplay/fix-switching-acc-missing-channel
MathMan05 Mar 3, 2026
05fa45e
Update en.json
TheGeekno72 Mar 3, 2026
9a2a694
Merge pull request #272 from TheGeekno72/main
MathMan05 Mar 3, 2026
366ac71
Add support for signed attachment:// urls
stblr Feb 26, 2026
ca3e38a
correct perm checking
MathMan05 Mar 3, 2026
102dc65
Merge commit 'refs/pull/293/head' of https://github.com/MathMan05/Fermi
MathMan05 Mar 3, 2026
47469ac
fix minor screw up
MathMan05 Mar 3, 2026
ac7b847
fix another screw up
MathMan05 Mar 3, 2026
3043506
fixes
MathMan05 Mar 3, 2026
1139714
implement embed images
MathMan05 Mar 3, 2026
2513d0b
CDN paremiters
MathMan05 Mar 3, 2026
e2d5e05
make checks universal
MathMan05 Mar 3, 2026
662f0f3
remove yellow
MathMan05 Mar 3, 2026
3033eea
fix
MathMan05 Mar 3, 2026
d6deb5b
hopefully add tsc CI
MathMan05 Mar 3, 2026
4825208
export types to make tsc CI happy
MathMan05 Mar 3, 2026
4493d7c
don't rely on Tenor in translation string
MathMan05 Mar 3, 2026
f1fffc0
add function for resolving stickers for future use
MathMan05 Mar 4, 2026
f05c53e
switch to op 40
MathMan05 Mar 4, 2026
a14f997
remove todo
MathMan05 Mar 4, 2026
a3c3072
fix animate on hover
MathMan05 Mar 4, 2026
48d293b
avitar decorations
MathMan05 Mar 4, 2026
6f7a9c4
fix profiles
MathMan05 Mar 4, 2026
2f3de35
decoration setting
MathMan05 Mar 4, 2026
fa3324a
listen before read
MathMan05 Mar 4, 2026
0d2366b
oops
MathMan05 Mar 4, 2026
48d92a0
narrow thread check
MathMan05 Mar 4, 2026
a297256
harder to screw up invites
MathMan05 Mar 4, 2026
7cfc5e5
goof
MathMan05 Mar 4, 2026
242c7e7
accent color bug fix
MathMan05 Mar 4, 2026
4c0c9a1
Fix Fermi bugs
MathMan05 Mar 4, 2026
9150a3f
focus errors
MathMan05 Mar 4, 2026
6507e5e
copy link
MathMan05 Mar 4, 2026
959dd3e
oop
MathMan05 Mar 4, 2026
492599f
welcome screen
MathMan05 Mar 4, 2026
66e92b8
mobile sticker width + timestamp baseline
ygg2 Mar 5, 2026
2339a6d
Localisation updates from https://translatewiki.net.
translatewiki Mar 5, 2026
fd863af
oop
MathMan05 Mar 6, 2026
6864ccc
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Mar 6, 2026
05908ae
Merge remote-tracking branch 'upstream/main'
ygg2 Mar 6, 2026
2356762
make non-square pfps not stretch
ygg2 Mar 6, 2026
4e79cca
fix 2fa bug
MathMan05 Mar 6, 2026
b30bab3
match DM style to channel style
ygg2 Mar 7, 2026
d53a9d3
sorry, missed one part
ygg2 Mar 7, 2026
0f372ed
more light/white theme adjust
ygg2 Mar 7, 2026
e103b3a
fix perm checking
MathMan05 Mar 7, 2026
1abfd51
undo weird change
MathMan05 Mar 7, 2026
aa789fa
update readme for CF
MathMan05 Mar 7, 2026
270d7f6
Revert back fix + new fix for scrolling
Rgoplay Mar 8, 2026
7ec0905
Merge branch 'main' into username-friend-request-form-fix
Rgoplay Mar 8, 2026
4fe1903
fix baseline real
ygg2 Mar 9, 2026
bfa99ad
Merge remote-tracking branch 'upstream/main'
ygg2 Mar 9, 2026
de46663
Localisation updates from https://translatewiki.net.
translatewiki Mar 9, 2026
446fcbf
fix guild banner bug
MathMan05 Mar 12, 2026
c62b651
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Mar 12, 2026
83a7517
Merge remote-tracking branch 'upstream/main'
ygg2 Mar 12, 2026
8bb643f
Localisation updates from https://translatewiki.net.
translatewiki Mar 12, 2026
ea21626
TIL placeholder doesn't inherit text color
ygg2 Mar 13, 2026
87214c1
fix(client): address mobile keyboard auto-open and auto-scroll
Mar 13, 2026
3abd7cb
fix: restore 50 message offset context loading
Mar 14, 2026
06a513a
fix(client): ensure typebox is blurred on mobile when switching channels
Mar 14, 2026
9ae056b
hide gif/sticker/emoji when can't message
ygg2 Mar 14, 2026
316f601
Merge pull request #306 from Sigmabrogz/fix/mobile-keyboard-and-scroll
MathMan05 Mar 14, 2026
b19ac25
Merge pull request #308 from ygg2/remove-buttons-in-unallowed-channel
MathMan05 Mar 14, 2026
6b9ba40
Merge pull request #295 from ygg2/main
MathMan05 Mar 14, 2026
ad08616
Merge pull request #284 from Rgoplay/username-friend-request-form-fix
MathMan05 Mar 14, 2026
c03b1bd
Localisation updates from https://translatewiki.net.
translatewiki Mar 16, 2026
2d7ea86
better pos the comps
MathMan05 Mar 19, 2026
875ffb6
change edit placement
MathMan05 Mar 19, 2026
062999b
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Mar 19, 2026
f738c40
invite on register
MathMan05 Mar 19, 2026
5d35daa
fix IME input stuff
MathMan05 Mar 19, 2026
e81ec3f
fix dumb mobile bug
MathMan05 Mar 19, 2026
253f838
swipe to reply
MathMan05 Mar 19, 2026
09d3b60
better mobile guild profile editing
MathMan05 Mar 19, 2026
3356c7d
do a check
MathMan05 Mar 19, 2026
c30434e
Localisation updates from https://translatewiki.net.
translatewiki Mar 19, 2026
8990d0b
mobile send + remove entirely not just hide
ygg2 Mar 20, 2026
d9f861e
Merge pull request #311 from ygg2/remove-buttons-in-unallowed-channel
MathMan05 Mar 20, 2026
1c4688d
no slowmode, no problems
MathMan05 Mar 20, 2026
008f718
fix welcome
MathMan05 Mar 21, 2026
11a18ee
update pinned style
MathMan05 Mar 21, 2026
3455b58
better handle replies
MathMan05 Mar 21, 2026
4d3291b
Localisation updates from https://translatewiki.net.
translatewiki Mar 23, 2026
6164ec6
fix pin
ygg2 Mar 24, 2026
e03c1f5
Merge pull request #312 from ygg2/main
MathMan05 Mar 25, 2026
910caeb
Localisation updates from https://translatewiki.net.
translatewiki Mar 26, 2026
c3bb672
some WebRTC fixes
MathMan05 Mar 26, 2026
2041382
graphical update for VCs
MathMan05 Mar 27, 2026
2c6fdc3
fix pfp speaking in VC
MathMan05 Mar 27, 2026
1c6f64f
mic select
MathMan05 Mar 27, 2026
de56de7
volume slider
MathMan05 Mar 28, 2026
8734462
make SW cache more respectful
MathMan05 Mar 28, 2026
24c040b
VC fixes
MathMan05 Mar 28, 2026
18d0f78
dep: track package-lock.json
V3ntus Mar 28, 2026
8304864
old express deps that are no longer needed
MathMan05 Mar 28, 2026
a34dea7
Merge pull request #313 from V3ntus/dep-lock
MathMan05 Mar 28, 2026
3b97830
update lock
MathMan05 Mar 28, 2026
5e96ae4
is this why?
MathMan05 Mar 28, 2026
e8bb43c
uh?
MathMan05 Mar 28, 2026
7201154
mobile avatar decoration size
ygg2 Mar 29, 2026
c32d476
bot stamp should not multiline
ygg2 Mar 29, 2026
ec07d2d
match casing with en file
ygg2 Mar 29, 2026
3e53cad
Update en.json
TheGeekno72 Mar 29, 2026
a0c25dd
removed unneeded style
ygg2 Mar 29, 2026
a3a20c6
Merge pull request #315 from ygg2/main
MathMan05 Mar 29, 2026
19ebb65
Localisation updates from https://translatewiki.net.
translatewiki Mar 30, 2026
e08947c
fix viewing reactions
MathMan05 Mar 31, 2026
fb4c093
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Mar 31, 2026
e75192b
Merge pull request #316 from TheGeekno72/patch-1
MathMan05 Apr 2, 2026
d2ce07f
make guild menu adapt to actual perms
MathMan05 Apr 3, 2026
d26a8bc
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Apr 3, 2026
46dae8a
remove log
MathMan05 Apr 3, 2026
d627dd5
fix dm avatar decorations
MathMan05 Apr 3, 2026
2e62662
fix paste bug
MathMan05 Apr 4, 2026
6b791e0
Localisation updates from https://translatewiki.net.
translatewiki Apr 6, 2026
8838cee
fix group make menu
MathMan05 Apr 7, 2026
2490bd3
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Apr 7, 2026
51c9272
fix another menu
MathMan05 Apr 7, 2026
087e66e
Localisation updates from https://translatewiki.net.
translatewiki Apr 9, 2026
b086725
fix z-index bug
MathMan05 Apr 10, 2026
5601b40
Merge branch 'main' of https://github.com/MathMan05/Fermi
MathMan05 Apr 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
414 changes: 414 additions & 0 deletions .dependency-cruiser.cjs

Large diffs are not rendered by default.

38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Bug report
about: Create a report to help us improve.
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser: [e.g. Chrome, Safari]
- Browser Version: [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1, Android 16]
- Browser: [e.g. stock browser, safari]
- Browser Version: [e.g. 22]

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project.
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Example: I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
5 changes: 5 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Description
A description of the pull request.

# Related issues
Any related issues, delete if there are none.
18 changes: 18 additions & 0 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Docker Image CI

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:

build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Build the Docker image
run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)
20 changes: 20 additions & 0 deletions .github/workflows/tsc-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: TSC check CI

on:
push:
pull_request:

jobs:
tsc:
name: tsc
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: install node v22
uses: actions/setup-node@v1
with:
node-version: 22
- name: npm i
run: npm i
- name: tsc
run: tsc --noEmit
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,6 @@ uptime.json
.dist/
bun.lockb
src/webpage/translations/langs.js

build.js
dependency-graph.svg
13 changes: 13 additions & 0 deletions .swcrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"$schema": "https://swc.rs/schema.json",
"jsc": {
"parser": {
"syntax": "typescript",
"tsx": false
},

"target": "es2024"
},
"sourceMaps": true,
"minify": true
}
5 changes: 5 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Code of conduct
It's nothing complicated, I want to foster a nice community, if there's any issues feel free to contact me in any way you see fit, though please don't create problems for me. I'm just one person and I want to work on this project, not community management. I will likely start with a warning or two if any issues arise, though this is up to my (mathium05) sole discretion.
Generally follow https://docs.spacebar.chat/contributing/conduct/ and you should be fine. Do not try to pull technicalities, this is a FOSS project, not a court of law.

Happy coding!
1 change: 1 addition & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This ain't exactly rocket science, please just describe what you've done, and follow all normal steps, it may take a few days for me to get back to you, life happens. Just try to keep the pull requests fairly small, so adding one thing or fixing one thing, but you may fix multiple bugs in one patch if they're either related or small enough. These are all soft rules and I am going to be more lenient.
30 changes: 19 additions & 11 deletions CompressingImages.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,39 @@ This is for in the future when I want to compress more images or anyone else for
# Lossless

### https://squoosh.app/
good at reducing the pallet, a first step for images that have a limited number of colors, bad at actually compressing things though, for all formats except webp.
Good at reducing the pallet, a first step for images that have a limited number of colors, bad at actually compressing things though, for all formats except WEBP and PNG.

## PNGs:
good ratios, though not as good as other options, though better compatibility
Good ratios, though not as good as other options, though better compatibility.
### oxipng
*(you can also use through squoosh with the same results)*
Seems to be the best of all of the options, not sure if it's all you would need, but it did shrink pngs further than the other two tools afterwards.
```bash
oxipng -o max --strip all --alpha <filename here>
```
`all` may be replaced with `safe` if you want to be a bit safer.

### pngcrush
Good, but should be ran before optipng, but isn't as good as it, use in tandom
Good, but should be ran before optipng, but isn't as good as it, use in tandom.
### optipng
The best tool to really shrink pngs to be as small as they can be.
The second best tool to really shrink pngs to be as small as they can be.

## WEBP
it's better than png, though I have a feeling more could be done to compress these
It's better than png, though I have a feeling more could be done to compress these
### cwebp
so far this seems to be the best way to compress webp images with a command that kinda looks like this one
So far this seems to be the best way to compress WEBP images with a command that kinda looks like this one:
```bash
cwebp -lossless -z 9 in.webp -o out.webp
```
while for all other formats squoosh is not recommended, for webp it'll be identical due to cwebp using the same libary as squoosh.
While for all other formats squoosh is not recommended, for WEBP it'll be identical due to cWEBP using the same libary as squoosh.

## AVIF
As far as I can tell, this format just sucks at its job, at least for lossless images

## JPEGXL
Really good at compression size, though it's not supported anywhere outside of safari as of now.
Really good at compression size, though it's not supported anywhere outside of Safari as of now.
### cjxl
this command should do the trick for compressing
This command should do the trick for compressing:
```bash
cjxl input.png output.jxl -q 100 -e 10
```
Expand All @@ -35,6 +43,6 @@ cjxl input.png output.jxl -q 100 -e 10

## SVGs:
### https://svgomg.net/
great tool, if anyone knows how to squish them further, let me know, some manual work may go a long way to help shrink svgs, though I'm not doing that right now lol.
Great tool! If anyone knows how to squish them further, let me know! Some manual work may go a long way to help shrink SVGs, though I'm not doing that right now lol.

I may look into other formats soon as well, though these are the main two I'm currently using
I may look into other formats soon as well, though these are the main two I'm currently using.
18 changes: 18 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
FROM node:18-bullseye AS builder

WORKDIR /devel
RUN apt-get update ; apt-get upgrade -y ; apt-get install -y build-essential
COPY . .
RUN npm i ; npm run build

FROM node:20-alpine

EXPOSE 8080
WORKDIR /exec
RUN apk add --update nodejs npm
COPY --from=builder /devel/ .
RUN adduser -D jankclient

USER jankclient

CMD ["npm", "start"]
49 changes: 25 additions & 24 deletions InstanceInfo.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# How to add your instance to Jank Client
inside of webpage you'll see a file called `instances.json` in that file you'll need to add your instance and its information in the following format if you want your instance to be a part of the drop down.
# How to add your instance to Fermi Client
Inside of `webpage` you'll see a file called `instances.json` in that file you'll need to add your instance and its information in the following format if you want your instance to be a part of the dropdown.
```
{
"name":<name>,
"description"?:<short description>,
"description"?:<A short description>,
"descriptionLong"?:<A description for the instance that can be longer>,
"image"?:<URL to image repersenting your instance>,
"image"?:<URL to image representing your instance>,
"url"?:<The URL that can be used to get your wellknown>,
"language":<what language your server is in>,
"country":<what country your server is in>,
"display":<true or false depending on wether it should display>,
"language":<What language your server is in>,
"country":<What country your server is in>,
"display":<True or false depending on wether it should display>,
"urls"?:{
"wellknown":<wellknown URL>,
"api":<API URL>,
Expand All @@ -19,26 +19,27 @@ inside of webpage you'll see a file called `instances.json` in that file you'll
},
"contactInfo"?:{
"discord"?:<Discord @>,
"github"?:<github profile URL>,
"email"?:<email address>,
"spacebar":?:<spacebar username>,
"matrix"?:<matrix account>,
"mastodon"?:<mastodon account>
"github"?:<Github profile URL>,
"email"?:<Email address>,
"spacebar":?:<Spacebar username>,
"matrix"?:<Matrix account>,
"mastodon"?:<Mastodon account>
}
}
```
anything with a `?` in-front of its `:` are optional, though you must either include `"URL"` or `"URLs"`, but you may include both, though the client will most likely ignore `"URLs"` in favor of `"URL"`, though it may use `"URLs"` as a fallback if `"URL"` does not resolve, do not rely on this behavior.
wellknown should be a url that can resolve the wellknown, but it should only be the base URL and not the full wellknown url.
Anything with a `?` in-front of its `:` are optional, though you must either include `"URL"` or `"URLs"`, but you may include both, though the client will most likely ignore `"URLs"` in favor of `"URL"`, though it may use `"URLs"` as a fallback if `"URL"` does not resolve, do not rely on this behavior.
`wellknown` should be a url that can resolve, but it should only be the base URL and not the full wellknown URL.
Some of these values may not be used right now, though they will likely be used in the future, so feel free to fill out what you like, though the more you fill out the more information we can give the users about your instance in the future.
language should be [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1_codes).
Country should be [ISO 8166-2 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
You can also add yourself to [this](https://github.com/spacebarchat/spacebarchat/tree/master/instances) list, and you should, though there are some disadvantages to only being in that list
`language` should be [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1_codes).
`country` should be [ISO 8166-2 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
You can also add yourself to [this](https://github.com/spacebarchat/spacebarchat/tree/master/instances) list, and you should, though there are **some disadvantages** to only being in that list such as not being on the Fermi Discovery list which shows Guilds more higher up on the Fermi client, etc.

# Questions
## Do I have to do this to let Jank Client connect to my server?
No, you may choose to not do this, this just makes it easier for people using Jank Client to find and use your instance as it's in the dropdown menu for instances, though the user may enter any instance they please.
## If my instance isn't spacebar is that allowed to be entered?
If it's spacebar compatable, yes it may be entered, though if there are too many incompatablities, it may not be included, or may need a warning of sorts.
## I'm hosting my own instance of spacebar and would like to change the defualt instance on my instance of Jank Client to my own instance.
## Do I have to do this to let Fermi Client connect to my server?
No, you may choose to not do this, this just makes it easier for people using Fermi Client to find and use your instance as it's in the dropdown menu for instances, though the user may enter any instance they please.
## If my instance isn't Spacebar is that allowed to be entered?
If it's Spacebar compatible then yes, it may be entered. Though if there are **too many incompatibilities** however, it may not be included, or may need a warning of sorts.
## I'm hosting my own instance of Spacebar and would like to change the default instance on my instance of Fermi Client to my own instance.
Just change the first entry in the list to your own, and it should connect without issue.
## Why would I put my instance in this list over the official spacebar list?
While putting your instance in the other list will get it to show up on jank client, this list does have more settings, and will show up earlier in the results, though either list will work to get in the dropdown menu
## Why would I put my instance in this list over the official Spacebar list?
While putting your instance in the other list will get it to show up on Fermi client, this list does have more settings, and will show up earlier in the results, though either list will work to get in the dropdown menu.
35 changes: 24 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,37 @@
# Jank Client
Jank Client is a [Spacebar](https://spacebar.chat) Client written in TS, HTML, and CSS.
# Fermi
Fermi is a [Spacebar](https://spacebar.chat) Client written in TS, HTML, and CSS.

To run it, clone the repo and do `npm install`, then
`node index.js`
or do the equivalent with bun
![](src/webpage/home/SS1.webp)

To build it, clone the repo and run `npm install`, then `npm run build`
To run it, use `npm start`
or do the equivalent with bun.

Both [Bun](https://bun.sh) and [Node.js](https://nodejs.org) are supported, and should function as expected.

To access Jank Client after starting, simply go to http://localhost:8080/login and either register a new account, or log in with your email and password.
To access Fermi after starting, simply go to http://localhost:8080/login and either register a new account, or log in with your email and password.

If there are any issues please report them either here, or to me dirrectly on spacebar
## Adding instances to the dropdown
Please see [this](https://github.com/MathMan05/JankClient/blob/main/InstanceInfo.md) for how to add an instance to the dropdown picker
Please see [this](https://github.com/MathMan05/Fermi/blob/main/InstanceInfo.md) for how to add an instance to the dropdown picker.
## How to statically host Fermi
[Click here](./howToStaticallyHost.md)
## RoadMap
You can view the current roadmap on https://github.com/users/MathMan05/projects/1.
## AI Code
AI code due to not being GPLv3 compatable is not allowed in this repo. I thought this didn't need to be said, but it doesn't.
AI code due to not being GPLv3 compatable is not allowed in this repo. I thought this didn't need to be said, but it does.
And to be clear, *any* use of AI is not allowed in Fermi.
## Link
The official SpaceBar server for Jank Client https://jankclient.greysilly7.xyz/invite/USgYJo?instance=https%3A%2F%2Fspacebar.chat
The official Spacebar server for Fermi: https://fermi.chat/invite/USgYJo?instance=https%3A%2F%2Fspacebar.chat

The current hosted instance of Fermi: https://fermi.chat/

old invite for the official client https://dev.app.spacebar.chat/invite/USgYJo
## Star History

The current hosted instance of JankClient https://jankclient.greysilly7.xyz/
<a href="https://www.star-history.com/#MathMan05/Fermi&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=MathMan05/Fermi&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=MathMan05/Fermi&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=MathMan05/Fermi&type=Date" />
</picture>
</a>
14 changes: 14 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Security Policy

## Supported Versions

Currently, I only support the most up to date version of Fermi client, there are no stable releases, but this is planned for in the future

| Version | Supported |
| ------- | ------------------ |
| main | :white_check_mark: |


## Reporting a Vulnerability

If there's an issue please disclose it responsibly to me, or here on Github privately.
Loading