Commit graph

12014 commits

Author SHA1 Message Date
Nitin
2df72cc692
docs(example.env): improve clarity of docker/example.env config for self-hosting (@nitin-is-me) (#6777)
### Description

Improved the `docker/example.env` file to make it more beginner-friendly
and easier to configure for self-hosters.

Changes made:
- Added section headers for clarity (e.g. Required Config, Firebase
Config, etc.)
- Clarified which settings are optional (Firebase, email, ports)
- Added better inline comments explaining each env variable
- Improved formatting and spacing for better readability

---

### Checks

- [x] Make sure the PR title follows the Conventional Commits standard.
- [ ] Adding quotes? (N/A)
- [ ] Adding a language? (N/A)  
- [ ] Adding a theme? (N/A)  
- [ ] Adding a layout? (N/A)  
- [x] Check if any open issues are related – None that I found

---

### Closes

N/A
2025-07-25 14:15:33 +02:00
nafets-st
2af1f7901a
fix(quotes): code_java compilation fixes (@nafets-st) (#6778)
### Description

Fixes some compilation issues in the java quotes.
2025-07-25 14:14:55 +02:00
Benjamin
3757744b28
feat(language): add Gleam coding language (@binajmen) (#6771)
### Description

Adding the Gleam language!

https://gleam.run/

### Checks

- [x] Adding a language?
- Make sure to follow the [languages
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LANGUAGES.md)
  - [x] Add language to `packages/contracts/src/schemas/languages.ts`
- [x] Add language to exactly one group in
`frontend/src/ts/constants/languages.ts`
  - [x] Add language json file to `frontend/static/languages` 
- [x] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.
2025-07-25 14:14:21 +02:00
Miodec
363e21b541 fix(commandline): tags not showing active state correctly 2025-07-24 18:24:37 +02:00
Nitin
e5f8cb3988
docs(self-hosting): improve grammar and structure of setup guide (@nitin-is-me) (#6774)
### Description

Improved grammar, structure, and tone of the `docs/self_hosting.md` file
for better clarity and consistency. Changes include fixing typos,
rewording vague instructions, improving formatting, and aligning with
the overall documentation tone.

### Checks

- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.

### Other notes

This PR does not add any quotes, languages, themes, or layouts.

---

Closes # (none)
2025-07-24 14:33:29 +02:00
Cameron
2180e3b603
chore(deps): upgrade oxlint to 1.8.0, fix errors (@camc314) (#6776)
### Description

This PR updates oxlint to 1.8.0 and fixes the resulting errors in order
to keep oxlint's ecosystem CI green.

Thanks for using oxlint

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-07-24 14:32:12 +02:00
Christian Fehmer
4f57418b6a
refactor(config): split config and config-metadata tests (@fehmer) (#6770) 2025-07-22 21:33:18 +02:00
Shizuko
e357efc435
chore(funbox): increase layout_mirror difficulty to level 3 (@ShizukoV) (#6761)
### Description
I've changed the difficulty of the `layout_mirror` funbox from 1 to 3.

The `layout_mirror` funbox completely mirrors the keyboard layout,
significantly increasing difficulty compared to other funboxes currently
labeled as difficulty level 1, (`earthquake`, `capitals`, `gibberish`),
which are much less disruptive.

The `layout_mirror` funbox is also similar to the `mirror` funbox (which
mirrors the screen), currently rated at difficulty level 3. Since
`layout_mirror` alters the entire keyboard layout itself, making even
basic typing extremely challenging, it makes sense for it to also be
difficulty level 3.
2025-07-22 19:25:23 +02:00
Jack
9567e07dcf
refactor(config meta): split into its own file (@miodec) (#6769)
### Description

<!-- Please describe the change(s) made in your PR -->

### Checks

- [ ] Adding quotes?
- [ ] Make sure to include translations for the quotes in the
description (or another comment) so we can verify their content.
- [ ] Adding a language?
- Make sure to follow the [languages
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LANGUAGES.md)
  - [ ] Add language to `packages/contracts/src/schemas/languages.ts`
- [ ] Add language to exactly one group in
`frontend/src/ts/constants/languages.ts`
  - [ ] Add language json file to `frontend/static/languages` 
- [ ] Adding a theme?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/THEMES.md)
  - [ ] Add theme to `packages/contracts/src/schemas/themes.ts`
  - [ ] Add theme to `frontend/src/ts/constants/themes.ts`
  - [ ] Add theme css file to `frontend/static/themes`
- Also please add a screenshot of the theme, it would be extra awesome
if you do so!
- [ ] Adding a layout?
- [ ] Make sure to follow the [layouts
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LAYOUTS.md)
  - [ ] Add layout to `packages/contracts/src/schemas/layouts.ts`
  - [ ] Add layout json file to `frontend/static/layouts` 
- [ ] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [ ] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [ ] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.

<!-- label(optional scope): pull request title (@your_github_username)
-->

<!-- I know I know they seem boring but please do them, they help us and
you will find out it also helps you.-->

Closes #

<!-- the issue(s) your PR resolves if any (delete if that is not the
case) -->
<!-- please also reference any issues and or PRs related to your pull
request -->
<!-- Also remove it if you are not following any issues. -->

<!-- pro tip: you can mention an issue, PR, or discussion on GitHub by
referencing its hash number e.g:
[#1234](https://github.com/monkeytypegame/monkeytype/pull/1234) -->

<!-- pro tip: you can press . (dot or period) in the code tab of any
GitHub repo to get access to GitHub's VS Code web editor Enjoy! :) -->
2025-07-22 13:30:22 +02:00
Jack
6dad5415c2
feat(sound): add play time warning (@miodec) (#6759)
### Description

<!-- Please describe the change(s) made in your PR -->

### Checks

- [ ] Adding quotes?
- [ ] Make sure to include translations for the quotes in the
description (or another comment) so we can verify their content.
- [ ] Adding a language?
- Make sure to follow the [languages
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LANGUAGES.md)
  - [ ] Add language to `packages/contracts/src/schemas/languages.ts`
- [ ] Add language to exactly one group in
`frontend/src/ts/constants/languages.ts`
  - [ ] Add language json file to `frontend/static/languages` 
- [ ] Adding a theme?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/THEMES.md)
  - [ ] Add theme to `packages/contracts/src/schemas/themes.ts`
  - [ ] Add theme to `frontend/src/ts/constants/themes.ts`
  - [ ] Add theme css file to `frontend/static/themes`
- Also please add a screenshot of the theme, it would be extra awesome
if you do so!
- [ ] Adding a layout?
- [ ] Make sure to follow the [layouts
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LAYOUTS.md)
  - [ ] Add layout to `packages/contracts/src/schemas/layouts.ts`
  - [ ] Add layout json file to `frontend/static/layouts` 
- [ ] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [ ] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [ ] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.

<!-- label(optional scope): pull request title (@your_github_username)
-->

<!-- I know I know they seem boring but please do them, they help us and
you will find out it also helps you.-->

Closes #

<!-- the issue(s) your PR resolves if any (delete if that is not the
case) -->
<!-- please also reference any issues and or PRs related to your pull
request -->
<!-- Also remove it if you are not following any issues. -->

<!-- pro tip: you can mention an issue, PR, or discussion on GitHub by
referencing its hash number e.g:
[#1234](https://github.com/monkeytypegame/monkeytype/pull/1234) -->

<!-- pro tip: you can press . (dot or period) in the code tab of any
GitHub repo to get access to GitHub's VS Code web editor Enjoy! :) -->

---------

Co-authored-by: Christian Fehmer <cfe@sexy-developer.com>
2025-07-21 16:40:27 +02:00
Seif Soliman
27019d189f
fix(account-history): highlight animation is not working on result selection (@byseif21) (#6744)
### Description

fix the highlight animation for the account history table (when clicking
a chart dot) was not visible or only worked inconsistently. This was
because the animation was applied to the <tr> element, but the
background color for table rows is set on the <td> elements. As a
result, the animation was hidden by the static background color of the
table cells.

Closes #

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-07-21 16:39:43 +02:00
Blerru
dc7c94f6cc
impr(modes-notice): make average wpm and accuracy show decimal places when appropriate (@blru) (#6749)
### Description

Makes it so that the average wpm and accuracy indicators shown above the
typing area have their decimals visible when the
`alwaysShowDecimalPlaces` config option is set to true.

### Checks

- [x] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.
2025-07-21 15:42:57 +02:00
~ayko
5b9f7be35f
feat(font): add 0xProto font (@0x7375) (#6750)
### Description

- added [0xProto](https://github.com/0xType/0xProto) font file to
webfonts
- updated `frontend/static/{fonts/_list.json,styles/fonts.scss}` files
- tried it locally, here's a screenshot:
<img width="1920" height="1080" alt="Screenshot-18-07-2025-0414"
src="https://github.com/user-attachments/assets/597837b0-ce8c-4a32-8e08-52ded6c01901"
/>


### Checks

- [ ] Adding quotes?
- [ ] Make sure to include translations for the quotes in the
description (or another comment) so we can verify their content.
- [ ] Adding a language?
- Make sure to follow the [languages
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LANGUAGES.md)
  - [ ] Add language to `packages/contracts/src/schemas/languages.ts`
- [ ] Add language to exactly one group in
`frontend/src/ts/constants/languages.ts`
  - [ ] Add language json file to `frontend/static/languages` 
- [ ] Adding a theme?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/THEMES.md)
  - [ ] Add theme to `packages/contracts/src/schemas/themes.ts`
  - [ ] Add theme to `frontend/src/ts/constants/themes.ts`
  - [ ] Add theme css file to `frontend/static/themes`
- Also please add a screenshot of the theme, it would be extra awesome
if you do so!
- [ ] Adding a layout?
- [ ] Make sure to follow the [layouts
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LAYOUTS.md)
  - [ ] Add layout to `packages/contracts/src/schemas/layouts.ts`
  - [ ] Add layout json file to `frontend/static/layouts` 
- [ ] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.

<!-- label(optional scope): pull request title (@your_github_username)
-->

<!-- I know I know they seem boring but please do them, they help us and
you will find out it also helps you.-->

<!-- the issue(s) your PR resolves if any (delete if that is not the
case) -->
<!-- please also reference any issues and or PRs related to your pull
request -->
<!-- Also remove it if you are not following any issues. -->

<!-- pro tip: you can mention an issue, PR, or discussion on GitHub by
referencing its hash number e.g:
[#1234](https://github.com/monkeytypegame/monkeytype/pull/1234) -->

<!-- pro tip: you can press . (dot or period) in the code tab of any
GitHub repo to get access to GitHub's VS Code web editor Enjoy! :) -->
2025-07-21 15:34:43 +02:00
nafets-st
231cd2ecb8
fix(quotes): code_rust compilation and whitespace (@nafets-st) (#6755)
### Description

*   Fixes various compile errors in the Rust quotes.
*   Removes trailing whitespace.
*   Converts leading whitespace to tabs.

Note: This does not fix out of date issues (such as the rand API), or
the likely unnecessary uses of `extern crate` (since rust 2018).
2025-07-21 15:30:21 +02:00
david
62a5145f02
fix(german_250k.json): remove non-german accents (@8e3) (#6756)
Removed non-German accents / untypable loanwords

### Description

Since the German qwertz layout doesn't support certain accents, used in
some loanwords in this list, typing them is impossible, without changing
your keyboard layout mid-session. Using an automated script, I decided
to remove them, enhancing playability.

---------

Co-authored-by: fehmer <3728838+fehmer@users.noreply.github.com>
2025-07-21 15:29:41 +02:00
sobczaktm
fb82a52882
impr(quotes): 15 polish proverbs and other quotes for polish language (@sobczaktm) (#6760)
Description
15 polish proverbs and other quotes for polish language

Checks
Translations:
Agreement is reached when one party pretends to believe the nonsense
told by the other. - "id":216

Only six people in the Galaxy knew that the president's job was not to
wield power, but to distract from it. - "id":217

I have become death, the destroyer of worlds. - "id":218

If something is impossible to do, let the Poles do it.- "id":219

It's not how long you live, but how wisely you live. It's never too late
to learn and grow. Wisdom is priceless, regardless of age. - "id":220

Don't waste time, for it is the stuff life is made of. - "id":221

You praise others, you do not know your own, you do not know what you
have. - "id":222

Don't argue with a fool because he will drag you down to his level and
beat you with experience. - "id":223

It is better to remain silent and be thought a fool than to open your
mouth and remove all doubt. - "id":224

Clothes do not make the man, clothes are for the man, not man for
clothes. -"id":225

He who digs holes for another will fall into them himself. Therefore, do
not do to others what you would not want done to you. - "id":226

Don't judge a man by his clothes, but by the friends he has. For a man
is what he associates with. - "id":227

What goes around comes around. Don't put off until tomorrow what you can
do today. - "id":228

First a person learns to walk, then to run, then to speak, then to be
silent. It's crucial to do certain things in the right order. - "id":229

Don't praise the day before sunset, you're not sure what the end of the
day may bring.- "id":230

---------

Co-authored-by: Tomasz.Sobczak <Tomasz.Sobczak@fujitsu.com>
2025-07-21 15:28:57 +02:00
Jack
69cbbe4ab2
refactor(contracts / schemas): move schemas into their own package (@miodec) (#6754) 2025-07-21 14:55:54 +02:00
Jack
92790f3682
refactor(config): config metadata (@miodec) (#6753)
Create config metadata object
Move all the special code on config change to config listeners
Create a generic set function which will work with the metadata object
to update any config key
Update all setters to use the generic set.
(Later probably only use the generic settter and remove all the specific
ones)
Also orders config groups and config schema.

---------

Co-authored-by: Christian Fehmer <cfe@sexy-developer.com>
2025-07-21 13:50:33 +02:00
Miodec
db9e54f794 chore: release v25.30.0 2025-07-20 17:19:47 +02:00
Miodec
41495981a8 chore: bump oxlint version 2025-07-19 15:02:14 +02:00
Miodec
255fd7f410 chore: only log daily changes 6 hours after the reset 2025-07-19 02:09:09 +02:00
Christian Fehmer
2a9507ab1e
refactor: new discordAvatar handling (@fehmer) (#6740)
extract discordAvatar loading and caching into a new module. Preparation
for the friends list

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-07-18 18:47:10 +02:00
Miodec
c6d9033005 chore: move result logging later, log top 10 daily 2025-07-17 09:37:06 +02:00
Miodec
c4590a2939 chore: log only up to 2 minute tests 2025-07-17 09:27:48 +02:00
Miodec
c9986bbc4c chore: slice long messages 2025-07-17 09:19:39 +02:00
Miodec
b15520f0b3 chore: add ability to log results 2025-07-17 01:24:47 +02:00
Jack
5e4478c97a
feat(funbox): add no quit (@miodec) (#6741)
Brrrr
2025-07-16 15:53:36 +02:00
Christian Fehmer
8d5d27d314
fix(leaderboard): fix accuracy table header missing on small screens (@fehmer) (#6739)
Before:
<img width="967" height="147" alt="image"
src="https://github.com/user-attachments/assets/ca1b176f-47e6-48d3-9f2a-c34a3896ecd4"
/>

After:
<img width="1177" height="181" alt="image"
src="https://github.com/user-attachments/assets/2749d4b6-1799-46fb-8946-f16a417002a8"
/>
2025-07-16 11:24:52 +02:00
Ruslan Tylychko
bd35c46d19
impr(quotes): add english quotes from The Pragmatic Programmer (@Papweer) (#6662)
### Description

Added 24 English quotes from the Pragmatic Programmer (2nd Edition)

### Checks

- [x] Adding quotes?
- [x] Make sure to include translations for the quotes in the
description (or another comment) so we can verify their content.

- [x] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org/ for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.
2025-07-15 14:35:53 +02:00
Sam Lonneman
06f6d0ab53
impr(settings): clarified 'reset settings' wording (@SamLonneman) (#6717)
### Description

**`impr`** - Clarified description for "Reset Settings" feature,
emphasizing that in addition to tags, settings presets are also
preserved.

**`refactor`** - the unused type `PresetName` was misspelled as
`PresentName`.
2025-07-15 14:35:21 +02:00
Seif Soliman
3f678932f8
fix(leaderboards): content overflow on smaller screens (@byseif21, @miodec) (#6733)
### Description
* when the table got wider than the screen, it broke the layout and
pushed other elements out of view.
fixed it by `overflow-x: hidden`
* making the table itself more responsive, so it adapts across screen
sizes

* video ; 


https://github.com/user-attachments/assets/c84272d1-4c77-4e59-980e-aab09c18d6a1

Closes #6732

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-07-15 14:34:54 +02:00
Christian Fehmer
a4de8dfda6
impr(leaderboard): daily mode/language buttons based on backend configuration (@fehmer) (#6713)
Co-authored-by: Miodec <jack@monkeytype.com>
2025-07-14 15:32:09 +02:00
Christian Fehmer
5aec2c9a17
fix(docker): use frontend url for firebase admin (@fehmer) (#6730)
fixes #6728

---------

Co-authored-by: Jack <jack@monkeytype.com>
2025-07-14 15:30:34 +02:00
Christian Fehmer
c6dcfa1cb7
fix(profile): remove previous error message on page load (@fehmer) (#6731)
fixes #6729
2025-07-12 21:09:41 +02:00
sobczaktm
0b8ee9c8ec
impr(quotes): 15 polish movie quotes for polish language (@sobczaktm) (#6727)
Description
15 polish movie quotes

Checks
Translations:
Grzegorz Brzęczyszczykiewicz. Chrząszczyrzewoszczyce, Łękołody County.-
"id":201

I am reporting obediently, Colonel, I caused this war completely
unintentionally. - "id":202

Everyone can help their luck, everyone can win today. Black loses, red
wins. One, two, three... - "id":203

He died on the way, certainly from his wounds. - It wasn't from his
wounds, sir! The plum brandy!- "id":204

You, come here. Where are you going? Come here to the master. How good!
What a pretty lady he has! Only she's so serious... And why is she so
serious, huh? Fat... Well, come on. What, some good peppers? Eat, eat.
If you don't eat, the lady will lock you up in a hole like us here. -
"id":205

Darkness, I see darkness, I see darkness. - "id":206

Saved! We're saved! The stork! Look! The stork! If he's alive, that
means we can too. Stork, stork!- "id":207

The league defends, the league advises, the league will never betray
you! - "id":208

In a few days, sir, it will only begin: interviews, autographs, visits
to workplaces. - "id":209

I, Prince Jeremi Wiśniowiecki, Voivode of Ruthenia, Lord of Łubnie and
Wiśniowiec, swear to you, living God, one in the Holy Trinity, that I
will not lay down this saber when I raise it against the scoundrels
until I have pacified Ukraine and drowned the peasant rebellions in
blood! So help me God! -"id":210

Maybe you want to wait until the drizzle stops. It's a shame to die in
such rain. - They'll bury the colonel, so the sky is crying. - "id":211

You're swinging like a flail! - Stop it, spare the shame. - "id":212

Lithuania! My homeland! You are like health. How much you must be
valued, only he who has lost you will know. Today I see and describe
your beauty in all its splendor, because I miss you. - "id":213

I always told you – abandon the trials. I always told you – invade,
invade! - "id":214

I have nothing, you have nothing, he has nothing... Together we have
enough to set up a large factory.- "id":215

Co-authored-by: Tomasz.Sobczak <Tomasz.Sobczak@fujitsu.com>
2025-07-12 11:09:35 +02:00
Miodec
02fcad4a8b fix(caret): incorrect vertical position if word wrapped to the next line 2025-07-11 19:24:00 +02:00
Seif Soliman
2908331bff
fix(zen): remove input length check to prevent jump to hidden line (@byseif21, @NadAlaba) (#6714)
Closes #6697
2025-07-11 16:11:54 +02:00
Nad Alaba
ee02bee5db
fix(wordsInput): prevent automatic scrolling when focusing #wordsInput (@NadAlaba) (#6724)
fix #6723
2025-07-11 16:10:41 +02:00
Nad Alaba
14cf7b0584
refactor(hints): allow joinOverlappingHints to run on joined hints (@NadAlaba) (#6716) 2025-07-11 16:06:11 +02:00
Soufiane
0c5cb1b94c
impr(quotes): Add 4 english quotes from Better Call Saul (@Soufi-ane) (#6720)
### Description

Added 4 English quotes from Better Call Saul

### Checks

- [x] Adding quotes?
- [x] Make sure to include translations for the quotes in the
description (or another comment) so we can verify their content.
 
- [x] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.
2025-07-11 16:02:52 +02:00
Christian Fehmer
477dc48673
fix(settings): fix highlight not visible with reduced-motion (@fehmer) (#6719)
Highlight was not visible if the user has prefers-reduced-motion
enabled.
2025-07-10 13:53:54 +02:00
Miodec
9a6fe31a62 fix(test): line not jumping when word overflows to the next line 2025-07-09 22:27:41 +02:00
Miodec
ed47e2ff91 fix(account settings): ape keys table not displaying correctly 2025-07-09 22:21:36 +02:00
Nad Alaba
5243d146db
refactor(hints): improve readability of hints functions (@NadAlaba) (#6629)
- Refactoring `joinOverlappingHints()` solves the issue of hints joining
when they correspond to letters of different lines, which was one of the
issues [#6636](https://github.com/monkeytypegame/monkeytype/pull/6636)
was supposed to solve.
- Also add a utility that debounces/locks async functions.
2025-07-09 18:39:55 +02:00
Christian Fehmer
83cc7590fb
impr(commandline): validate input for polyglot and layoutfluid (@fehmer) (#6709) 2025-07-09 18:03:27 +02:00
Christian Fehmer
b9cff9e504
impr(commandline): allow validation for text inputs (@fehmer) (#6692)
Co-authored-by: Miodec <jack@monkeytype.com>
2025-07-09 17:18:12 +02:00
Miodec
a12999d1fe chore: change insane badge colors per request 2025-07-09 12:49:17 +02:00
Miodec
178033c2ef impr: add perfection badge 2025-07-09 12:17:22 +02:00
Seif Soliman
2d430c1ae8
chore: fix syntax in example.env (@byseif21) (#6712) 2025-07-09 12:10:14 +02:00
Christian Fehmer
8be3a3cc9b
fix(leaderboard): use minTimeTyping from configuration (@fehmer) (#6710)
We added `minTimeTyping` to the configuration but it was only used to
create the indicies.
2025-07-09 12:09:49 +02:00