I have a production app live using Swift/Vapor. I created this app solely for the purpose of learning full-stack development using Swift, and so far it has been an amazing ride. The best thing about using Swift on the server if you're already an iOS developer is that a ton of models and DTOs are simply shared across your backend and your app(s).
I have deployed my backend on a tiny DO droplet using Docker, and it just works. There was a slight bit of learning curve for deploying it, but I can now create images locally on my Mac and pull them remotely for a fresh deployment/migration in less than a minute. Being able to build locally using Docker for Mac also means that the speed is great.
Before that, I had the app live on a Heroku setup but it cost quite a bit.
Used Vapor/Swift in production for a good 2 years. While Swift is really one of the best languages out there, unfortunately it didn't work out.
The problem was being strongly tied to macOS & XCode, and every update may or may not break your ability to deploy the server. Vapor itself seems to be always changing as well.
Inter-op with various web-services is often quite a headache too. Sometimes there's support for Swift or even an official SDK, but it's often not so straightforward to actually get it working. You're definitely in untreated territory here, and it shows.
So we moved NodeJS. I feel Node is a meme at this point, but man does it simply work. There are code snippets for everything and usually it doesn't take longer then 30min to figure out how to do something.
C# with ASP.NET Core has been pretty great in my experience; it has both reasonable language syntax without that many footguns and reliable performance
I also had a terrific time building with Vapor, but I had to put down the project and then pick it up a year later… between the interim release (v2 — v4 I think) I found the my product basically impossible to upgrade, not a lot of clear documentation on the changes. I was pretty dismayed by how far the API drifted.
I have deployed my backend on a tiny DO droplet using Docker, and it just works. There was a slight bit of learning curve for deploying it, but I can now create images locally on my Mac and pull them remotely for a fresh deployment/migration in less than a minute. Being able to build locally using Docker for Mac also means that the speed is great.
Before that, I had the app live on a Heroku setup but it cost quite a bit.
My app is at https://apps.apple.com/nl/app/instint/id1454800508