I am Liam


Recent Blog Posts

Placeholder image

Cross Platform App For Couple Reminding Important Days

14 Oct, 2020

Up until recently I finally have an idea and motivation to create a cross-platform app to record moments and reminding important days between couple.

Therefore, its the best timing for me to explore the cool kid Flutter for iOS + android development.Its already in google playstore, iOS appstore still trying to get approved.

Cross Platform App For Couple Reminding Important Days

14 Oct, 2020

Up until recently I finally have an idea and motivation to create a cross-platform app to record moments and reminding important days between couple.

Therefore, its the best timing for me to explore the cool kid Flutter for iOS + android development.Its already in google playstore, iOS appstore still trying to get approved.

Placeholder image

Rewriting the blog in sveltejs sapper

02 Jan, 2020

In my previous blogpost I had written on how I create a SSR app in angular. The result is quite good, however the bundle size is still quite big due to angular runtime, and the performance score in lighthouse is only 91/100, which can still be improved.

To solve this, I will have to rewrite it in SvelteJS, which shift a lot of work during compile time instead of browser, and surgically updates the DOM when the state of your app changes.

Rewriting the blog in sveltejs sapper

02 Jan, 2020

In my previous blogpost I had written on how I create a SSR app in angular. The result is quite good, however the bundle size is still quite big due to angular runtime, and the performance score in lighthouse is only 91/100, which can still be improved.

To solve this, I will have to rewrite it in SvelteJS, which shift a lot of work during compile time instead of browser, and surgically updates the DOM when the state of your app changes.

Placeholder image

Make REST api to partial response, just like GraphQL

30 Oct, 2018

The story begins in one day, I want to make NodeJS API endpoints like

GET /api/blogposts?fields=author{name,avatar},title,detail

and it should return me

[{
    "author": {
        "name": "Liam Ng",
        "avatar": "https://someurl",
    },
    "title": "blogpost title",
    "detail": "blogpost detail"
}]

Make REST api to partial response, just like GraphQL

30 Oct, 2018

The story begins in one day, I want to make NodeJS API endpoints like

GET /api/blogposts?fields=author{name,avatar},title,detail

and it should return me

[{
    "author": {
        "name": "Liam Ng",
        "avatar": "https://someurl",
    },
    "title": "blogpost title",
    "detail": "blogpost detail"
}]
Placeholder image

Angular is great again - making SSR app with high performance in google lighthouse

18 Jul, 2018

While exploring the option on making a blog with content management system, I give a try on making use of koa2 + Postgres + Angular and the result turns out quite good.

Using google lighthouse to test it, resulted in 91/100 performance, 100/100 progressive web app, 100/100 accessibility, 100/100 best practices, 100/100 SEO, with the main bundle size in 775.7KB.

Angular is great again - making SSR app with high performance in google lighthouse

18 Jul, 2018

While exploring the option on making a blog with content management system, I give a try on making use of koa2 + Postgres + Angular and the result turns out quite good.

Using google lighthouse to test it, resulted in 91/100 performance, 100/100 progressive web app, 100/100 accessibility, 100/100 best practices, 100/100 SEO, with the main bundle size in 775.7KB.

Rust For Web Development Part 1

01 Feb, 2018

With the asynchronous I/O libraries of Rust is mostly ready, Rust can serve web traffic without being I/O bound. However, the only downside is that framework is not mature yet.

Edit on year Jun 19, 2018

Project has been discontinued due to Rust still does not support Async/Await which i think is crucial for web development

Rust For Web Development Part 1

01 Feb, 2018

With the asynchronous I/O libraries of Rust is mostly ready, Rust can serve web traffic without being I/O bound. However, the only downside is that framework is not mature yet.

Edit on year Jun 19, 2018

Project has been discontinued due to Rust still does not support Async/Await which i think is crucial for web development


View More