refactor: add React component support; add server rendering support