Work
My work
My own live web app first, then demo websites for local businesses, then the web and machine-learning projects I've built along the way.
Showing 15 items
Live product · built by me
NestWillow
Property management that feels calm.
A live web app I designed and built. NestWillow connects landlords with their renters — leases, rent, maintenance, documents and messages in one private workspace.
- Your portfolio
- Properties, units and lease terms, organised.
- Rent collection
- Card payments and manual records with clear statuses.
- Maintenance
- Renters report issues; you track them to done.
- Private by design
- Each account’s data is isolated — always.
Built with
- React 19
- Vite
- TanStack Router (server-rendered)
- TanStack Query
- Tailwind CSS v4
- Supabase (backend and sign-in)
- Stripe (card payments)
- Cloudflare (hosting)

Demo sites
Demo concepts I designed and built around real local businesses. The businesses are real, but they didn't hire me and these aren't their official websites.

Demo concept, not a real client
9 Natural Nails & Spa
Nail salon and spa
A 5-page salon site with Home, Services, About, Reviews and Contact pages. It shows a sample services menu, client reviews, hours, a map, tap-to-call and a “Book Now” button.
View demo(opens in a new tab)
Demo concept, not a real client
Nannu's Pastizzi
Maltese bakery
A 5-page bakery site with Home, Menu, About, Reviews and Visit pages. It has a full menu from pastizzi to Maltese sweets, the family story, directions and hours, plus order-ahead and catering info.
View demo(opens in a new tab)
Demo concept, not a real client
Best Auto Repair Service
Auto repair shop
A 5-page garage site with Home, Services, About, Reviews and Contact pages. It covers everyday repairs, a DriveON inspection centre section, customer reviews, hours and directions, with tap-to-call throughout.
View demo(opens in a new tab)
Demo concept, not a real client
Red Hat Cleaners
Alterations and dry cleaning
A 5-page site with Home, Services, About, Reviews and Contact pages. It has a bridal and South Asian alterations section, tailoring and dry cleaning, space for a before-and-after gallery, hours, a map and tap-to-call.
View demo(opens in a new tab)
Demo concept, not a real client
Escape Studio Hair & Spa
Hair salon and spa
A 5-page salon site with Home, Services, Team, Reviews and Contact pages. It has colour and colour-correction services, space for a colour gallery, the stylists and their specialties on a Meet the Team page, reviews, and booking by phone.
View demo(opens in a new tab)
Projects
Apps, APIs and machine-learning experiments from my training and my own time.

GAMERS.PH: View Live (opens in a new tab)
A gaming hub with reviews, news and trailers for console, PC and mobile games.
- React
- Node.js
Full description
A gaming hub covering console, PC, and mobile titles, with reviews, news, and trailers for casual and hardcore gamers alike.

Battle Tank: Play Now (opens in a new tab)
A retro arcade shooter in C#. Survive the desert across levels that get harder.
- C#
- Game Dev
Full description
A retro-inspired arcade shooter built with high-performance logic. Maneuver through desert terrain, destroy enemy shapes, and survive multiple levels of increasing difficulty.

Agent Data API: View Project (opens in a new tab)
A Spring Boot REST API for managing agent records, with interactive Swagger docs.
- Java
- Spring Boot
- REST API
- Hibernate
Free server: may take up to a minute to wake up.
Full description
A Spring Boot REST API for managing agent records. Full CRUD with Spring Data JPA and Hibernate over an H2 database, documented with an interactive OpenAPI/Swagger interface.

Agents and Missions: View Project (opens in a new tab)
A full-stack Java web app linking agents and missions, built with Spring Boot and Thymeleaf.
- Java
- Spring Boot
- Thymeleaf
- JPA/Hibernate
- Gradle
Free server: may take up to a minute to wake up.
Full description
A full-stack Java web application built with Spring Boot 4 and Thymeleaf. Agents and missions are modelled as a bidirectional many-to-many relationship through Spring Data JPA and Hibernate, so each agent's page lists their missions and each mission's page lists its assigned agents. Styled with Bootstrap 5 and seeded with sample data at startup.

CNN Image Classification: View Notebook (opens in a new tab)
Two TensorFlow/Keras neural networks that read handwritten digits and classify clothing.
- Python
- TensorFlow/Keras
- CNN
- OpenCV
- scikit-learn
Full description
Two convolutional neural networks built with TensorFlow/Keras, applying the same architecture to handwritten digit recognition and clothing classification. Custom images are preprocessed with OpenCV and run through the trained models.

News Headline Classifier API: View Live (opens in a new tab)
A live machine-learning service that sorts a headline into one of 41 news sections.
- Python
- scikit-learn
- NLP
- Flask
- Docker
Free server: may take up to a minute to wake up.
Full description
A machine learning model deployed as a live web service. A Naive Bayes classifier trained on 47,590 news headlines predicts which of 41 news sections a headline belongs to.

K-Means Image Compression: View Live (opens in a new tab)
An interactive web app that rebuilds any image from a smaller colour palette.
- Python
- scikit-learn
- Unsupervised Learning
- NumPy
- Flask
- Docker
Free server: may take up to a minute to wake up.
Full description
Unsupervised learning applied to images: every pixel is clustered as a point in RGB colour space, then rewritten as its cluster centre to rebuild the image from a reduced palette. Interactive web app built with scikit-learn and Flask, deployed with Docker.

Case study, no longer live
BUDDIE.PH
A pet care platform for health records, verified vets and booking care in one place.
- React
- Node.js
- MongoDB
Full description
A trusted pet care platform for managing pet health records, connecting with verified veterinarians, and booking care — all in one place.

Case study, no longer live
PARKRIDGE
A community tool for announcements, facility requests, issue reports and construction updates.
- React
- Node.js
- MongoDB
Full description
A community management tool keeping residents connected through announcements, facility requests, issue reporting, and construction monitoring.
More on GitHub: See all my code (opens in a new tab)
Like what you see?
Questions about any of these, or want to talk about a developer role? Say hello.