Member-only story
Getting Started With Vapor 4 —Learn By Building a Todo Application
Learn the basics (and not so basics) of this server-first tool written in Swift

Introduction
I must say I don’t have much experience in building web apps but as an iOS/macOS developer, I know Swift well. I’d heard of Vapor before but I had never dug into this framework. I must say that, after spending some time reading through their docs and trying it out, I’m delighted.
In this series of articles, I’ll explain some of the functionalities Vapor has to offer, and we’ll build a to-do app along the way. This article will mainly focus on giving a bit of context to “What is Vapor” and will cover some of the basics while getting our hands dirty with the framework.
You can find the full implementation in my repo:
https://github.com/fermoya/vapor-tutorial
Overview
What’s Vapor?
Vapor is a server-side framework written in Swift. It provides a set of tools to help you easily create a web app from scratch and/or define an API to support your mobile clients. We can find analogies in other well-known web application frameworks:
- Ruby on Rails (Ruby)
- Django (Python)
- Symphony (PHP)
- Spring (Java)
Why Vapor?
After some research, I found that Vapor was broadly accepted by the community. It’s a very mature framework that offers tons of possibilities, is easy to use, and is exactly what I was working for. With very little configuration, you can get it up and running in no time.
Plus, it’s written in Swift, which I’m familiar with, and can be used from Xcode and also from the terminal. Not only that, Vapor can be set up with both macOS and Linux or even create an image to run in Docker.
Is it the only server-side Swift framework?
Not at all. Currently, there are other options. There’s Kitura and Perfect. However, neither of them is so widely accepted as Vapor.