Activity

Brian

I’ve made some major UI improvements since the previous version! The UI looks a lot more modern now and has an email demo on the homepage. I also removed the circular custom cursor since it was problematic on some devices and didn’t do much.

Love it so far!

Attachment
0
Brian

Believe it or not, it took me an hour to set up Android Studio and add Xposed API as a dependency…. I kept fighting with MavenCentral but turns out their repo is just screwed up.

Just ended up downloading the .aar directly from GitHub and adding as a dependency locally: compileOnly(files("libs/io/github/libxposed/api/100/api-100.aar"))

Attachment
0
Brian

Shipped this project!

Hours: 18.28
Cookies: 🍪 354
Multiplier: 19.35 cookies/hr

I made some huge changes to Bitwarden Auto-Backup Manager, my app that makes automatic, encrypted local backups for your Bitwarden vaults.

During this ship, I managed to expand this tool from a Windows-only app to a cross-platform one supporting macOS and Linux! I learned how to better organize my code by splitting it into nice dedicated modules, and migrated to ESM from the (now ancient I guess??) CommonJS. I also learned more about how each operating system functions and their limitations compared to others, like macOS’ specific dock requirements or Linux’s keychain restrictions on applications installed using containerized package managers (looking at u snap and flatpak).

I’m very proud of making it this far with my project, and hopefully helping some people along the way :]

Brian

Just finished adding full support for Linux! Tested it on both Ubuntu and Fedora, works great.

I made some crazy README.md changes since the old one was long, had some old (now inaccurate) information, and super confusing.

Just released v2.3.2 as alpha! Going to leave it installed on all of my devices for some more testing :D

Attachment
Attachment
0
Brian

Bitwarden Auto-Backup Manager on macOS IS HERE!!! :D

I had to make a bunchhhhhh of changes since macOS has a bunch of quirks that Windows doesn’t (and uses different configuration for stuff like trays and menus). macOS also doesn’t like it when you try reading the app data for another application (which in this case… we kinda need Bitwarden Desktop), so I added some permission checks to prompt the user at the start to enable Full Disk Access.

Oh and I got a new logo now!! Re-designed in Adobe Illustrator straight from the original Bitwarden logo.

Linux is next!

Attachment
Attachment
Attachment
Attachment
Attachment
0
Brian

Just a few more minor bug fixes! I removed some dead code, added some more precise calculation for next backup time (now we use Date to add days/weeks/months instead of hardcoded numbers like 30 for month), fixed some logic and added minor changes to prevent future screw-ups.

Oh and for some reason the tray would only update its status text (for “last automatic backup”) only during a background check, meaning it would say “never” for the first minute of the app staying open. Kinda silly, fixed it!

I’m planning on testing this software on macOS and Linux a little bit, and potentially releasing full cross-compatibility :D right now it’s only available on Windows, but maybeeeee 👀 definitely needs loads of testing though, so still thinking about what I want to do.

Attachment
0
Brian

I refactored the entire project file structure, yippee! index.js has been split into dedicated modules and I added a more robust software update check with policies that I can configure on the API (which rn is hosted on GitHub Pages).

I also added a few helper functions, made a ton of small bug fixes and improvements, and updated the file name formatting to make more sense (now backups use the format bitwarden_encrypted_export_20260302160654.json, similar to Bitwarden’s client).

Attachment
Attachment
0
Brian

I updated the scroll bar design since the Electron upgrade made it ugly, and added a custom notifications toast which looks much nicer and native (compared to Electron’s Notification API)!

Attachment
Attachment
0
Brian

I worked on installing and configuring eslint for Electron and fixed all the errors (also installed a new version comparison library)! Also added CSP for the input modal since I forgot to do that.

Attachment
0
Brian

Made a lot more changes for better cross-compatibility across older Bitwarden/Vaultwarden versions since the older ones used a different API response JSON structure. We’re now using API response models straight from the latest bitwarden/clients source and added minification to the esbuild command to make the file size smoller (🤏). I also added some proper HTTP status handling for the API requests (w/ better error logging during vault sync).

Other than that I removed some now-unused stuff and also made a couple silly bug fixes and improvements like graceful app closing. Oh yeah, and I migrated everything to ESM now! Updated Electron as well as some other libraries and removed unused ones.

v2.2.1 & v2.2.2 has been released!

Attachment
0
Brian

Shipped this project!

Hours: 13.05
Cookies: 🍪 155
Multiplier: 11.9 cookies/hr

I made massive improvements to my Electron app Bitwarden Auto-Backup Manager, which allows you to make automated, encrypted backups of your password vault locally! As I was working on this project, it was fairly difficult navigating through Bitwarden’s source code to create the backups properly, but I managed to build and implement their internal code for this project! I’m really proud of this tool because it’s one of the only options available out there, and lots of people have thanked me for making it. :D

Brian

Final commits before I push out a pre-release! I spent a while researching the best PII (Personal Identifiable Information) practices, and cleaned up a couple of the logs which may contain some unwanted info. I also added some error sanitization to remove emails with a regex from emailregex.com!

Why did this take an hour? Couldn’t tell ya. Honestly was just experimenting a lot of small changes I decided not to push out.

Oh, and I also made a handy GitHub Action to simplify compilation of the Bitwarden clients library! :D

Attachment
0
Brian

Completely forgot to make a devlog, got lost in fixing a few things..

Since the last devlog, I’ve re-organized the file structure of my project and removed it from extraResources since silly me wasn’t bundling any of the static files into the executable (which is definitely not smart)…

Most of this time was spent migrating to the latest @bitwarden/common source code, since it’s been about 7 months since I’ve updated it. This is when I noticed Bitwarden has done MASSIVE changes to their codebase, and have also built a separate @bitwarden/sdk-internal npmjs library that it’s now dependent on. So yeah, I spent a while re-building the source code and making changes to some of my cryptographic functions which broke during the update (also decided to use esbuild from now on to minimize the file size and leave behind any unused files).

I might cleanup my crypto.js functions for better clarity (renaming some things) but for now it’ll work just fine.

… oh and I also updated the project license to GPLv3 because I’m using Bitwarden’s source code and never fixed it.

Attachment
0
Brian

Finally finished updating the error dialogs! I’ve also added a custom dialog utility that’ll be used for master password prompts (previously I was using electron-prompt but it’s buggy and doesn’t match the UI theme).

Attachment
0
Brian

I finally added more robust error logging using electron-log in both the main process and renderer.

I’ve also worked on major error handling improvements for my utility libraries (cryptography, API, etc), and added an “Ignore” option for critical updates (addressing a previous issue where users were forced to update to a potentially incompatible version).

Still working on making some changes to the error dialogs to display more information!

Attachment
0
Brian

First devlog! So far I’ve implemented CSP on the page and moved inline handlers to my JS code, and created a renderer.js to use instead of a script tag (since it’s safer).

I’ve also made some minor changes like making the copyright year dynamic and fixing a small bug which removes null bytes from credentials (since Windows stores credentials as UTF-16LE).

I’m currently working on adding error logging to make troubleshooting easier. I have a GitHub issue I’m trying to resolve right now so hopefully this helps.

Attachment
0
Brian

Shipped this project!

Hours: 21.03
Cookies: 🍪 176
Multiplier: 8.38 cookies/hr

I finally built my first project with Next.js! :D

I was able to make a noice looking, easy-to-navigate personal website using Tailwind CSS and I can finally start my own blog now!

oh, and I learned how to setup a CMS like Payload in the process, yippee!

Brian

The website is finally coming together! Currently working on the contact page, which will have all my methods of contact and some random social links (which I haven’t finished adding yet). This will be the last page :D

Attachment
0
Brian

I’ve finally finished with the blog reader page! I ripped out the custom converters I was working on and replaced it with the @tailwindcss/typography plugin.

Attachment
0
Brian

Been working on the blog reader page but got discouraged after noticing I’m gonna have to scrap all the default Payload converters… 😭 I’ve made a couple small changes as well, like forcing the footer to the bottom of the page. I also added Vercel Blob storage compatibility for uploaded media (and wasted a bunch of time troubleshooting, but I guess that’s what you get when you use Next.js v16 with Payload CMS, since it’s technically not officially supported…). I probably wouldn’t use Vercel Blob storage for any other projects, but since I’m not planning to upload many photos for the blog, might as well simplify things.

Attachment
0
Brian

Yippee, I have finished the blogs page completely! Now it’s time to build the blog reader page, which shouldn’t be too difficult thanks to Payload CMS’s tools. :D

Attachment
0
Brian

I’ve been working on the blog page for a while, and I also added pagination! Now we just need to have <- and -> navigation on the bottom of the page :D

Attachment
0
Brian

I’m experimenting with the position of the music player, I’m thinking pinning it to the bottom of the screen might look nicer!

Attachment
0
Brian

I made a couple more refinements, and I added a music player on the homepage! I’m still playing around with its position, but for now I think this looks pretty good.

Attachment
0
Brian

I’ve been working on implementing a new API route which will display what song I’m currently listening to! It uses the Spotify API and I’ve added refresh token logic as well :D

(Yes, I’m aware the access token isn’t being persisted heh)

Attachment
0
Brian

Hello! To be honest, I completely forgot to document my journey on here (got too distracted with learning Next.js) so this devlog will cover everything I have so far.

I’ve worked on the following over the past few days…

  • Created the Next.js application and built the header and footer.
  • Added a hero, about me, and a cool navigation of skills to the homepage (as well as a neat-looking grid background).
  • Added a status section which uses the Slack API + Hackatime API to check what I’m doing at the current moment (as well as display my local time).
  • Built the database and implemented Payload CMS (which I’ll be using to build the blog page eventually).
  • Reformatted the file structure a gazillion times to make sure it’s noice and clean (also moved the status to an API endpoint rather than serving it in a server component directly).
  • Created a constants.tsx file so I can update certain labels and nav items without modifying the HTML.

But what took you so long, you may ask? Well, most of the libraries I’m using for this project are completely new to me, so most of this time was spent doing trial and error… oh and I also was super indecisive and keep adding/removing implementations.

The icons for the skills section probably took me over an hour to find, ughhh it sucked.

Attachment
4

Comments

Caleb Zaleski
Caleb Zaleski 2 months ago

makes mine look like a 3 year old did it lol

Brian
Brian 2 months ago

naaaa tailwind css is the secret lmaoo, makes website design so much faster. i would definitely recommend giving it a try for your website!

toderodavi
toderodavi 2 months ago

Great work! I’ve have been wanting to use payload for a long time but I always postpone it 😭

Brian
Brian 2 months ago

Thank you! And yeah, this is my first time using Payload and it was actually super easy :D took like 10 minutes max to setup, the documentation is great.

Brian

I’m working on my first project! This is so exciting. I can’t wait to share more updates as I build.

Attachment
0