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.

  • Published on npm and reaching 200-300 weekly downloads

  • 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
  • Grafana

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

  • Single TanStack Start server owning the whole server layer: server functions and route handlers call the business services in memory, with no separate API process

  • End-to-end type safety from the database to the UI

  • Live process tracking streamed to the browser over SSE

  • Page-by-page markdown refinement with an OpenAI vision model through TanStack AI

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

  • TypeScript
  • React
  • TanStack Start
  • PostgreSQL
  • Drizzle
  • Redis
  • RabbitMQ
  • S3
  • Garage
  • Docker
  • Tesseract.js
  • OpenAI

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