demo: souce list page, read from backend