JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/maquette/2.4.1/maquette.min.js"></script>

JavaScript

const h = maquette.h;

var state = "Idle";
var users = [];

async function onButtonClick(e){
    state = "Fetching...";
    projector.scheduleRender();
    const res = await fetch("https://api.github.com/users");
    users = await res.json(); 
    state = "Complete.";
    projector.scheduleRender();
}

function render(){
  return h("body", [
      h("p", state),
      h("button", { onclick: onButtonClick }, "Fetch Users"),
      h("ul", users.map(user => h("li", { key: user.login }, user.login)))
  ]);
}

const projector = maquette.createProjector();
projector.merge(document.body, render);