Are we server yet?

Yes! And it's freaking fast!

Swift has a mature and production ready framework in Vapor and Smoke, and newer ones like Hummingbird. These provide everything you’d expect from a web framework, from routing and middleware, to templating, and JSON/form handling. There are packages for everything, and more! For databases, there’s:

There are many integrations to third-party services, such as:

And of course, there is plenty of support for basic web needs, like:

There's also support for large scale applications, such as:

For more packages, check out the Swift Package Index!

Can I replace my Rails/Django/Laravel app already?

Yes! Swift's most popular framework is Vapor and was inspired by Rails and Laravel in its early days. It provides everything you need to create full-featured applications. If you want something a bit more modular then check out Smoke or Hummingbird.

The server-side Swift ecosystem is built on top of SwiftNIO and many packages from database drivers to API integrations are built on top of this and will work with any framework.

WebAssembly?

Swift can run in the browser by compiling to WebAssembly! This is still experimental and hasn't been upstreamed into Swift yet. However, it has a load of features and can integrate with Javascript.

There are some awesome projects that really showcase SwiftWasm including Tokamak that allows you to build web apps using Swift and SwiftUI!

For more information about Swift and WebAssembly, check out the Swift and WebAssembly Book.

Serverless?

Running and managing your own servers can be complex! Cloud providers offer managed services that take care of most, if not all of the operational burden. This is particularly nice for small systems, because many of these have a free tier.

Tooling

Getting Started

Once you've set up Swift and have worked through the Swift Book, you might want to check out these resources:

If you find yourself stuck and looking for help, you can check out the official Swift forums, the Swift Server tag on Stackoverflow, or the Swift Open Source Slack where you are welcome to post your questions and will find excellent help.

Thanks

This project is heavily inspired by Rust's Are we web yet? project.