You register with a given Mastodon instance which speaks ActivityPub to other servers which may or may not be Mastodon instances as well.
Now your home Mastodon instance also serves a React frontend which is technically acting as an OAuth2 client that speaks to the backend via REST APIs, compared to say: Server-side rendered HTML
Similarly, mobile apps connecting to your preferred instance are also OAuth2 clients.
In that sense, you can use a different frontend to speak directly to the REST APIs offered by your Mastodon instance of choice.
This all being one level above ActivityPub itself of course.