Is it possible to version control custom public workspaces (Frappe v14)

Export Workspaces as fixtures. This action will create JSON files in your app folder.

This doc talks about custom field, but is the same thing for Workspaces.

https://frappeframework.com/docs/user/en/guides/app-development/how-to-create-custom-fields-during-app-installation

Hope this helps.