My personal projects

Here are a few personal projects I've worked on over the years. More on GitHub .

A component to schedule meetings more efficiently.

  • A component to help users find the best time for meetings by selecting their availability.

  • Supports integration with React and Vue

  • Documentation made with VitePress

  • Tested with Vitest and Testing Library

  • TypeScript
  • React
  • Vue.js
  • VitePress
  • Vitest
  • Testing Library

A collaborative URL shortener platform for teams.

  • Authentication, team workspaces, role-based access, and invitation flows

  • Dedicated redirect service and event-driven architecture using RabbitMQ workers for email delivery and analytics aggregation

  • Full-stack monorepo with containerized infrastructure and observability dashboards

  • API and redirector documented with OpenAPI

  • TypeScript
  • React
  • Hono
  • PostgreSQL
  • Redis
  • RabbitMQ
  • Docker

A document processing platform built around a queued OCR workflow.

  • Converts PDFs into structured downloadable outputs

  • Upload validation, authenticated user flows, progress tracking, and page-by-page processing

  • Full-stack TypeScript monorepo with background workers, object storage, and containerized infrastructure

  • Production-oriented service split for API, frontend, workers, database, cache, queue, and storage

  • TypeScript
  • React
  • TanStack
  • tRPC
  • PostgreSQL
  • Drizzle
  • Redis
  • RabbitMQ
  • MinIO
  • Docker
  • Tesseract.js
  • Ollama

A full-stack manga reader application.

  • Browse and read manga from various sources

  • REST API with JWT authentication and protected pages

  • Tracking of user reading history

  • PWA, responsive design for mobile and desktop, and dark mode support

  • Media storage backed by MinIO

  • Node.js
  • TypeScript
  • NestJS
  • Prisma
  • PostgreSQL
  • MinIO
  • Vue.js

My personal website showcasing my projects and blog posts.

  • Built with Nuxt 4 and Tailwind CSS

  • Blog powered by @nuxt/content

  • TypeScript
  • Vue.js
  • Nuxt
  • Tailwind

A TypeScript library for correcting spelling mistakes.

  • A library that uses a dictionary to correct spelling mistakes in a given text.

  • Implements a simple algorithm to find the closest word in the dictionary.

  • Tested with Vitest

  • Node.js
  • TypeScript
  • Vitest

A Vue.js component for multi-select dropdowns.

  • A Vue.js component for multi-select dropdowns.

  • Supports single multi-select modes, Grouped options, Searchable options.

  • Customizable styles and templates.

  • JavaScript
  • Vue.js

A web app to track macronutrient intake and calories.

  • Track daily intake of proteins, carbohydrates, and fats

  • Calculate total calories based on macronutrient intake

  • Add, edit, and delete food items with their nutritional information

  • User authentication and data persistence with MongoDB

  • Node.js
  • JavaScript
  • Express
  • Vue.js
  • MongoDB