How this project works
Northline Commons is the ASP.NET remake of Westloop: a neighborhood social network with accounts, profiles, follows, likes, comments, a following timeline, search, notices, and a real Ubuntu VPS deploy. Each numbered folder in fcc-aspnet-social is a working snapshot.
The stack, and why these tools
| Job | Choice | Why |
|---|---|---|
| Language / framework | C#, ASP.NET Core 8 Razor Pages | Razor Pages keep each social screen (feed, profile, compose) in one page model. EF Core maps follows and likes with unique indexes. You ship one Kestrel process behind Nginx. |
| Database | PostgreSQL | Follows, likes, and comments need foreign keys and unique pairs. SQLite is only for the first laptop boot. |
| CSS | Tailwind CSS | Feeds, avatars, and a sticky nav are layout-heavy. Utilities stay in the templates you already edit. |
| JavaScript | HTMX + Alpine.js | HTMX posts to Razor page handlers. A Blazor WASM frontend would move authorization to an API you then have to lock down twice. |
| Authentication | ASP.NET cookie authentication with Identity-style password hashing | Cookie auth with HttpOnly cookies and antiforgery tokens. Hand-roll the cookie; do not put JWTs in localStorage. |
| Process / proxy | Kestrel + systemd, Nginx, Let’s Encrypt | Same VPS shape as Westloop: one app process, Postgres on localhost, Nginx for TLS and static/media files. |
| Hosting / DNS | Hetzner Cloud CX22 (or Contabo / DigitalOcean), Cloudflare Registrar + DNS | You own the box. PaaS is easier and teaches less. |
| Console locally, Postmark in production | Password reset must leave the laptop. |
If you already finished the ASP.NET blog, keep going — this project adds a social graph and a VPS ship, not another CRUD journal.
Parts in order
Work through the parts in sequence. Each lesson explains the ideas, then points you to a runnable GitHub snapshot.