As Mike mentioned, the best way to approach this would be using a recursive backend workflow, however, if you were looking to build this purely on the front end, I may have a scrappy solution.
If you were to limit how many tags users can add (e.g. a limit of 5 or 10), you’d know what the maximum amount of tags are that could be created at once.
When a user clicks a button to create their tags, you could run a workflow that ‘creates a thing’ (single item) within your database.
Within this first step, you’ll create a new tag (data type of tag with a data field called something like ‘tag name’).
As you’ll only be able to create one thing at a time, you can start by referencing the list of tgas in your custom state, the item stored as ‘item #1’.
At this point, we’ve only created one tag, so we’ll need to build some additional steps in the workflow to create the remaining options.
Duplicate the first step in your workflow, then update the ‘item #’ to be ‘item #2’. This will then create a new tag for the second item in your list.
Note: In some cases, a user might only create one tag, so you’ll need to create a condition on this workflow step that only allows it to run if the list of tags in your custom state is equal to or greater than 2.
Now, at this point, we’ve created two tags. In order to create a third, we’ll duplicate the same workflow step, but of course, we’ll need to update the item number, as well as the condition.
You’ll need to replicate this action to meet the maximum number of tags that a user can add.
It’s certainly not the best way to approach this, but it should get the job done.
Hope this helps.