I work on meteorite & TWIm whenever I have time and motivation. Feel free to explore, but don't expect weekly updates!
Login finished - TWIm #7
2026-10-18
2026-10-18
I finally implemented QR Code login! This wraps up the login stage of meteorite.
The QR code can only be scanned on mobile devices (Android and iOS), it is also not yet tested on those devices, I have no idea what the UI will look like there.
There is one thing missing: A live preview of what the camera sees.
Again, I do not know yet what I will implement next week, maybe device verification?
OAuth progress - TWIm #6
2026-10-04
2026-10-04
Last week I implemented OAuth login with the Authorization Code flow. It is usable in the UI and it works!
I also removed the option to login via SSO (and the plan with IdPs) as it will be deprecated by the time meteorite will be released.
No idea what I will be doing next week, maybe the second half of OAuth login?
As always, contributions are always welcome!
Same as last week - TWIm #5
2026-09-13
2026-09-13
I didn't get much done last week as I was pretty busy with other things. I might only write the next entry when I make significant progress.
Last week I (almost) finished the implementation for refreshing access tokens, I had a new idea recently which I will implement next week. Also the function is not hooked up to the UI yet, so that's something I will need to do too.
I sadly didn't get anything else done. (It would all go smoother and faster with contributors!)
OAuth Login and access tokens - TWIm #4
2026-09-06
2026-09-06
Next week I finally want to wrap up logging in by adding the option to login with OAuth.
Last week I didn't write an entry as I wanted to focus on other things, but I ended up learning more about OAuth with Matrix.
OAuth Login
Everything except this (IdPs are also missing but we will get to that later) is already implemented.
There are two options to login: 1) Scanning a QR code or 2) Authorization Code flow.
Authorization Code flow requires to open a URL where the user can log into their account.
When using the first option, the device is already marked as verified.
Identity providers
A user can also login with an identity provider of choice (if supported by his homeserver).
Examples of IdPs: Google, Github, Apple, etc.
Adding these login options is also a goal for this week, but it might reschedule it for next week if time gets tight.
Refreshing access tokens
This has been on the todo list for a long time (because I was unsure how I should do it).
I was finally able to figure it out, thanks to the helpful community behind the Matrix Rust SDK.
If I am unable to implement one of the things this week I will do so next week.
And as always, contributions are always welcome!
Login methods - TWIm #3
2026-08-23
2026-08-23
In the coming week, I will finally focus on more options to login.
Last week I cleaned up UI code and added the retry button to the Error screen, as I said.
Check homeserver capabilities
When clicking the "Check" button the Client should figure out what login methods are actually supported. This is especially mandatory for OAuth login.
The function to do so is already present, I just never actually hooked it up to the button.
Login with Username and Password
Logging in via homeserver is already implemented, the two missing methods are OAuth and Username + Password.
If you are interested in meteorite, contributions are always (very) welcome!
That's all for this week. See you next week!
Yet another UI refactor - TWIm #2
2026-08-16
2026-08-16
This week, I will focus on cleaning up meteorite's UI code.
Last week I added everything I talked about and a few more things, which I mostly found out about via the new CI Checks.
For example I removed a crate used to previously display errors before the UI started. I isolated the errors that could happen and just passed them into the UI.
UI cleanup
The UI currently determines what to display via different states which are manually set.
Instead I would like each different screen (e.g. Login) to be a callable function. This would greatly simplify redirections from the main screen to the login screen and back.
The other thing I would like to do is adding a retry button to the error screen. Most errors are recoverable if re-attempted.
If you are interested in meteorite, contributions are always (very) welcome!
That's all for this week. See you next week!
Mobile checks, Android keyring and more - TWIm #1
2026-08-09
2026-08-09
This week, I’m planning to focus on improving meteorite's mobile support and cleaning up some of the login code.
Mobile checks
First, I want to add my Rust checks to both Android and iOS. The goal is to make sure meteorite continues to compile on mobile as development continues, before I start adding more mobile-specific functionality.
There were already a few changes needed to make this possible. For example, I switched to a different crate for resolving the save path, since the one I was using previously doesn't support Android.
Android keyring
The mobile checks also depend on a missing piece of meteorite's Android support: there currently isn't an Android keyring implementation.
So, I’m planning to work on adding native Android keyring support this week as well.
Login cleanup
While working on the keyring, I also want to clean up the login code.
At the moment, some of the login functionality is more intertwined than I’d like, so I’m going to split it into smaller helper functions. This will include things like loading the currently saved account data and saving new account data.
So, the plan for this week is to get the mobile checks in place, add the Android keyring, and make the login code a little easier to work with.
If you are interested in meteorite, contributions are always (very) welcome!
That's all for this week. See you next week!