feature:  added js frontend