I am Liam


Recent Blog Posts

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.

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"
}]
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.

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

Introduce FawkesJs

05 Feb, 2017

It has been awhile since I have been inactive in open-source world. Although nowadays trend is in VR, AI and iOT, API development is still needed.

Edit on year Jun 19, 2018

Project has been discontinued due to Koa2 + Graphql basically can do what I plan to do


View More