stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

Mate1166

@Mate1166

Joined July 14th, 2026

  • 14Devlogs
  • 1Projects
  • 2Ships
  • 30Votes
A 16 year old student from Hungary studying software development

Creator of Determinist
Open comments for this post
Reposted by @Mate1166

2h 8m 2s logged

Determinist // Devlog 14 // 2026.09.06.

Finally, I figured out how to make the site work offline…

The process

After working on the PWA for way longer than I expected, it finally works as intended!

After I’ve figured out how to use next-pwa, I encountered an issue: the site was being cached and loaded correctly in the browser but not when installed as a PWA. I rewrote multiple parts of the code for it to work, yet it did not. In the end, it was the unsecured connections that were at fault.

Discovering that, I have learned to use something new again: Localtunnel, which allows me to use a valid (not self-signed) HTTPS connection while testing. This uncovered even more issues with my code, the most obvious being the fact that fonts were not cached at all.

This was because I was getting my fonts by connecting to fonts.google.com. This was a really easy thing to fix though, as Next.js already has a next/fonts/google library that had the fonts I used, and now everything works well.

What’s next?

  • Bug fixes
  • Descriptions
  • Preset Generator
  • Auto Copy to Clipboard toggle
0
1
24
Open comments for this post

2h 8m 2s logged

Determinist // Devlog 14 // 2026.09.06.

Finally, I figured out how to make the site work offline…

The process

After working on the PWA for way longer than I expected, it finally works as intended!

After I’ve figured out how to use next-pwa, I encountered an issue: the site was being cached and loaded correctly in the browser but not when installed as a PWA. I rewrote multiple parts of the code for it to work, yet it did not. In the end, it was the unsecured connections that were at fault.

Discovering that, I have learned to use something new again: Localtunnel, which allows me to use a valid (not self-signed) HTTPS connection while testing. This uncovered even more issues with my code, the most obvious being the fact that fonts were not cached at all.

This was because I was getting my fonts by connecting to fonts.google.com. This was a really easy thing to fix though, as Next.js already has a next/fonts/google library that had the fonts I used, and now everything works well.

What’s next?

  • Bug fixes
  • Descriptions
  • Preset Generator
  • Auto Copy to Clipboard toggle
0
1
24
Open comments for this post
Reposted by @Mate1166

4h 8m 25s logged

Determinist // Devlog 13 // 2026.09.25.

Quite a few issues, but apparently it works…

Progressive Web App

Well, making Determinist a PWA certainly took way longer than expected. I thought it would be an hour at most, I mean Next.js literally has a guide that tells me what to do step-by-step. It was in fact NOT easy. I encountered a ton of problems.

First off, I had to write a manifest which had the app name, icons etc., the obvious things. What was not obvious however was that I had multiple ways of doing that. I could write a JSON file, or write a JavaScript file that exports an object. I chose the latter as it was the version that the Next.js guide was using.

Then came the icons. Oh, the icons. I made my icons and put it in the public/ directory with the correct names so that they match the manifest. Cool, works when I share it but there is no icon when I add it to my home screen on my iPhone. It said I’m missing a file called apple-touch-icon and apple-touch-icon-precomposed. Cool, I duplicated the icons and I renamed them. No 404s, but it still did not work. I look for a solution. For hours. I look at Next.js docs, YouTube, StackOverflow, Reddit, GitHub issues and there is nothing that would fix it. Finally, I found out I need to link the icon in the head of the website. Great, but still doesn’t work. Turns out, the problem was that I was following the Next.js guide which told me to use HTTPS to test the PWA, but iOS does not trust self-signed keys so it did not download the icon.

After that, the generation broke when I was connecting to the site with the IP and not through localhost. I noticed that submitting (pressing the generate button) redirected me which should not have happened due to the line e.preventDefault(). Then I saw Next.js attempting to connect a websocket, and a bunch of 403 errors that weren’t there before. I spent quite a bit of time debugging that, and it was due to not adding my IP to allowedDevOrigins in the next.config.mjs file despite it working perfectly fine before.

The Icon

As you can see, the image I decided to include in my devlog is the icon for Determinist. I actually did not think of putting the D and the E together at first, but when I did, it reminded me of a lock (hope you can see it!) and I chose to keep it as it kind of fits. And I didn’t want a solid color background, so I decided I’ll just add the name repeating. It was fun making it, and it was also a very good way to practice using Illustrator.

What’s next?

  • Making the PWA work offline
  • Bug fixes
  • Descriptions
  • Preset Generator
  • Auto Copy to Clipboard toggle
1
1
199
Open comments for this post

4h 8m 25s logged

Determinist // Devlog 13 // 2026.09.25.

Quite a few issues, but apparently it works…

Progressive Web App

Well, making Determinist a PWA certainly took way longer than expected. I thought it would be an hour at most, I mean Next.js literally has a guide that tells me what to do step-by-step. It was in fact NOT easy. I encountered a ton of problems.

First off, I had to write a manifest which had the app name, icons etc., the obvious things. What was not obvious however was that I had multiple ways of doing that. I could write a JSON file, or write a JavaScript file that exports an object. I chose the latter as it was the version that the Next.js guide was using.

Then came the icons. Oh, the icons. I made my icons and put it in the public/ directory with the correct names so that they match the manifest. Cool, works when I share it but there is no icon when I add it to my home screen on my iPhone. It said I’m missing a file called apple-touch-icon and apple-touch-icon-precomposed. Cool, I duplicated the icons and I renamed them. No 404s, but it still did not work. I look for a solution. For hours. I look at Next.js docs, YouTube, StackOverflow, Reddit, GitHub issues and there is nothing that would fix it. Finally, I found out I need to link the icon in the head of the website. Great, but still doesn’t work. Turns out, the problem was that I was following the Next.js guide which told me to use HTTPS to test the PWA, but iOS does not trust self-signed keys so it did not download the icon.

After that, the generation broke when I was connecting to the site with the IP and not through localhost. I noticed that submitting (pressing the generate button) redirected me which should not have happened due to the line e.preventDefault(). Then I saw Next.js attempting to connect a websocket, and a bunch of 403 errors that weren’t there before. I spent quite a bit of time debugging that, and it was due to not adding my IP to allowedDevOrigins in the next.config.mjs file despite it working perfectly fine before.

The Icon

As you can see, the image I decided to include in my devlog is the icon for Determinist. I actually did not think of putting the D and the E together at first, but when I did, it reminded me of a lock (hope you can see it!) and I chose to keep it as it kind of fits. And I didn’t want a solid color background, so I decided I’ll just add the name repeating. It was fun making it, and it was also a very good way to practice using Illustrator.

What’s next?

  • Making the PWA work offline
  • Bug fixes
  • Descriptions
  • Preset Generator
  • Auto Copy to Clipboard toggle
1
1
199
Open comments for this post
Reposted by @Mate1166

5h 9m 6s logged

Determinist // Devlog 12 // 2026.09.16.

Well, it took me more than a week, but the v3 algorithm is on the website!

CLI Update

I have published version 0.5.2 of the Python CLI, which fixed a few issues I found (you can see them on the GitHub page!), and added actual functionality to the default presets. You can also report issues on the GitHub page, and it is highly appreciated.

What changed?

I added the v3 algorithm, after a bit of tinkering with the error handling. My problem was that the error handling wasn’t really dynamic. It couldn’t handle the invalid input errprs from v3, so I made a separate component. I also had to learn how to use HKDF on the client side, which was actually easier to do than I expected, although the actual usage of HKDF was a bit more complicated than it is in Python.

What’s next?

  • Bug fixes
  • Descriptions
  • Preset Generator
  • PWA Implementation
  • Auto Copy to Clipboard toggle
0
2
162
Open comments for this post

5h 9m 6s logged

Determinist // Devlog 12 // 2026.09.16.

Well, it took me more than a week, but the v3 algorithm is on the website!

CLI Update

I have published version 0.5.2 of the Python CLI, which fixed a few issues I found (you can see them on the GitHub page!), and added actual functionality to the default presets. You can also report issues on the GitHub page, and it is highly appreciated.

What changed?

I added the v3 algorithm, after a bit of tinkering with the error handling. My problem was that the error handling wasn’t really dynamic. It couldn’t handle the invalid input errprs from v3, so I made a separate component. I also had to learn how to use HKDF on the client side, which was actually easier to do than I expected, although the actual usage of HKDF was a bit more complicated than it is in Python.

What’s next?

  • Bug fixes
  • Descriptions
  • Preset Generator
  • PWA Implementation
  • Auto Copy to Clipboard toggle
0
2
162
Open comments for this post
Reposted by @Mate1166

8h 31m 19s logged

Determinist // Devlog 11 // 2026.09.06.

After the first week of school, I have finished work on the CLI, and Determinist 0.5.1 is released!

Changes

  • Added presets create command
  • Changed preset option to allow selection in one line
  • Changed the presets list to show invalid files in the configuration directory
  • Added password generation errors
  • Fixed bugs:
    • The password being allowed to have less characters than the sum of the minimum required characters is fixed
    • The g prefix from the commit hash is now removed
    • Various preset error handling issues have been fixed
    • Presets are now not required to have all the versions inside them

What’s taking so long? Is Determinist done?

Firstly, I just started school, so I got very busy lately and that is why I haven’t been doing much work. As a compensation, v3 of the algorithm is now available on GitHub!! This is version 0.5.1, which is a pretty big jump if you look at the versions before. However, there is a reason for that: active development of Determinist is going to stop once version 1.0.0 comes out, with all the new features and fixes being ported to the website. This will come out in the next week or so. Determinist will still be updated here and there if I miss some features or people have suggestions and issues, but I will be mainly focusing on other projects.

Latest development stuff

The preset creation was actually pretty easy. I figured I’ll reuse the options from the generate command so I don’t have to write them manually again, and it worked amazing! I had to add to the PresetHandler to make it work, and that was really simple as well. I first thought of adding strings together, but then I realized I could just create dictionaries that my TOML library can convert to TOML and write them to the preset, so I didn’t have to do all the writing myself. The bug fixes weren’t interesting at all, honestly. I messed around with Determinist, found bugs and issues and I fixed them. My favorite one was debugging errors with the preset commands however. I found a bunch of things worth fixing, and in the end I made another helper function, as well as changing how check_file_type works.

To do

  • Port everything over to the website
  • Add more text to the website explaining Determinist and how it works
0
1
132
Open comments for this post

8h 31m 19s logged

Determinist // Devlog 11 // 2026.09.06.

After the first week of school, I have finished work on the CLI, and Determinist 0.5.1 is released!

Changes

  • Added presets create command
  • Changed preset option to allow selection in one line
  • Changed the presets list to show invalid files in the configuration directory
  • Added password generation errors
  • Fixed bugs:
    • The password being allowed to have less characters than the sum of the minimum required characters is fixed
    • The g prefix from the commit hash is now removed
    • Various preset error handling issues have been fixed
    • Presets are now not required to have all the versions inside them

What’s taking so long? Is Determinist done?

Firstly, I just started school, so I got very busy lately and that is why I haven’t been doing much work. As a compensation, v3 of the algorithm is now available on GitHub!! This is version 0.5.1, which is a pretty big jump if you look at the versions before. However, there is a reason for that: active development of Determinist is going to stop once version 1.0.0 comes out, with all the new features and fixes being ported to the website. This will come out in the next week or so. Determinist will still be updated here and there if I miss some features or people have suggestions and issues, but I will be mainly focusing on other projects.

Latest development stuff

The preset creation was actually pretty easy. I figured I’ll reuse the options from the generate command so I don’t have to write them manually again, and it worked amazing! I had to add to the PresetHandler to make it work, and that was really simple as well. I first thought of adding strings together, but then I realized I could just create dictionaries that my TOML library can convert to TOML and write them to the preset, so I didn’t have to do all the writing myself. The bug fixes weren’t interesting at all, honestly. I messed around with Determinist, found bugs and issues and I fixed them. My favorite one was debugging errors with the preset commands however. I found a bunch of things worth fixing, and in the end I made another helper function, as well as changing how check_file_type works.

To do

  • Port everything over to the website
  • Add more text to the website explaining Determinist and how it works
0
1
132
Open comments for this post
Reposted by @Mate1166

4h 44m logged

Determinist // Devlog 10 // 2026.08.27

Updates here and there, and the v3 algorithm is finally complete! All of this and the content of the rest of the devlogs will only be released with the final 1.0.0 release of Determinist.

Changes

  • Added v3 algorithm for the Python CLI
    • It features dynamic byte generation so that no matter what, you’ll never run out of characters! (Unless you’re VERY unlucky)
    • You can now enter a third value called a “differentiator” that can be used to change the output further. This is especially useful if you have multiple accounts on the same site. This option can be left empty
    • Your generated password is now guaranteed to have the correct amount of characters
    • You can now set a minimum amount of characters of each type! Simply enter 0 to exclude the character type, and 1 or above to choose how many characters your password have minimum of that type.
  • Made generate prompt only prompt users if the prompts are applicable. This means you will no longer be prompted for the settings of v1 when you use one of the other two algorithms.
  • Fixed an issue where if the site_name option is omitted, the prompt will display Master pass instead of the correct prompt.

The difficulties

Well, of course the development of v3 came with some challenges. Firstly, I had to figure out how to actually generate enough bytes to pass rejection sampling (making sure no bytes are out of range when mapped onto the character set), as the previous implementation was that I multiplied the password length by 32. This worked, but wasn’t pretty and in very rare and unlucky cases, there weren’t enough bytes. I fixed this by using something called HKDF, which stands for HMAC-based Extract-and-Expand Key Derivation Function. I’d really prefer to use HKDF. Anyway, this function was really good for this task, as it can take the Argon2 output and create a long, pseudo-random key that can go through rejection sampling, and finally end up in the password. In case this generated key is not enough, HKDF will generate more of it, essentially giving us infinite bytes to then map to our characters. This was especially good because in the same loop I could implement…

Minimum requirements

This should have been easy, but it took me a day to think about how to do it. The challenge: take a dictionary ({"lowercase": 2, "uppercase": 3, "special": 1, "digits": 0}), and include at least as many characters of each type as their value in that dictionary says, and if it’s 0 then don’t include it at all. Fine, I said, but I didn’t actually know how to implement this. After a day of thinking, it finally clicked: I implement this in the rejection sampling loop, as that is where my characters get added. Introducing the _construct_pass function: it looks for the already added characters, determines the type of the current character, counts how many are missing, and if a character type is missing some characters or there aren’t any left, the character is added, and otherwise it is discarded.

To do

  • Add a preset generator command
  • Fix a g prefix appearing in the version command output before the git commit hash
  • Add the ability to choose a preset in one line instead of being prompted for it
  • Fix the password being allowed to be shorter than the sum of minimum required characters (I found that one while writing this)
  • Port everything over to the website
  • Update the docs
  • Add more text to the website explaining Determinist and how it works
0
1
154
Open comments for this post

4h 44m logged

Determinist // Devlog 10 // 2026.08.27

Updates here and there, and the v3 algorithm is finally complete! All of this and the content of the rest of the devlogs will only be released with the final 1.0.0 release of Determinist.

Changes

  • Added v3 algorithm for the Python CLI
    • It features dynamic byte generation so that no matter what, you’ll never run out of characters! (Unless you’re VERY unlucky)
    • You can now enter a third value called a “differentiator” that can be used to change the output further. This is especially useful if you have multiple accounts on the same site. This option can be left empty
    • Your generated password is now guaranteed to have the correct amount of characters
    • You can now set a minimum amount of characters of each type! Simply enter 0 to exclude the character type, and 1 or above to choose how many characters your password have minimum of that type.
  • Made generate prompt only prompt users if the prompts are applicable. This means you will no longer be prompted for the settings of v1 when you use one of the other two algorithms.
  • Fixed an issue where if the site_name option is omitted, the prompt will display Master pass instead of the correct prompt.

The difficulties

Well, of course the development of v3 came with some challenges. Firstly, I had to figure out how to actually generate enough bytes to pass rejection sampling (making sure no bytes are out of range when mapped onto the character set), as the previous implementation was that I multiplied the password length by 32. This worked, but wasn’t pretty and in very rare and unlucky cases, there weren’t enough bytes. I fixed this by using something called HKDF, which stands for HMAC-based Extract-and-Expand Key Derivation Function. I’d really prefer to use HKDF. Anyway, this function was really good for this task, as it can take the Argon2 output and create a long, pseudo-random key that can go through rejection sampling, and finally end up in the password. In case this generated key is not enough, HKDF will generate more of it, essentially giving us infinite bytes to then map to our characters. This was especially good because in the same loop I could implement…

Minimum requirements

This should have been easy, but it took me a day to think about how to do it. The challenge: take a dictionary ({"lowercase": 2, "uppercase": 3, "special": 1, "digits": 0}), and include at least as many characters of each type as their value in that dictionary says, and if it’s 0 then don’t include it at all. Fine, I said, but I didn’t actually know how to implement this. After a day of thinking, it finally clicked: I implement this in the rejection sampling loop, as that is where my characters get added. Introducing the _construct_pass function: it looks for the already added characters, determines the type of the current character, counts how many are missing, and if a character type is missing some characters or there aren’t any left, the character is added, and otherwise it is discarded.

To do

  • Add a preset generator command
  • Fix a g prefix appearing in the version command output before the git commit hash
  • Add the ability to choose a preset in one line instead of being prompted for it
  • Fix the password being allowed to be shorter than the sum of minimum required characters (I found that one while writing this)
  • Port everything over to the website
  • Update the docs
  • Add more text to the website explaining Determinist and how it works
0
1
154
Open comments for this post
Reposted by @Mate1166

6h 8m 38s logged

Determinist // Devlog 9 // 2026.08.22

Long time no see y’all, sorry for the wait! I’m on vacation so I had less time to work on the project, but I did bring some amazing improvements.

Announcement

The website is officially up and works identically to the CLI, now with presets! Just load your TOML presets into the website, and they will be saved for you to reuse! Important note: they are saved locally, therefore you will not see them on different devices unless you import them there too.

Changes

  • Added the preset system to the website!
    • You can now import and use presets, and you can easily remove them if needed.
  • Adjusted the UI so that it fits most (if not all) screens. The smallest screen I tested was an iPhone SE.

The Challenges

There actually weren’t a lot of challenges for once. The biggest one was that I forgot to work on the project while on vacation, but that’s not horrible. And then came React, JavaScript and everything else… firstly, the preset loading was actually really easy, I did however fight with React about passing values from a child component to the parent. And then it turned out I forgot to make it actually pleasant to use, as I had to select the preset file every time I wanted to load it. Now you can save, select and load your presets on the website. However, React had other plans.

I finally learned how React’s useEffect hook works, and using it is pretty easy now that I get what I’m doing. Along with this, I also properly learned about using functions inside useState for lazy initialization which I needed for localStorage. Oh, localStorage was a pleasure to learn and use… Well, the operations with it are actually fairly easy, it’s like an object, and my first thought of initializing a state with it was to use useState({ ...localStorage }), which did work, but it introduced something else: a build error after I merged the changes into main.

Turns out, localStorage is undefined when GitHub Actions wants to build my website, therefore it gave me an error saying so. What I had to do is check if the window object is equal to 'undefined', and if not, then spread localStorage and initialize the state.

Finally, the website managed to build properly, but when I tried to use it on my phone, the output of the generator was outside my screen… so I had to go back and change how the UI looks after I’ve already merged everything into main. Amazing. Well, the good new is that it works, and next up is the v3 algorithm, as well as QoL changes, bug fixes, and more in both the CLI and web versions.

0
1
225
Open comments for this post

6h 8m 38s logged

Determinist // Devlog 9 // 2026.08.22

Long time no see y’all, sorry for the wait! I’m on vacation so I had less time to work on the project, but I did bring some amazing improvements.

Announcement

The website is officially up and works identically to the CLI, now with presets! Just load your TOML presets into the website, and they will be saved for you to reuse! Important note: they are saved locally, therefore you will not see them on different devices unless you import them there too.

Changes

  • Added the preset system to the website!
    • You can now import and use presets, and you can easily remove them if needed.
  • Adjusted the UI so that it fits most (if not all) screens. The smallest screen I tested was an iPhone SE.

The Challenges

There actually weren’t a lot of challenges for once. The biggest one was that I forgot to work on the project while on vacation, but that’s not horrible. And then came React, JavaScript and everything else… firstly, the preset loading was actually really easy, I did however fight with React about passing values from a child component to the parent. And then it turned out I forgot to make it actually pleasant to use, as I had to select the preset file every time I wanted to load it. Now you can save, select and load your presets on the website. However, React had other plans.

I finally learned how React’s useEffect hook works, and using it is pretty easy now that I get what I’m doing. Along with this, I also properly learned about using functions inside useState for lazy initialization which I needed for localStorage. Oh, localStorage was a pleasure to learn and use… Well, the operations with it are actually fairly easy, it’s like an object, and my first thought of initializing a state with it was to use useState({ ...localStorage }), which did work, but it introduced something else: a build error after I merged the changes into main.

Turns out, localStorage is undefined when GitHub Actions wants to build my website, therefore it gave me an error saying so. What I had to do is check if the window object is equal to 'undefined', and if not, then spread localStorage and initialize the state.

Finally, the website managed to build properly, but when I tried to use it on my phone, the output of the generator was outside my screen… so I had to go back and change how the UI looks after I’ve already merged everything into main. Amazing. Well, the good new is that it works, and next up is the v3 algorithm, as well as QoL changes, bug fixes, and more in both the CLI and web versions.

0
1
225
Ship

Well, it’s official: Determinist now has a website!

Features:

  • Easy to use interface
  • Straightforward settings
  • 1:1 compatibility with the CLI
  • Fully client-side

The only thing that hasn’t made it into the website (yet) is the preset system, just like with the CLI, I’m adding that later as the web UI is already really easy to use.

And now the less technical bit…
It’s been an incredible journey, Determinist has been my dream project for a few years now, and it’s really amazing how I can share it with the world now that it’s done.

Just to mention a few things I learned from this project:

  • Testing
  • Proper git usage
  • Cryptography
  • JavaScript
    These are things I wouldn’t really have learned without Determinist. Sure, I could have done so, but not this fast and effectively.

I must thank those who supported the project, who liked the devlogs, and of course the reviewers who gave their opinion on the CLI. Because of your feedback, I made Determinist even easier to use now, and I will continue doing so. Version 3 of the algorithm is on its way, as well as the preset system for the web.

Thank you everyone!

  • 6 devlogs
  • 29h
  • 14.15x multiplier
  • 412 Stardust
Try project → See source code →
Open comments for this post
Reposted by @Mate1166

6h 25m 4s logged

Determinist // Devlog 8 // 2026.08.13

The UI is mostly complete, and I will be releasing the website tomorrow!

Changes

  • Significantly improved the entire user interface
  • Version and special character mode (V1) now use <select> instead of the regular <input>, so you don’t have to type them out

The difficulties

There really wasn’t anything too hard about making the UI. You might ask, “why did you spend over 6 hours on it then?”. I have an answer for you. I tried using Figma for designing the UI but it was just too boring for me, so I decided to start coding it and figure it out as I go. I’m pretty satisfied with the result, but with everything, it can always be improved.
The second problem was that while I was coding, I was also listening to music and I spent a bunch of time skipping songs because I didn’t feel like listening to them. This took my attention along with singing a bit too much, so my progress was slowed…
The last thing to slow me down was my general inexperience with React and JS, although I got over that quick because the frontend is way easier to work on.

Planned

  • Adding the preset system
  • Building the site & uploading to GitHub Pages
0
1
130
Open comments for this post

6h 25m 4s logged

Determinist // Devlog 8 // 2026.08.13

The UI is mostly complete, and I will be releasing the website tomorrow!

Changes

  • Significantly improved the entire user interface
  • Version and special character mode (V1) now use <select> instead of the regular <input>, so you don’t have to type them out

The difficulties

There really wasn’t anything too hard about making the UI. You might ask, “why did you spend over 6 hours on it then?”. I have an answer for you. I tried using Figma for designing the UI but it was just too boring for me, so I decided to start coding it and figure it out as I go. I’m pretty satisfied with the result, but with everything, it can always be improved.
The second problem was that while I was coding, I was also listening to music and I spent a bunch of time skipping songs because I didn’t feel like listening to them. This took my attention along with singing a bit too much, so my progress was slowed…
The last thing to slow me down was my general inexperience with React and JS, although I got over that quick because the frontend is way easier to work on.

Planned

  • Adding the preset system
  • Building the site & uploading to GitHub Pages
0
1
130
Open comments for this post
Reposted by @Mate1166

4h 47m 9s logged

Determinist // Devlog 7 // 2026.08.12

Well, it’s official. I had to use AI for the first time :(

Why?

JavaScript does not have the same random implementation as Python does. Python uses MT19937 while JS uses Xorshift128+. This means we can’t use JavaScript’s random number generator, not to mention that we can’t even use it to shuffle arrays, as it lacks the method. And since I am relatively new to JS, I had two options: get a 15 year old module work that does exactly what I need it to, or make it with AI. I tried getting that package to work. I really did. Unfortunately, the algorithm it uses seems to be outdated, as the results differed in tests. That is why I used AI. I really didn’t want to, but I had to. Well, let’s look at the positives, at least!

Changes

  • The V2 algorithm is implemented and works 1:1 with the Python version!
  • I managed to make another input component that uses checkboxes so you can select what kind of characters you’d like. It was challenging but it works!

Next Up

  • Tomorrow I’ll work on the UI design
  • Adding the preset system
  • Building the site
  • Uploading to GitHub Pages
3
1
80
Open comments for this post

4h 47m 9s logged

Determinist // Devlog 7 // 2026.08.12

Well, it’s official. I had to use AI for the first time :(

Why?

JavaScript does not have the same random implementation as Python does. Python uses MT19937 while JS uses Xorshift128+. This means we can’t use JavaScript’s random number generator, not to mention that we can’t even use it to shuffle arrays, as it lacks the method. And since I am relatively new to JS, I had two options: get a 15 year old module work that does exactly what I need it to, or make it with AI. I tried getting that package to work. I really did. Unfortunately, the algorithm it uses seems to be outdated, as the results differed in tests. That is why I used AI. I really didn’t want to, but I had to. Well, let’s look at the positives, at least!

Changes

  • The V2 algorithm is implemented and works 1:1 with the Python version!
  • I managed to make another input component that uses checkboxes so you can select what kind of characters you’d like. It was challenging but it works!

Next Up

  • Tomorrow I’ll work on the UI design
  • Adding the preset system
  • Building the site
  • Uploading to GitHub Pages
3
1
80
Open comments for this post
Reposted by @Mate1166

2h 26m 11s logged

Determinist // Devlog 6 // 2026.08.10

Pretty big milestone: V1 is finally working on the website!

Additions

  • Added the V1 generation algorithm
  • Added the customization options to the interface

The Generator

V1 is complete and works perfectly! I had to figure out a way to enter objects, and it was quite difficult. See, JavaScript doesn’t really have a dictionary type like Python does, so I had to use an object, which is similar enough and I can look for keys with in, just like in Python. The tricky part was creating such an object from the user’s input. I chose the most user friendly way I could think of, and made separate inputs for the key and value, and you can dynamically add more with an “Add Character Pair” button. I really wish there was an easier way and maybe there is a template out there, but I didn’t consider it until writing this very sentence. Anyways, tomorrow I’ll spend more time refining V1, the inputs and I’ll start working on V2.

To Do

  • Refining the generator and inputs
  • Creating V2
  • Desgining the UI
  • Adding the preset system
  • Generating the static site
0
1
86
Open comments for this post

2h 26m 11s logged

Determinist // Devlog 6 // 2026.08.10

Pretty big milestone: V1 is finally working on the website!

Additions

  • Added the V1 generation algorithm
  • Added the customization options to the interface

The Generator

V1 is complete and works perfectly! I had to figure out a way to enter objects, and it was quite difficult. See, JavaScript doesn’t really have a dictionary type like Python does, so I had to use an object, which is similar enough and I can look for keys with in, just like in Python. The tricky part was creating such an object from the user’s input. I chose the most user friendly way I could think of, and made separate inputs for the key and value, and you can dynamically add more with an “Add Character Pair” button. I really wish there was an easier way and maybe there is a template out there, but I didn’t consider it until writing this very sentence. Anyways, tomorrow I’ll spend more time refining V1, the inputs and I’ll start working on V2.

To Do

  • Refining the generator and inputs
  • Creating V2
  • Desgining the UI
  • Adding the preset system
  • Generating the static site
0
1
86
Open comments for this post
Reposted by @Mate1166

2h 26m 17s logged

Determinist // Devlog 5 // 2026.08.09

I’ve started working on the website finally!

The plan

I’ll use GitHub Pages to host Determinist until I can get my own domain and personal site up, after which I’ll transfer it there. The plan is to make the generator client sided by using WebAssembly to access Argon2 in the browser without requiring a backend. I wanna do this so that no information leaves the user’s computer, which is a key part of keeping Determinist privacy focused. I chose to use Next.js because I used it before, and it has Static Site Generation which is essential if I want to put the site on GitHub Pages.

What I achieved in 2 and a half hours

  • I made Argon2 work

Yes, that’s about it. I spent most of my time debugging errors and learning basics as I’ve only used JavaScript for making components, not to make more complex algorithms like Determinist’s is. I am a fast learner though, so I expect to be able to recreate Determinist V1 relatively quickly. Starting with WASM on my first serious web project where I’m still learning JS maybe wasn’t the most amazing idea, but hey, I like challenges and learning by doing.

What’s next?

  • Continuing work on V1
  • Porting V2 to JavaScript
  • Desgining the UI
  • Adding the preset system
  • Generating the static site and fixing errors after it’s done

And to the reviewers and people who liked the Determinist CLI…

Thank you! Developing Determinist has been lots of fun and I’ve learned a lot of valuable things. Your support and feedback is greatly appreciated, it motivates me to work every single day. It’s a project I’m really passionate about, as I wanted to create this for years. Thank you all for your support, and I hope you’ll enjoy using Determinist whether it’s in your terminal or the web.

See you in the next devlog!

0
1
102
Loading more…

Followers

Loading…