- I write JavaScript (React.js, Next.js, React Native) and Python.
- I am a Frontend Web Developer.
- My Pronouns are He/Him.
- See what I am currently working on.
- My last project was Gradie ✦ FicRadar.
- If you'd like, you can support me on GitHub Sponsors or Buy Me A Coffee.
- Languages - HTML5, CSS3, JavaScript, TypeScript, Python3
- Frameworks/Libraries/Toolkits - React, NextJS, TailwindCSS, SASS/SCSS, React Native, Jotai, Zustand, Redux (Toolkit), React Router, Tanstack Query
- Tools - Expo SDK, Vite, shadcn/ui, Radix, Clerk, Git, VS Code, PyCharm, Vercel, Netlify, GitHub, Firebase, pnpm, Yarn, NPM, Chrome
- Boost Your Productivity with Shell Commands: A beginner's guide to creating aliases and functions - Hashnode ✦ Dev.to
- Why Gradie's colour switcher does two things at once (and why that's not a bug) - Hashnode
I've implemented features for libraries including epubjs-react-native and Leech.py, contributed data to the ng-universities API, contributed to MDN Web Docs and overhauled the WebToEpub README.
I've contributed to community projects including Skitter API, ngTechEvents, and university tech communities MLSA and GDSC. I've reported bugs for tools like Polar and FanFicFare (#914 & #922).
For two consecutive years (2024–2025), I've been a core contributor to APIConf (Repo), Africa's premier API literacy and innovation conference.
-
Gradie
Gradie is a design tool that extracts the most prominent colours from an image and turns them into a smooth, beautiful gradient.
-
CrossRename
CrossRename is a tool that helps make your file and directory names work perfectly with your computer. It doesn't matter if you use Linux, Windows, or macOS. CrossRename makes sure your file names follow your computer's rules, so everything runs smoothly.
-
AspectMatic
Figma GitHub Repo ✦ Figma Community ✦ Penpot GitHub Repo ✦ Penpot Hub
AspectMatic is a Figma/Penpot plugin that automates aspect ratio calculations for developers. I got tired of calculating the long way, so I made a plugin.
Both versions were built with TypeScript, Prettier, and Tailwind CSS. The Figma plugin uses Create Figma Plugin and Preact, while the Penpot version uses React.
-
TerminalAlert
TerminalAlert is a Python CLI tool that ensures you never miss the completion of your terminal commands. Whether successful or not, it sends desktop notifications to keep you informed, allowing you to focus on other tasks while commands run in the background. Built with Python 3.
-
FicRadar
Github Repo ✦ Chrome Web Store ✦ Mozilla Firefox Browser Add-ons ✦ Microsoft Edge Add-ons
FicRadar is a browser extension that collects fanfiction-related links from a specific user's interactions (forum posts and comments) without storing the actual content of those posts. It only gathers the URLS of the works they engage with and counts how often each link appears. This helps you discover stories they interact with the most, making it easier to find new reads from sources you trust.
Other Projects
-
WorkQuest Portfolio website built for SIWES (internship) applications. Built with ReactViteTS.
-
Tales Trove A browser extension for saving links to fanfiction and web fiction across FanFiction.net, Archive of Our Own, and several XenForo sites. Built with Plasmo, React, TypeScript, and Tailwind.
GitHub Repo ✦ Chrome Web Store ✦ Firefox Browser Add-ons ✦ Microsoft Edge Add-ons
-
FicImage A CLI tool that adds missing images back into FicHub-generated files. Built with Python.
-
GeoTrace A React app that maps any IP address using the IP Geolocation API and Leaflet.js.
-
ReactViteTS A personal Vite + React + TypeScript starter template, used as the base for most of my frontend projects. Includes TailwindCSS v4, Prettier, ESLint, Stylelint, Husky, lint-staged, and sorted imports out of the box.
Work In Progress
-
Web
-
PencilFX
A tool that transforms images into pencil sketch art, running entirely in the browser. Built with a React frontend and Python image processing via Pyodide — a WebAssembly-compiled Python runtime — as an introduction to WASM in web projects.
-
Unfoldly
A link shortener that generates custom OG images. Takes a URL, extracts metadata and the site's favicon, and creates a visual preview using a canvas-based template. The shortened link redirects to the original URL with an enhanced share preview.
-
-
Extensions/Plugins
-
FontCache
A browser extension for collecting and organising fonts from any webpage, saved with site and date details.
-
ChartFlow
A Figma extension for generating and editing charts with customisable options.
-
AdaptImage
A Figma extension that generates optimised images for different screen sizes and frameworks. Outputs proper
<picture>tags, supports framework-specific image components (e.g., Next.js<Image>), and converts to modern formats like WebP. -
EpubView
A VSCode extension for reading EPUB files directly in your editor.
-
-
CLI
-
Color Sweep
A CLI tool that scans Tailwind projects for overused arbitrary color values and promotes them into your config as named tokens.
-
PhotoLean
A CLI tool for optimising image file sizes.
-
On Hold (Archived Projects)
These projects are unlikely to be finished/updated anytime soon
-
Web
-
Portfolio Website
-
-
Mobile
-
StatusSnip: A mobile app for trimming and sharing WhatsApp status videos.
-
SnapQR: A QR code scanner and generator app built with React Native and Expo.
-
TextMotion: A mobile app for creating videos and GIFs with dynamic text effects.
-
SoloShot: A camera app that recognises your face and automatically blurs others in photos.
-
StatusCanvas: A mobile app for creating stylish WhatsApp status images with custom fonts, colours, and layouts.
-
Ebook reader: A mobile app for reading EPUBs and PDFs, built with Expo, React Native, and @epubjs-react-native.
-





