The Modern Startup Tech Stack: What We Chose for AskBenny and Why

July 1, 2025 (3w ago)

Building a startup in 2024 means having access to incredible tools that would have required entire teams to build just a few years ago. At AskBenny, we've carefully selected each piece of our tech stack to maximize our small team's impact. Here's what we chose and why.

The Philosophy: Build vs. Buy vs. Integrate

Our approach is simple:

This lets us focus our engineering effort where it matters most.

Analytics: PostHog – Understanding Without Invading

We chose PostHog for a critical reason: we need to understand how users interact with AskBenny without compromising their privacy.

What PostHog Gives Us:

Product Analytics

Session Recordings

Feature Flags

Surveys

The killer feature? Everything runs on our infrastructure. Customer data never leaves our control.

Customer Communication: Crisp – More Than Just Chat

For a lean team, customer communication can't be an afterthought. Crisp became our command center for customer relationships.

Why Crisp Works for Us:

Unified Inbox

Automation with a Human Touch

Knowledge Base Integration

Real-Time Collaboration

Infrastructure: SST + AWS – Fully Serverless, Event-Driven, Beautiful

Cloud infrastructure

We went all-in on serverless with SST.dev as our infrastructure-as-code framework. This decision transformed how we build and deploy.

Why SST Changed Everything

SST isn't just another IaC tool – it's designed specifically for serverless applications:

Our Serverless Stack:

Database: DynamoDB with Stream Triggers

Message Queue: SQS

Compute: Lambda Functions

Storage: S3

Event-Driven Architecture: Mimicking the Real World

Our system models real-world interactions through events:

How Events Flow Through AskBenny

┌─────────────────┐
│  Incoming Call  │
└────────┬────────┘
         ↓
┌─────────────────┐
│  CallReceived   │
│     Event       │
└────────┬────────┘
         ↓
┌─────────────────┐
│ Lambda Handler  │
└────────┬────────┘
         ↓
┌─────────────────┐
│Customer Record  │
│    Update       │
└────────┬────────┘
         ↓
┌─────────────────┐
│ DynamoDB Stream │───┬───────────────┬────────────────┐
└─────────────────┘   ↓               ↓                ↓
                ┌──────────┐    ┌────────────┐  ┌──────────────┐
                │  Update  │    │   Notify   │  │   Trigger    │
                │Analytics │    │    Team    │  │  Follow-up   │
                └──────────┘    └────────────┘  └──────────────┘

This architecture means:

Example: When a Call Completes

  1. Lambda processes the call → publishes CallCompleted event to SQS
  2. DynamoDB updates customer record → triggers stream event
  3. Stream processor updates analytics, sends notifications
  4. All happening asynchronously, all retryable, all scalable

Monitoring: CloudWatch + SST Console

Observability is crucial when running serverless:

SST Console - Our Mission Control

The SST Console gives us:

CloudWatch - Deep Insights

We've set up:

The Power of Infrastructure as Code

With SST, our entire infrastructure is:

new Table(stack, "Customers", {
  stream: "new_and_old_images",
  consumers: {
    analytics: "functions/analytics.handler",
    notifications: "functions/notify.handler",
  },
});

Type-safe, version-controlled, and reviewable like any other code.

The Glue: Modern Development Tools

Beyond the big three, several tools keep everything running smoothly:

Deployment: SST on AWS

Domain Management: Cloudflare

Monitoring: Sentry

Communication: Linear + Discord

Cost Breakdown: Pay for What You Use

Our serverless architecture means costs scale perfectly with usage:

The beauty of serverless: our infrastructure costs were almost nothing during development and now scale linearly with revenue.

Integration Magic: Making It All Work Together

The real power comes from integration:

Customer Action → PostHog Event → Crisp Message → Team Notification

Example flow:

  1. New customer signs up (PostHog tracks)
  2. Crisp automatically sends onboarding message
  3. Jordan gets notification for personal follow-up
  4. Sydney sees high-value lead alert
  5. I monitor technical onboarding success

Lessons Learned

1. Start Simple, Upgrade When Needed

We began with free tiers and upgraded only when limits became constraints.

2. Prioritize Developer Experience

Tools that slow us down get cut, no matter how feature-rich.

3. Data Privacy Matters

Choosing tools that respect customer privacy builds trust and ensures compliance.

4. Integration > Features

A tool that integrates well beats a feature-rich island every time.

What We'd Do Differently

If starting today, we'd:

The Future Stack

As we scale, we're evaluating:

The serverless ecosystem keeps improving, and we're positioned to adopt new services as they mature.

Your Stack Decisions Matter

Every tool choice either accelerates or hinders your progress. Our stack enables three people to serve hundreds of businesses reliably. What could the right tools enable for your team?

The best stack isn't the most advanced – it's the one that lets you focus on what makes your product unique.


Next up: Customer success in the early days – why supporting your first users intensely is the key to sustainable growth.