DEV Community

azhadsuhaimi
azhadsuhaimi

Posted on

I Spent 30+ Hours Building "The Boring SaaS Stack" So I Never Have To Do It Again

We’ve all been there:

You get an exciting idea for a micro-SaaS on a Friday night. You fire up your IDE, ready to build the core feature that solves a real problem.

Fast forward 3 weeks later... and you haven't even written a single line of business logic yet.

Instead, you’ve spent your precious free time configuring Google OAuth, wrestling with Stripe webhook signatures, building user profile pages, and tweaking Dark Mode CSS variables for the 100th time.

By the time the "boring 80%" of the app is finally functional, the initial excitement is gone, burnout hits, and another side project dies silently in a local directory.


Taming the "Boring 80%"

I got tired of repeating this painful cycle every time I wanted to test a new product idea. So, I decided to freeze new feature builds for a moment and focus entirely on creating a clean, unbloated foundation.

My goal was simple: Build a lean, production-ready setup once, and reuse it forever.

Here is the lightweight stack and core architecture I put together:

  • Backend: ASP.NET Core Web API (Clean, predictable, and fast execution)
  • Auth Layer: Social Sign-In (Google & GitHub OAuth) to eliminate email/password management overhead.
  • Billing: Stripe integration handling subscription checkouts (Pro / Enterprise tiers) and webhook listener setups.
  • UI/UX: Responsive Dashboard, basic credential profile management, and native Light/Dark theme toggling.

Here is a quick high-level look at how I kept the user context and session management minimal:

// Keeping auth payload lean while preserving claim context
public class CurrentUserContext
{
    public string UserId { get; set; } = string.Empty;
    public string Email { get; set; } = string.Empty;
    public string SubscriptionTier { get; set; } = "Free";
    public bool IsActive => SubscriptionTier != "Free";
}
Enter fullscreen mode Exit fullscreen mode

The Big Dilemma: How Much "Boilerplate" Is Too Much?
While structuring this setup, I noticed a huge trap in existing commercial boilerplates: Over-engineering.

Many templates try to throw in every single library under the sun—multi-tenancy, complex RBAC permissions, 5 different payment gateways, blog engines, and heavy microservice abstractions. You end up spending more time deleting code you don't need than actually building your app.

I wanted to keep mine as stripped-down as possible while still covering the actual launch requirements.

I'd Love Your Input! 💬
Before I finalize version 1.0 of this foundation for my upcoming micro-SaaS launches, I want to hear from fellow builders and backend devs:

  1. Multi-Tenancy vs. Single-User: Is built-in Organization/Team management an absolute MUST-HAVE for v1, or is simple single-user auth enough for an initial MVP?

  2. Payment Integrations: Do you prefer sticking exclusively to Stripe, or is LemonSqueezy/Paddle support a dealbreaker for global taxes?

  3. What is the single most annoying thing you usually hate about 3rd-party starter kits/boilerplates?

Drop your thoughts, hot takes, or architectural advice in the comments below! 👇

Top comments (0)