Abhishek Chadha

Stack 2025: A Year-End Roundup

Software DevelopmentProgrammingProduct ManagementSoftware ArchitectureApps

December 21, 2024 -

2 years ago
A developer’s software stack for 2025

As January 1st approaches, it is but natural we examine the the year gone by — and what a year it has been! The velocity of innovation has been astounding — new tools and frameworks continuously emerge, challenging the status quo. Today I’ll share with you what my stack looks like going into 2025 and share a bit about each of my picks.

Disclaimer

  1. Don’t chase the shiny new: Use what works for you. Spend time learning new tools, but adopt them thoughtfully.
  2. This is just one way of doing things: There are infinite ways to build a given app. My approach works for me, and yours might be equally good or better.
  3. You don’t need everything here: Most tools are meant to be adopted progressively as you gain traction and scale, not necessarily on day one.

Principles for Evaluation

Let’s state upfront what we’re optimizing for.

  1. Product Velocity
    The top priority is always to iterate quickly and ship features at lightning speed.
  2. Scale Dynamics
    Scale up instantly to meet viral workloads and scale down to zero costs in quieter times — crucial for early-stage products pre-PMF.
  3. Open Source Over Proprietary
    Tools with robust open-source communities and comprehensive documentation usually offer better long-term flexibility.
  4. Ownership and Lock-In
    Retain ownership of data and infrastructure wherever possible to reduce vendor lock-in.
  5. Simplicity and Flexibility
    Favor declarative, configuration-driven, resilient systems that make simple things easy and complex things possible.

My Winners of 2025

Certain tools stand out as definitive game-changers. They not only enhance developer velocity but also redefine how we think about building scalable, efficient products:

  1. OpenAI API
    OpenAI continues to lead the AI-as-a-service market with top-notch APIs and an unparalleled developer ecosystem. While competitors boast about larger context windows or computer-use, OpenAI’s laser focus on perfecting features relevant specifically to developers (i.e. structured outputs) keeps it at the forefront.
  2. Bun
    Bun is revolutionizing JavaScript by unifying package management, build tooling, and a lightning-fast runtime into a single platform. Bun cuts through the cognitive overload that comes with building TypeScript and Javascript applications, making it approachable for newcomers again.
  3. SST (v3)
    SST 3 offers a powerful Infrastructure as Code solution with type-safe constructs. They migrated from AWS CDK to Pulmi unlocking a world of new possibilities outside of AWS while still retaining a stellar developer experience. Built-in error reporting, secret management, logging and more make it an excellent choice for modern full-stack apps. IaC is overkill for new projects but SST challenges that conventional wisdom by radically shifting the cost-benefit dynamics.
  4. Posthog
    Posthog consolidates analytics, experiments, session recording, feature flags, and surveys into a single, cost-effective platform. Privacy-focused, open-source, and feature-rich, it sets a very high bar for modern product analytics suite.
  5. NeonDB
    NeonDB separates storage and compute in Postgres, enabling on-the-fly database branching and near-instant provisioning. Their open-source & serverless approach to Postgres gives them the ability to offer superior performance, manageability and pricing.

User Interfaces

Web Framework: Next.js 15 + OpenNext
React 19, better performance and React Server Components. OpenNext provides infra ownership. Remix is great but Next has a better ecosystem.

Styling: TailwindCSS + DaisyUI
Tailwind provides atomic CSS; DaisyUI extends it with theming and CSS based UI primitives.

Components: Shadcn
Shadcn uses RadixUI + Tailwind, offering highly customizable and accessible components. Integrates well with DaisyUI.

Animation: Motion
Motion is the successor to Framer Motion. It’s tiny and supports WAAPI for blazingly fast animations. It also has great React integrations.

Charting: Tremor.so
Replaces Recharts. Beautiful, modern charts that fit neatly into a RadixUI + TailwindCSS workflow. Nivo is also great if you need more complex viz.

Mobile Apps: React Native
I had almost given up on the dream of “learn once write anywhere” but RN got a massive update and is past key architectural bottlenecks. It’s buttery smooth now so time to release your next big app. Oh, don’t forget to use Fastlane.

Developer Experience

Languages & Runtime: Bun / Python 3 / Rust
Bun streamlines TypeScript development. It’s less imposing than Deno, and shell scripting with $. is neat. Python still dominates for data and machine learning workloads. For systems code, you can’t beat Rust.

Build, Test, Monorepo: Bun
Build, test, monorepo features have been rationalized with Bun. Turborepo still offers some interesting remote caching features for large teams and projects but not necessary early on. Note that package.json works equally great for non-JS sub-repos as well.

CI / CD: Seed.run
Purpose-built to deploy SST apps with minimal pain. Manage multiple deployments with ease, incremental deploy and collaborate with your team. SST’s dev console works great if you’re on a smaller team.

IDE: Cursor
Cursor outperforms VSCode + Copilot by lightyears. Once you try it, there’s no going back. If you’re a professional developer and aren’t using it yet, I’d be worried.

API: NextJS API Routes + FastAPI / useSWR
Keeps it simpl(er). GraphQL is overkill unless you have a very large API. I usually default to NextJS API routes to support my frontend. If I’m building developer facing tools, I use FastAPI since it provides strong OpenAPI support which unlocks great docs (see Mintlify).

Python Package & Environment Management: pip + conda
Poetry and others are interesting, but I’m still sticking with the pip + conda workflow.

Component workbench & Visual Testing: Storybook + Chromatic
Storybook pre-v6 had me pulling my hair out. We’re on v8 now and I have to say — the team has done a lot of work to get the product working well with Next, Tailwind, PostCSS and all the rest of it. Chromatic makes it easy to share and test components with others.

Backend Infrastructure

Compute: AWS Fargate
EC2 remains for complex setups, but Fargate excels at running Docker containers with scale-to-zero. SST uses Fargate under the hood for creating a Service.

Functions: AWS Lambda
The original serverless. Extremely cost-efficient. Vercel Edge no-time-limit edge runtime was nice, but AWS Lambda’s versatility is still hard to beat especially if you’re working within AWS.

Language Models: OpenAI
Industry leader, offering structured outputs and top-tier performance.

Authentication: Auth.js
Auth0 was solid but it has really strong lock-in and bad free tier — they really crush you if you go past 10K MAU. Auth.js balances control with great defaults. You own your user table and there is great React support. One issue is they don’t believe in username + password but there are ways around this.

DNS: Cloudflare
Their free tier is excellent. Native integration with SST. Also a solid domain registrar with reasonable, transparant pricing — I recently switched all my domains from Namecheap.

Scheduling / Event Bus: AWS EventBridge
Replaces BullMQ + Redis. A serverless-first approach to event scheduling — no more self-managing Redis.

Streaming: SSE + WebSockets + Redis Streams
Flexibility for low-latency data with potential edge deployment. Most times you don’t need bidirectional streams just SSE + REST works well. SSE is great for streaming tokens from LLM APIs (see Vercel AI). If you need persist streams state between requests or multiplex consider using Redis Streams.

Webhooks: Svix
Ideal for developer-facing products. Saves a lot of time and headaches for providing your customers webhooks.

Cloud GPUs: Thunder Compute
Provision virtual GPUs over TCP. Never pay for idle GPUS. Great for getting started with ML workloads. For even more serious GPU needs check out Lambda Labs for cheap GPUs.

Storage and Data

Database: Neon DB
Replaces AWS RDS. Serverless Postgres that branches instantly with a generous free tier.

In-Memory: Upstash
Replaces AWS Elasticache. Similar to NeonDB but for Redis — pay-as-you-go, no overhead. Great for streaming tokens from LLM APIs.

Blob: Cloudflare R2
Cloudflare’s fantastic free tier coupled with no egress fees makes it the go-to option for serving large blobs. I’m eagerly awaiting stable OpenNext support for Cloudflare.

Pipelining: Apache Beam on GCP Dataflow
Managed Apache Beam for batch and stream processing in one abstraction. Beam let’s you write ELT processes in Python & TypeScript. Dataflow takes care of the execution, provisioning and managing the infrastructure to run your pipeline.

Orchestration: Prefect
A next-gen approach to orchestrating data workflows. Prefect Cloud is free for smaller projects. Also, consider Temporal if you need stronger execution guarantees and need to recover from failures.

Warehouse: BigQuery
Great integration with Dataflow for ELT, BigQuery ML for training and even Google Sheets. It’s fully managed, reasonably priced and most platforms offer it as a data sink.

Product Management

Project Management: Linear
Yes, it sounds crazy but Linear genuinely makes writing and updating tickets fun. They understand the developer’s soul — the Ctrl+K is insane.

Design: Figma
The go-to for modern interface design and collaboration.

Feedback & Changelog: Featurebase
Closing the feedback loop. Great for gathering user feedback management and changelogs in one place.

API Docs: Mintlify
Replaces Postman. Turns OpenAPI specs into interactive docs. Other documentation in MDX with great out of the box components. Better free-tier features than alternatives like Fern & Redocly.

SDK Generation: Stainless
Replaces Apollo GraphQL. Generates type-safe SDKs from well-documented OpenAPI routes. Great if you’re building for developers.

Low-Code: NocoDB
A solid open-source Airtable alternative with a generous free tier.

Internal Tools: Refine
As a developer-first option, Refine focuses on code over GUIs, which often suits internal tool development. I still like and use Appsmith though.

Product Gating: Waitlist
ViralLoops is solid but pricey. Waitlist is a simpler alternative for early-stage product gating.

Notifications: Novu
Open-source alternative to Knock, offering a generous free tier. They take a unified approach to notifications with support for all major channels and providers. They have templating, digesting, delaying, conditional sending, drop-in React UIs for creating a seamless notification experience.

Email: Resend + react-email
Replaces SendGrid. A modern email API with a React + Tailwind workflow. Both work great with Novu (below)

Payments, Growth & Marketing Tools

Analytics: PostHog
Replaces Amplitude, VWO, FlagSmith and Fullstory. Consolidates analytics, experiments, and session recordings into a single platform. Non-technical teams might miss the no-code editor in VWO.

No-code forms: Tally (Replaces Typeform)
A minimalist, lower-cost form solution. Typeform has become too bloated.

Customer Chat: Chatwoot
Excellent open-source; I had to switch since Papercups is no longer maintained. It’s got everything you need though I do with the Slack integration was better.

Payments: Stripe
The leader in payment processing. They keep shipping high-quality features, including usage-based billing, MoR services, and even crypto support.

Security & Site Reliability Tools

Error Reporting: SST
SST provides out-of-the-box AWS CloudWatch error reporting. They’ve built a basic issues feature for ignore and resolving issues. Not nearly as comprehensive as Sentry, but surprisingly sufficient for smaller teams.

Telemetry: BetterStack
Replaces DataDog. SST sets up basic CloudWatch logs by default, but for deeper observability, BetterStack is a great choice. They give you 3GB of logging per month for free.

Observability: BetterStack
Replaces Pingdom. A more modern approach to uptime and performance monitoring with a great free tier. Search logs, get alerts when your site goes down.

AI Code Reviews: CodeRabbit
Automated code reviews that actually help — free summary tier is available, with more advanced options at higher tiers.

Vulnerability Scanning: Snyk
Free to use and effective for all sorts of catching vulnerabilities and code smells.

License Compliance: Fossa
Ensures your open-source usage remains compliant. Some overlap with Snyk but each does their own thing better.

LLM Security: LLM Guard
Set guardrails on AI model inputs and outputs for safer, more controlled LLM usage.

Trends

  1. Monoliths Are Cool Again, But Serverless Remains
    While some big names (like Amazon Prime) have re-centralized to cut costs, serverless still offers unmatched elasticity for pre-PMF startups with unpredictable workloads (e.g. NeonDB, Upstash)
  2. Great, up-to-date Documentation Is Non-Negotiable
    Stripe set the standard; bad docs will doom your tool to obscurity in a saturated market. This becomes more important as AI-assisted coding becomes the norm.
  3. Thoughtful Bundling Is a Moat
    Bun, Cloudflare, PostHog, Featurebase, and BetterStack succeed by bundling features sensibly into a cohesive ecosystem.
  4. Software Complexity Is Shrinking
    Better abstractions like SST / Pulumi, AI-powered editors, and modern tooling let developers focus on what truly matters: shipping products.

Closing Thoughts

The ecosystem heading into 2025 is more vibrant than ever. Selecting the right tools can accelerate velocity, maintain flexibility, and optimize costs. The lineup above reflects my convictions about open source, frictionless scalability, and developer happiness.

Which tools are you most excited about for 2025? Share your thoughts in the comments or reach out to keep the conversation going!