Embed Paginator
A utility class made for Discord.JS to easily create Paginated Embeds. I tried to make it as easily customisable as I could. New feature ideas are always welcome by opening a GitHub issue.
A utility class made for Discord.JS to easily create Paginated Embeds. I tried to make it as easily customisable as I could. New feature ideas are always welcome by opening a GitHub issue.
Yor, despite being simplified with modularity, was still difficult to maintain. To further simplify and make it easier to maintain, Kita was created. The use of decorators in both Yor and MuseCLI was the main cause of complexity, so it was abandoned in Kita. There is also no longer a CLI tool as there is no longer a need for boilerplating. Users now only need to install the package, copy the code snippet provided in the README, and start coding their desired functionalities. Kita enforces a strict but intuitive and customisable file structure for development which improves maintainability of individual Discord bots. Moreover, in doing so, commands and event handlers for the bot are loaded dynamically and seamlessly, improving development experience.
Yor is the successor of MuseCLI, by being easier to maintain through modular approach, breaking down the complexities into distinct packages, including @yor/core for streamlined Discord Bot development and @yor/cli, a command-line tool facilitating project creation and generating boilerplates. Its modularity allows for easy reusability and integration of plugins and other Yor-related modules. Users of Yor could easily create packages (plugins), similar to how libraries can be created for different web frameworks, to extend common reusable functionalities.
Although I have not yet built a full project with Angular, but I have dabbled with it and loved its sophisticated CLI tool implementation and use of decorators. Since I was freelancing as a Discord Bot Developer, I wanted a streamlined way to speed up my development process. Thus, I have created MuseCLI which follows a similar pattern as Angular, but for Discord Bots instead of the web. MuseCLI automatically scaffolds a Discord Bot project within seconds. It also automatically adds music bot features, which I would then modify to fit requirements, as it was a commonly requested. However, MuseCLI became difficult to maintain and has since been abandoned for a simpler system: Yor. Fun fact, it's called Muse CLI, not just because of the music bot feature, but because it was named the μ's idol group from Love Live!
My portfolio was initially built using Nuxt 3. This was because I was already familiar with Vue and wanted to explore a full-stack development without having a separated backend. However, I found that Nuxt 3 did not suit my taste - I disliked working with their server-side solution with the use of UnJS. As such, I decided to rebuild my portfolio with SvelteKit, which was growing in popularity for its speed due to its compiled nature, and simplicity. After working with SvelteKit, I fell in love with this framework. It was not just fast and simple, but also made it easier to implement accessibility features by providing an API for progressive enhancements while conforming to web standards. As a result, SvelteKit has since become my go-to framework for all my future projects unless I want to explore or a project requires a different library/framework.
As I worked more web application, I realised something: I have to repeatedly implement authentication into each one of them. Instead of focusing on learning or implementing the new system, I ended up spending time setting up my project with an authentication, again. With the goal of resolving this problem, I decided to create this project: Auth Hub. All future projects that fall under my domain, spimy.dev, with the exceptions of Spuiz and Hackathon projects, would make use of this. This enables users to use a single account across all my projects, providing a unified experience similar to how HoYoverse manages accounts across its games. For added security, the dashboard also allows users to revoke their signed-in sessions from any of their devices. This project was also my first time using Tailwind CSS, as it was gaining popularity and I wanted to ensure that it is within my skillset.