Middleware Basics vs WebSockets
Both are commonly confused. Here is a side-by-side breakdown of what each one does, when to reach for it, and when it would be the wrong choice.
Middleware Basics
Middleware = Code that checks every request before it reaches your app. Like a security guard at the entrance, one checkpoint instead of checking IDs at every door.
Read full block →WebSockets
WebSockets = a persistent two-way connection between your browser and server. Instead of constantly asking "any updates?" the server pushes data to you instantly.
Read full block →When to use each
Use Middleware Basics when
-
Multiple pages need the same check
If 10 pages all need "user must be logged in," that's middleware. Write the check once, apply it everywhere.
-
You want to track every visitor
Want to know who visited what page and when? Instead of adding tracking code everywhere, middleware sees every visitor in one place. Like a guest book at the entrance.
-
You need to block unwanted visitors
Fake accounts, banned users, suspicious activity: stop them at the entrance before they cause trouble. No need to check at every room.
Use WebSockets when
-
Your app needs instant updates
Chat messages, live dashboards, collaborative editing, anything where users expect to see changes the moment they happen. If a 3-second delay feels too slow, you need WebSockets.
-
Data flows in both directions
The user sends messages AND receives them in real-time. A multiplayer game where everyone sees each other's moves. A live auction where bids appear instantly for all participants.
-
You're streaming AI responses
When you want ChatGPT-style word-by-word output instead of waiting for the entire response. Streaming AI answers use WebSocket-like connections to push each token as it's generated.
-
Multiple users see the same live data
Stock tickers, live sports scores, shared whiteboards. When the same data needs to reach many users at the same time, WebSockets push once and everyone gets it.
When to avoid each
Avoid Middleware Basics when
-
Only ONE page needs the logic
If only your admin page checks for admin role, just put that check in the admin page. Don't overcomplicate.
-
You're building a tiny app
A 3-page website doesn't need middleware architecture. Keep it simple until you actually need it.
Avoid WebSockets when
-
You just need to load a page once
Showing a user profile, displaying a blog post, loading search results. Regular HTTP requests are simpler and work perfectly. Don't add WebSockets to pages that don't need live updates.
-
Updates happen rarely
If data changes once an hour or once a day, a persistent connection is overkill. A simple page refresh or webhook notification is much simpler and uses fewer resources.
-
You're building a simple form submission
Contact forms, sign-up pages, checkout flows. These are one-time actions. A regular POST request submits the data and you're done. No need for a persistent connection.