uwaa!blog

[TEMP] Important stuff related to uwaa! services. This will be replaced with a better blog/announcement thing, this is temporary. The url will stay the same. [+] Menu


Upcoming Important Changes for uwu.so users

📖
TLDR: uwu.so will migrate to a newer version some time. It will require to create a new account (a key). I know it's annoying, but it's necessary to remove tech debt. I will notify in advance.

As mentioned in the deprecation note, uwu.so will be updated to be more useful, more powerful, much faster and performative. With these changes comes a lot of technical changes and I want to relieve myself of the technical burden that uwu.so has been to develop.

If you look at "Inspect element" on the website or in dashboard you will notice how I reinvented a wheel to create this service and the website. At the time when I started developing uwu.so as a proper service that isn't servicing one user there already was React, but to this day I think React is cancer. However, I discovered Vue, it's like React, but better (in my opinion). With this I also discovered Nuxt, which handled server-side rendering and routing, which simplified my work. I started using this stack in all my newer websites and I love it.

To completely rewrite uwu.so to Vue and preserve what we have right now it would require a questionable level of dedication that I do not have, as it would require to preserve the technical debt and inherently wrong choices I have made (for example, I invented my own i18n and API doc formats, further supporting my reinvention of wheel argument). Thus my decision to make Phantasia back in 2024. To be quite honest, Phantasia is nearly finished, all's that remaining to be done is the dashboard, but recently I realized that Phantasia is practically just a rewrite with the same logic and how things work, but in a new shell, so I decided to scrape it in favor of a one service format.

The new upcoming service will unite all of my services, such as uwu.so (imagination), thighs.moe (shortener), lynette.cat mail (e-mail) and other, into one. Meaning you will only need one account, one dashboard to access them all.

The Changes

A few benefits of this change:

This all sounds good and fine, but there is a catch. Such a big technical leap requires some trade-offs. Since I want to leave all my tech debt behind that means changing the questionable choices I've made years ago.

uwu.so started as a one-user service, it was not meant to support multiple. The multi-tenant support was hacked together and the keys I gave out were manually typed out, which I changed later, but the key system stayed.

I quite like the non-privacy invasive systems, like Mullvad has, so I still would like to never know your email when you're using my services, unless you provide me one, for one or another reason. The problem comes from how the keys were stored: initially, the keys were stored in users.json file as a plaintext "username": "key" format, later on it became a plaintext accessKey field in MongoDB database and later, finally, was reset for initial users and hashed on top with PostgreSQL migration.

I'd like to prevent this from happening, so I will have to reset all users access keys and make new ones. This will require your manual input as a user, since I do not want to know your key. I know, it's annoying, but it's a required measure to prevent account hijacking and improve security overall.

I am saying this right now so that you're ready for this, because as I plan it right now, in order for you to upload you will have to input your key to a form, that will generate credentials for you to login with and then create an upload key, that you will be able to replace in your uploader.

Additionally, it's worth noting that API and it's routes will 100% change. Again, previously I just named stuff what I felt like. I think it's proper for me to make it at least a little bit standardized and neat.

When the time comes to migrate to a newer version I'll be sure to let everyone know in advance that they need to create an account. I promise to give at least 14 days prior to migration to create an account. Of course, you will still be able to migrate your account after the 14 day period.

Also, this blog is temporary. I will move it to a better version that supports more finite control. The domain will remain the same, so you can keep accessing this.

FAQ

Will the old uploads stay accessible after the migration?

Most likely, yes. I do not want to repeat my previous mistake.

Will it still be open-source?

Yes, I want this to remain audit-able to hold myself accountable.

Written by mishashto. Published on .