Skip to content
View lst97's full-sized avatar
πŸ₯”
small potato
πŸ₯”
small potato

Organizations

@canto101-organization @info-hawker-australia @lst97-oss

Block or report lst97

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
lst97/README.md

Nelson Lai

Full-stack developer Β· Melbourne, Australia
Building modern web applications and open-source tools, end to end.

Website LinkedIn Email Service status

About

I'm a full-stack developer based in Melbourne, Australia, originally from Hong Kong. I build products end to end β€” interface, API, database and deployment β€” and publish the tools I use myself as open source.

My working stack is TypeScript, React and TanStack Start on the front end, with back-end work in C# and PostgreSQL. I graduated with a Bachelor of Computer Science from Deakin University in 2023, and I'm most interested in system architecture, developer tooling and pragmatic AI-assisted workflows. Larger projects live under the lst97-oss organisation.

Selected work

Project What it is Stack
LAST//OS The desktop-styled site behind lst97.dev: Payload CMS, a retrieval-augmented assistant over my GitHub and WakaTime data, and a structured contact workflow. TypeScript, Bun, TanStack Start, React 19
last-comments Self-hosted comment system for any page: moderation, site-scoped API keys, a plugin pipeline, and drop-in widgets for React, Vue, Angular and plain HTML. TypeScript, Payload, TanStack Start
Canto101 Cantonese learning platform on a curated lexical corpus: dictionary lookup, word-level karaoke timing, talk lessons and a graded practice loop. Deno, Hono, Drizzle, PostgreSQL
G-NAF Address Autocomplete Self-hosted Australian address search over about 16 million G-NAF addresses, under 50 ms p95 on PostgreSQL indexes alone. TypeScript, Bun, Elysia
Best Maker Quote-to-cash platform for a custom fabrication and joinery business: split payments, bank reconciliation and a commerce back office. Next.js, Payload, TanStack Query, Tailwind CSS
claude-code-sub-agents Collection of specialized AI subagents for Claude Code covering testing, code review, documentation and deployment. Claude Code

Smaller open-source work: smartplay-hk-oss (Hong Kong public facility availability), CantoCap (Cantonese subtitle generation), bin-time-crawler (Australian bin collection schedules), info-hawker-server (Australian open-data API) and toonconv (TOON converter in Rust).

Tech stack

  • Languages β€” TypeScript, Python, Go, Rust, C#, Java, Kotlin, C/C++
  • Front end β€” React 19, Next.js, TanStack Start, Vue, Angular, Tailwind CSS
  • Back end and data β€” Bun, Deno, Node.js, Hono, Elysia, PostgreSQL, Drizzle ORM, Payload CMS, .NET
  • Delivery β€” Docker, Linux, GitHub Actions, Vercel

Currently

  • Building last-comments as a self-hosted alternative to hosted comment platforms.
  • Working in TanStack Start, React 19 and Bun-first tooling.
  • Writing about engineering with AI at lst97.dev/blog.

GitHub activity

GitHub stats Contribution streak

Most used languages

WakaTime coding activity β€” refreshed daily

AI Code Time

Profile Views

Lines of code

🐱 My GitHub Data

πŸ“¦ 412.4 kB Used in GitHub's Storage

πŸ† 3,590 Contributions in the Year 2026

πŸ’Ό Opted to Hire

πŸ“œ 89 Public Repositories

πŸ”‘ 21 Private Repositories

I'm a Night πŸ¦‰

🌞 Morning                180 commits         β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   01.48 % 
πŸŒ† Daytime                3206 commits        β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   26.38 % 
πŸŒƒ Evening                5635 commits        β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   46.37 % 
πŸŒ™ Night                  3132 commits        β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   25.77 % 

πŸ“… I'm Most Productive on Sunday

Monday                   1880 commits        β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   15.47 % 
Tuesday                  1714 commits        β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   14.10 % 
Wednesday                1541 commits        β–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   12.68 % 
Thursday                 1734 commits        β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   14.27 % 
Friday                   1747 commits        β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   14.38 % 
Saturday                 1468 commits        β–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   12.08 % 
Sunday                   2069 commits        β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   17.02 % 

πŸ“Š This Week I Spent My Time On

πŸ•‘οΈŽ Time Zone: Australia/Melbourne

πŸ’¬ Programming Languages: 
Other                    1 hr 45 mins        β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘   82.20 % 
TypeScript               10 mins             β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   08.35 % 
Markdown                 2 mins              β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   02.24 % 
Image (png)              2 mins              β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   02.00 % 
Git                      2 mins              β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   01.85 % 

πŸ”₯ Editors: 
Pi                       2 hrs 8 mins        β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ   100.00 % 

πŸ±β€πŸ’» Projects: 
cabinet-studio           1 hr 6 mins         β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   51.54 % 
last-notifications       26 mins             β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   20.62 % 
last-notifications-widget14 mins             β–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   10.99 % 
tmp                      11 mins             β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   08.97 % 
last-comments-widgets    5 mins              β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   04.42 % 

πŸ’» Operating System: 
Mac                      2 hrs 8 mins        β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ   100.00 % 

πŸ€– AI Coding This Week

No AI Coding Activity Tracked This Week

I Mostly Code in TypeScript

TypeScript               56 repos            β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   45.53 % 
HTML                     9 repos             β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   07.32 % 
Shell                    4 repos             β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   03.25 % 
Go                       3 repos             β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   02.44 % 
Rust                     2 repos             β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   01.63 % 

Timeline

Lines of Code chart

Last Updated on 09/11/2026 05:20:54 UTC

Contact

Open to collaborations and open-source work.

Pinned Loading

  1. gnaf-autocomplete gnaf-autocomplete Public

    🏠 G-NAF Address Autocomplete β€” Free, self-hosted Australian address autocomplete. 16M addresses from Geoscape G-NAF, sub-50ms p95, zero external API dependencies. Just PostgreSQL and Bun.

    HTML

  2. smartplay-hk-oss smartplay-hk-oss Public

    ζ›΄εΏ«γ€ζ›΄η°‘ζ½”ηš„ι–‹ζΊζ›Ώδ»£ζ–Ήζ‘ˆοΌŒη”¨ζ–ΌζŸ₯θ©’ι¦™ζΈ―εΊ·ζ–‡η½²θ¨­ζ–½ε―η”¨ζ€§γ€‚ε―¦ζ™‚η›£ζŽ§θˆ‡ι€²ιšŽη―©ιΈγ€‚

    TypeScript 3 1

  3. lst97-oss/last-lst97-dev lst97-oss/last-lst97-dev Public

    Simple personal profolio plus chat assistance with RAG and system-one compatible decision model πŸ‡¦πŸ‡ΊπŸ‡­πŸ‡°

    HTML

  4. lst97-oss/last-cli lst97-oss/last-cli Public

    Personal-use CLI for scaffolding templates and more.

    TypeScript

  5. lst97-oss/last-comments-widgets lst97-oss/last-comments-widgets Public

    Drop-in comment widgets for last-comments β€” React, Vue, Angular and plain HTML on one shared API client and one self-contained Tailwind v4 + shadcn theme.

    HTML

  6. lst97-oss/last-payload-tanstack-start-template lst97-oss/last-payload-tanstack-start-template Public

    Bare Payload v4 + TanStack Start (RSC, Nitro) template on Bun β€” minimal boot for /admin and /api

    TypeScript