Taking on website, system & data projects

Websites and systems that help businesses get found and grow.

I take projects from the first conversation to go-live: requirements, UI/UX in Figma, development, configuration, UAT, SEO and Google Search Console. Every project below is running today and was built by me from scratch.

What I can build for you

For small businesses and corporate teams

Pick one service or let me handle the whole project. Either way, you deal with one person who understands both the technology and your business.

Business & corporate websites

Homestays, caterers, clinics, shops and company pages: fast, bilingual if needed, with WhatsApp enquiries. Built in Next.js or lightweight vanilla JavaScript.

  • Next.js
  • React
  • TypeScript
  • Vanilla JS

Booking, admin & internal systems

Private dashboards for your team: bookings, calendars, payments, receipts, reports and activity logs, with secure logins and a proper database.

  • Server Actions
  • PostgreSQL
  • C# .NET
  • REST API

SEO & Google visibility

Help customers find you on Google: Search Console setup and monitoring, sitemap and robots, structured data, social previews, custom 404 pages and page-speed tuning.

  • Search Console
  • Sitemap
  • Schema
  • Lighthouse

UI/UX design

Clear, friendly screens designed in Figma first: mobile-first, large touch targets and readable text for visitors of every age.

  • Figma
  • Prototyping
  • Accessibility

Data dashboards & automation

Clean up messy spreadsheets and databases, automate repeat work and turn the numbers into Power BI dashboards managers actually use.

  • Power BI
  • KNIME
  • SQL
  • Python

Digital invitations & RSVP

Wedding and event cards with music, maps, countdown, an RSVP list and a live photo wall for guests, with an admin dashboard for the hosts.

  • RSVP
  • Live Gallery
  • QR codes
From scratch to go-live

One person, the whole journey

You never have to coordinate a designer, a developer and an SEO person separately. I handle every step and keep you updated along the way.

  1. Discovery & requirementsWe talk about your customers, your workflow and what success looks like.Requirements · scope
  2. UI/UX designLayouts in Figma so you can see and approve the site before any code.Figma · prototypes
  3. DevelopmentFront end, back end and database with clean, documented code in Git.Next.js · SQL · APIs
  4. ConfigurationDomain, DNS, SSL, hosting and environments set up and secured.Vercel · Cloudflare · DNS
  5. Testing & UATAutomated tests on phone and desktop sizes, then you test and sign off.Browser tests · UAT
  6. SEO & Search ConsoleMetadata, structured data, sitemap, robots and a custom 404 page; Search Console verified and indexing requested.GSC · sitemap.xml · schema · 404
  7. Go-liveRelease to production and check the live site end to end before announcing.Release · live checks
  8. Support & growthSearch Console monitoring, updates and handover notes so you stay in control.Monitoring · documentation

Every launch includes

  • Mobile-first, responsive design
  • Domain, DNS & SSL configured
  • sitemap.xml & robots.txt
  • Google Search Console verified
  • Structured data & social previews
  • Optimised, lazy-loaded images
  • UAT with your sign-off
  • Custom 404 page
  • Handover documentation
Case studies

Projects in detail

Screenshots were taken from the live websites in October 2026. Tap any image to enlarge it.

LiveClient website · Hospitality

Homestay Shimah Jay

A welcoming place to find your next family stay in Melaka.

The brief

Present eight family homestays in Umbai and Telok Mas clearly, and give Malay- and English-speaking guests an easy way to contact the hosts.

What I built

  • A page for each house with photo galleries, facilities, capacity and the nightly rate set by the owner.
  • A homepage slideshow, house filter (Telok Mas / Umbai), trip planner, FAQ and holiday calendar.
  • A rule-based guest assistant that answers common questions without any paid AI service.
  • A custom 404 page that guides visitors who follow an old or mistyped link back to the houses.
  • Malay at / and English at /en, with permanent redirects for old /ms links.

UI / UX decisions

Warm natural colours and a calm serif headline give a family feel. Two-column house cards let guests compare on a phone, and a large WhatsApp button is always within reach.

Engineering

One typed data file feeds the cards, house pages and assistant. Canonical URLs, hreflang, structured data and a sitemap covering every house in both languages support search. I monitor Google Search Console, diagnose indexing and canonical issues, and fix structured-data warnings. Hosted on Vercel with separate production and preview branches.

8homestays in one site
BM / ENtwo languages
WhatsAppdirect enquiries

Technologies

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS v4
  • Vercel

Skills applied

  • Responsive UI/UX
  • Bilingual routing
  • Technical SEO
  • Accessible galleries
  • Browser testing
In developmentWeb application · Private admin

Homestay Booking Management System

One place to see which house is free, who has paid and which house needs cleaning.

The brief

The family takes bookings from WhatsApp, Airbnb, Booking.com and walk-ins. They needed a simple admin they can use on a phone, so nobody double-books a house or forgets a payment.

What I built

  • Dashboard: today's check-ins and check-outs, occupied houses, unpaid balances, monthly revenue and 12-month charts.
  • Bookings: searchable table with filters and CSV export, plus a house calendar where tapping an empty night starts a booking.
  • Pricing & availability: weekday, weekend and public-holiday rates calculated automatically, with a live availability check.
  • Payments: deposits, balances and refunds with PDF receipts.
  • Housekeeping: a cleaning task opens on check-out and is sorted by urgency before the next guest arrives.
  • Customers, reports, catalogue versions, one-click WhatsApp messages and an activity log of who changed what.

Business rules & security

Overlapping bookings for the same house are blocked. Money is stored in sen (whole numbers) so totals never drift. Four admin accounts use scrypt password hashing, one session per account and limited login attempts.

Status

All features work locally on SQLite (Node's built-in node:sqlite). The same SQL is tested against PostgreSQL, ready for a hosted database before the admin goes live.

20admin pages
9API routes
22end-to-end tests

Screenshots are kept private because the system holds guest names and phone numbers.

  • Dashboard
  • Bookings
  • Calendar
  • Customers
  • Houses
  • Payments
  • PDF receipts
  • Housekeeping
  • Messages
  • Reports
  • Catalogue
  • Activity log

Technologies

  • Next.js 16 App Router
  • Server Actions
  • React 19
  • TypeScript
  • SQLite
  • PostgreSQL
  • Playwright

Skills applied

  • System design
  • Data modelling
  • Authentication
  • Business rules
  • End-to-end testing
LiveClient website · Food & events

Kambing Golek Melaka Official

From a first impression to a ready-to-send event enquiry.

The brief

A Melaka catering business wanted customers to understand each package, see the food and send a complete enquiry. Prices are discussed on WhatsApp, so the site focuses on what each package includes.

What I built

  • Homepage sections ordered from attention to enquiry, package listing and detail pages, gallery, reviews, FAQ, service area and contact page.
  • An event details form that opens WhatsApp with the enquiry message already written.
  • About us, terms and privacy pages, plus a cookie choice banner.

UI / UX decisions

Bold food photography and a warm red and gold palette match the brand. Buttons are large and repeated where people decide. Looping decorations use CSS and pause when off-screen so phones stay cool.

Engineering

Every photo goes through a Sharp pipeline into WebP. Metadata, structured data, sitemap and robots support search, and the domain is verified in Google Search Console through DNS with the sitemap submitted. A scripted test suite checks the menu, lightbox, form, carousel and cookie banner.

19static pages
67automated interaction tests
WhatsAppprepared enquiries

Technologies

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS v4
  • Motion
  • Lenis
  • Sharp

Skills applied

  • Brand-led UI
  • Enquiry forms
  • Image optimisation
  • Technical SEO
  • Interaction testing
LivePersonal project · Events

Digital Invitation & RSVP Maker

A wedding card that grandparents and teenagers can both enjoy, first used for my own wedding.

The brief

Most guests open an invitation from WhatsApp on their phone. It had to be beautiful, simple to read in Malay, and collect RSVPs in one list. I built it as a reusable template so it can be adapted for other couples.

The invitation

  • An animated gate cover that greets each guest by name from their personal link, with music that starts on tap.
  • Countdown, programme timeline, location with Waze and Google Maps, and an add-to-calendar file.
  • RSVP form (side of the family, attendance, number of guests), wishes and contacts in a bottom-sheet menu.

The Live Gallery

  • Guests take a photo or a short video, or pick one from their phone.
  • Filters, crop, frames, Photobooth strips and an optional voice note, all processed on the phone.
  • A shared wall with likes, a projector slideshow for the venue screen and table QR codes.

Admin

Guest list with totals, Excel export and printing; moderation for wishes and photos; and switches to open or close RSVP and the gallery.

2experiences: invitation & gallery
8admin on/off switches
11user-acceptance test scripts

Technologies

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS v4
  • Motion
  • Camera & MediaRecorder APIs
  • IndexedDB
  • QR codes

Skills applied

  • Mobile-first UX
  • Media processing
  • Accessibility
  • Privacy (noindex)
  • Domain & DNS
LivePersonal project · Vanilla JavaScript

This Portfolio

Rebuilt to be lighter, clearer and friendlier for every visitor.

The problem

My previous portfolio used several animation libraries, a particle background, a custom cursor, a chatbot and three languages. It looked busy and worked phones hard.

What I built

  • Plain HTML, one stylesheet and one small vanilla JavaScript file. No framework, no build step, no tracking.
  • Light and dark themes plus a larger-text button, both remembered on the visitor's device.
  • Keyboard-friendly menu, a native <dialog> image viewer and one-time scroll reveals that respect “reduce motion”.
  • All screenshots converted to WebP and lazy-loaded: every image used by the new pages adds up to about 1 MB.
0frameworks or libraries
1 + 1CSS and JS file
WebPlazy-loaded images
An earlier version, still available under “Previous version”.

Technologies

  • Vanilla JavaScript
  • HTML5
  • CSS3
  • IntersectionObserver
  • GitHub Pages
Start a project

Need a website or system like these?

Tell me about your business or event and I will suggest the simplest way to get it online and found on Google. Timeline and cost are discussed directly.