For a forum with 100…500 tags, it’s like nothing in terms of data size to load once and keep it in memory while Discourse is open.
Currently, every time I pick a tag, I have to wait while it makes an http request to the server to search among all the tags with using the characters I entered so far. Is it really really necessary? It worsens the UX so much, it is irritating, and it could be just instant it you preloaded all the tags and kept them available, and built some binary search tree in the browser, no?
Anyway, that’s my suggestion to do so.
Same with categories. Really, you only have like 20-50 categories most of the time, but you keep making an http request and showing a blue progress line that makes it look heavy and slow while it could be just instant.
I suggest to only fallback to an http request when there are many items to search through. like, at least thousand or so? Otherwise, it could all be preloaded for the current user taking into account his permissions etc.