Composite
Server markup with a client slot
getCard() uses createCompositeComponent. The sentence is rendered on the server and includes a hole. CompositeComponent fills that hole with the counter. The counter uses useState, so the click stays on the client.
Server markup. Client slot: