June 16, 2025
Not too much today, made a bunch of fixes to the language (e.g. detection), general UI, and especially dropdowns. Can now convert gifs into videos again (and vice versa) and I also fixed the set all to (format) dropdown to work properly with files that could use more than one converter (e.g. ffmpeg and vertd possible). I was also messing with GitHub's CLI to try to build vertd statically, but that was a pain and I gave up lol, while someone submitted a PR to add documentation to vertd which I reviewed and approved. Some more things planned before the large release!
Yesterday was a pain lmao, I was trying to figure out why there was the issue where there is a flash of the wrong theme when the page is loaded for the first time, but turns out it was.. cloudflare cache. i wasted so many hours fixing that, but oh well. I fixed up a few more bugs with the UI/dropdown, added spanish translation (thanks to a person who want to be anonymous), and EVEN more formats - swf and many RAW camera formats (~20). I was also investigating things we could use to implement PDF conversion as well, and there are a few options for it we could consider.
Did a lot more investigating on what formats I can support on VERT, and now I've added another 22 formats, audio and video. Adding support for new formats take a long time because of the research, finding sample files, and figuring out what actually works and stuff. SVG to raster is also finally supported by rendering a canvas (since magick-wasm doesn't support it).
Did a few bug fixes today and yesterday as well - some UI changes w/ dropdown and the donation card, and MIME types making certain browsers automatically change the file extension, :p
Preparing for a large update since it's been a while, I merged a few branches into a singular one to make it push out all the changes in one (as every commit on the main branch automatically deploys to prod @ vert.sh) - video <-> audio conversion, translations/i18n, and the 100+ new image formats from previous devlog. Took quite a bit to merge them together, fix the conflicts, and then test it all out but it all seems to work fine now. Worked on cleaning up the FFmpeg worker code and make it somewhat more reliable (falling back to a default color of just black if there is no cover art), and then did many fixes to the tooltips, dropdown, scrollbar, and cards (especially because there is so much new formats for images now!).
Lots of work this morning/afternoon with investigating what formats magick-wasm properly supported on VERT - using some code to help automate some of the process of extracting the magick-wasm's constants for what formats it can read, and then converting into those (and then from those), I got a huge list of new formats that are now known to work on VERT - 135+ new formats.. this took forever lmao.
First devlog for VERT on Summer of Making! Coming back to VERT after a hot minute since I was busy with quite a lot of other projects - VERT is a project I worked on with nullptr a while ago. Today, I worked on many things, mainly the translation system that's been long awaited - it took much longer than I thought because of having to painstakenly move all the hardcoded strings into a JSON. At first I experimented with ParaglideJS, but i was told of a new project called wuchale which seemed very promising, but couldn't get to work w/ lack of docs & issues.
Before this, I did a lot of smaller bug fixes on the UI (mostly via cherry picking from a branch), added oga/opus support, a small highlight to the format dropdown to show the format the file is already in, and seeing the full filename on hover.
The file converter you'll love - open source, local*, and free forever. VERT is a fast, free, open source and private file conversion website to allow conversion of images, audio, videos, and documents with ease. *Video conversion is done on a server by default, using vertd - a thin wrapper around FFmpeg allowing you to quickly convert videos on the GPU with VERT's web interface. Originally founded by nullptr & realmy, actively developed by nullptr & JovannMC.
Many more updates for v1.2.0 of the app, and probably where I'll ship it with! I added a manual update section for people to update manually if unsupported through web (or unsuccessful). I also added a demo mode to the app mostly so people here can actually try it out (without any of Shiftall's products)! There's many more updates & fixes too, but that's where it's at so far, time to ship!
Someone had helped me translate the project to Japanese so I added that, and the rest of the time was trying to use WebUSB to update the GX(6/2) dongles referring to a bunch of existing code and nRF documentation. I think it's been figured out but because of how Windows works with handling USB drivers.. it will just never work. I love Windows. I need to test it out on MacOS, Linux, and mobile at some point but other than that, project's pretty complete (as much as I can w/o other firmware files). Might as well ship the project without the GX dongle support (which is in another branch).
Added a step 0 (that's optional) to check the version of the devices before updating, actually disable the buttons if Web Bluetooth is disabled, more abilities to translate things (such as release notes), and add more toasts that pop up so it's more obvious to mobile users what it's doing.
Sadly I forgot to do devlogs when I started the project.. but oh well.
Added a FAQ to the site (w/ troubleshooting stuff as well). Made it fully translatable with some quirks to keep the links actually clickable and stuff.
This is a website (with a demo/simulation mode so you can test, make sure to enable it!) that allows you to update the firmware on many of Shiftall's products (mostly the HaritoraX series, which are IMU full body trackers for VR), so you do not need to download the official app (allowing you to update on mobile again!). It uses Web Bluetooth to update the HaritoraX Wireless and 2, with WebUSB for the GX(6/2) dongles (when it's completed). The devices use the nRF52 platform and can update via BLE or USB.
This was widely regarded as a great move by everyone.