thumbnail

MaiSocial - Part 4

Background This is another update of my current hobby project. You can read the previous parts here: MaiSocial - Part 1 (Backend & Frontend initialization) MaiSocial - Part 2 (Comment section, Google SSO) MaiSocial - Part 3 (WebP, romaji search) I had some spare time during a sprint, so I decided to work on my personal project a bit. The feature I wanted to make is a playlist feature, where users can create playlists & can share them publicly. In this post I will be talking about a few things: ...

June 23, 2025 · 5 min
thumbnail

MaiSocial - Part 3

Background This is a short update of my current hobby project, you can read the previous parts here: MaiSocial - Part 1 (Backend & Frontend initialization) MaiSocial - Part 2 (Comment section, Google SSO) Recently I have been busy & I actually got sick for a whole week, so this update was a bit overdue. This update is going to be a short one, discussing two things: Using WebP instead of PNG Translating kana to romaji WebP? According to Google (the developers of the WebP format), WebP is a modern image format that supports lossless and lossy compression for images. Based on their own research, WebP lossless is 26% smaller compared to PNG, and WebP lossy is 25-34% smaller compared to JPEG with similar quality. As of writing, WebP is supported by at least 95.92% of all users. ...

May 24, 2025 · 4 min
thumbnail

MaiSocial - Part 2

Background This is a continuation of MaiSocial - Part 1, feel free to read that section first. On this part, I wanted to add a few features: Google SSO using Supabase There is no particular reason why I avoided using Firebase, I just wanted to explore Supabase Simple comment section under each song I will not be doing replies or nested comments (at least for this part) Nickname By default, I will use their UUID provided by Supabase, because I don’t want to leak their email or name I won’t have any unique nickname checking (for this part at least) Authentication Supabase Configuring Google Auth to work with Supabase is pretty straightforward, personally for me Supabase’s docs has a pretty detailed explanation on how to set it up. ...

March 27, 2025 · 5 min
Sample reply

Hosting a Discord Bot in Vercel

Did you know that you could host a Discord bot in Vercel for free? I didn’t knew until I googled around. If you’re curious on how you could host your own bot in Vercel, follow along The theory I had made bots before, but they were like servers that are always on, so that the bot has an online status. But that was a long time ago. Discord supports webhooks for their slash commands, so when a user sends a command to your Discord bot, Discord will send a POST request. Vercel supports serverless functions, so it is perfect for this use case (despite them not recommending it). ...

March 2, 2025 · 5 min
thumbnail

MaiSocial - Part 1

Background Back when I made MaiFavorite/MaiChart (same project, just different name), I wanted to achieve two things: Bookmark favorite charts, using localStorage so that it works without having to store each user’s favorites Have an estimated rating calculator for each chart With the release of BUDDiES PLUS version, the first point is redundant because you can have up to 30 favorite songs, and it will actually show up on the arcade cabinet when you play. The rating calculator seems to be an only me thing, because other people would just use the “Recommended based on rating” category in the arcade cabinet as well. With that in mind, I wanted to remake the website, using a different stack in order to be a learning experience for myself. ...

February 11, 2025 · 6 min
keyboard

My 1 month experience of using a split keyboard

Background I had some spare keyboard switches and keycaps lying around, so I decided to buy a barebone keyboard. Not just any keyboard, but a split one. The split keyboard that I am using is the Lily58 Pro. Something you should know I only realized after receiving the barebones keyboard, that split keyboards require some special keycaps. For example, 1u - 1.75u spacebar, 1u - 1.75u enter, 1u backspakce, 1u tab, etc. Thankfully I found an online store that offers custom keycap printing service, so I just made the keycap design myself and asked them to make the keycaps for me. ...

February 10, 2025 · 2 min

Creating a simple spendings tracker app using Expo.dev

Background Currently my family depends on me to count the monthly spendings. Their reasoning is that so I know the cost of living. The way this works is that my mother will write out the spendings on a book everyday, and on the start of the month I will read her handwriting, add the items to a google sheet, make sure there are no items missed, and report the monthly spending of that month to my parents. After 7 years of doing it, I had enough because: ...

January 27, 2025 · 4 min

Creating another personal site and buying a domain

Background In an effort to become more professional, I decided that I want to have a personal portfolio site, and buy a domain that uses my name. I also want to relearn React and Tailwind, so this is a good opportunity for me. Creating a portfolio site Since my portfolio site has no interactive experience, a static site is my end goal. Since the static site is going to be built into HTML by Vite, I could have just made a vanilla site, purely using HTML and CSS. In the end I still chose to use React and Tailwind for learning purposes. ...

January 25, 2025 · 3 min
broken phone

Your Phone and You

Backstory My phone screen got broken when it fell down, rendering it unable to be used at all. When I took it to the service center, the cost of repair was about 20% of my phone price, and it need to be left there for about 2 working days. Luckily for me I have a secondary phone, but it was a 4 year old phone running LineageOS 18. Even then, the past 2 days waiting for my phone to be fixed was riddled with anxiety. ...

December 2, 2022 · 4 min
screnshot

My First "Game"

On the 20th of March this year, I bought a bundle from Humble Bundle, called the “Stand with Ukraine Bundle”. It included many games, including Back 4 Blood, Satisfactory, Starbound, and many more. The bundle also contained other software and courses. One of the courses was this course, about 3D game development in Unity. I had some interest in game development, so I decided to follow along the course. The result was this game that I uploaded to their site. Here is a link to the source code. If you are tech-savvy enough to read the game scripts, you would notice a few debug/cheat keys that I left in there on purpose. ...

May 26, 2022 · 1 min