In the last post we focused mostly on getting our backend up and running. We added users, password hashing, bearer tokens, protected routes, and user-owned data. At this point, our LinkVault app works. Our users can sign up, log in, create links, and only see their own data. But there is one issue you might have noticed. routes.swift is getting a little messy. This is bad for our code base but a great sign that we need to reorganize some code. In this part, we are going to clean up our API and make it feel more like a production-ready Vapor project. By the end of this post, we will:
Jul 5, 2026 16 min read Read MoreIn Part 2 of this ongoing series about building out my first server-side Swift app, we turned LinkVault from a simple Vapor app into a real database-backed API. We added a Link model, created a migration, connected to Postgres, and built CRUD routes for saving and managing links.
May 5, 2026 23 min read Read MoreIn part 1, we set up a Vapor project to use Fluent + Postgres, learned how to run the app locally in our browser, added some starter routes for us to play with, and returned JSON responses using Swift types. In this post, we’re going to build the first real version of LinkVault, our saved-links backend. By the end, we’ll have:
May 4, 2026 12 min read Read More