frontend: use polymer components instead of angular