- Self-hosted identity management, "ASP.NET Core Identity", using new scaffolding from .NET 8
- Blazor, using the "Auto" mode from .NET 8: Default to SSR, autopromote to Server mode for live updating components
- EF Core for DB handling
The idea is to focus on keeping things simple and easy for the developer. The most annoying part about the stack is the way Microsoft names things.
Keeping the rendering logic fully server-side lets you use your EF DbContext/entities directly in your components, taking on some (I'd say minor) technical debt to greatly simplify development.
You won't need a fully separate SPA with a dedicated API. Not yet, maybe ever. You can migrate your components to Blazor Wasm piecemeal if/when you reach a stage where using Server mode starts giving you troubles.