I bring up my full-stack AWS application in ten minutes, here are the open-source tools you will be using

No smoke and mirrors.

·

4 min read

As a developer, I’ve had my fair share of experiences with various Infrastructure as Code (IaC) tools available on the market. From AWS CloudFormation and AWS CDK to Terraform and Pulumi, the list goes on. There are even IaC tools specifically designed for serverless, such as AWS SAM. However, despite trying out most of these tools, I found them to be quite tedious and not particularly helpful in making a developer’s life easier. But don’t let my bad experiences discourage you — keep reading to find out how SST.dev can change the game for you.

SST.dev

SST is a framework that makes it easy to build modern full-stack applications on AWS.

Are you ready to take your serverless game to the next level with AWS? Look no further than SST! This powerful tool uses AWS CDK under the hood to provision all your AWS resources. But don’t be fooled — SST is much more than just another framework. Intrigued? Keep reading to find out more!

You can start using it by running the following command line in your terminal:

notes: make sure you have node16 and npm7 installed.

npx create-sst@latest my-sst-app

Major frontend frameworks are supported

ST.dev makes it easy to get started with your favorite frontend framework by providing an open-source framework for deploying it to AWS. This means you can quickly and easily launch a site using popular frameworks such as Next.js, Remix, Astro, or Solid on AWS. For example, to create a Next.js site using SST.dev, all you need to do is include the relevant code in your stack.ts file and you’re ready to go.

// Create a Next.js site
const site = new NextjsSite(stack, "Site", {
  path: "packages/frontend",
  environment: {
    // Pass the table details to our app
    REGION: app.region,
    TABLE_NAME: table.tableName,
  },
});

Add almost any backend features powered by AWS

const api = new Api(stack, "api", {
    customDomain: {
      domainName: `${app.stage}-api.${domainName}`,
      hostedZone: domainName,
    },
    routes: {
      // this links to the function in the "packages/functions" directory
      "GET /": { function: controllerPath + "/lambda.handler", authorizer: "none" },
      // client
      "PUT /client": { function: controllerPath + "/create_client.handler", authorizer: "none" },
      "GET /client/{clientId}": { function: controllerPath + '/get_client_by_id.handler', authorizer: "none" },
    },
  });

With SST.dev, you have the full power of AWS at your fingertips, allowing you to easily add any backend feature to your product. For instance, you can integrate a serverless SQL or NoSQL database to power your app, create a GraphQL or REST API, authenticate users through any auth provider, and even run cron jobs powered by serverless functions.

As a serverless enthusiast who uses AWS Lambda for almost every side project, I find that SST.dev is an excellent tool for building lightweight and cost-effective backends using API Gateway and lambda functions. Even if you have an existing database outside of AWS, you can still integrate it with SST.dev, although you may not be able to fully enjoy the developer experience provided by the SST console. Additionally, SST.dev allows you to separate your app into different stages such as dev, staging, and prod, with separate parameters for each stage.

Seed.run

The CI tools developed by the SST.dev team

SST.dev offers a seamless collaboration experience for teams by providing the ability to create preview or feature environments for all team members using the CLI. Additionally, with SEED, you can automatically generate preview environments for every PR or branch, making it easy to test and review changes before they go live. One of the most attractive features of SST.dev is that all pipelines that run in SEED are completely free of charge.

Console

Everything you need is on the left sidebar

The SST console is a user-friendly web-based dashboard designed to manage your SST applications. It provides a comprehensive backend solution that supports the creation and use of various features. One of its most impressive features is its ability to support a local debug environment for AWS Lambda and Typescript on the fly. This is particularly helpful for those who have struggled with other Infrastructure as Code (IaC) solutions such as AWS CloudFormation, AWS CDK, and AWS Sam Model.

With the SST console, you can easily invoke APIs or lambda functions in debug mode locally. Additionally, if you are using AWS RDS, you can directly query the RDS from the console, eliminating the need for additional tools such as PGAdmin or Swagger for debugging purposes.

Conclusion

With its comprehensive features, SST.dev enables developers to launch full-stack applications in under 10 minutes. I highly recommend giving it a try. The examples and tutorials on the official site are straightforward and easy to understand.

I am not affiliated with SST.dev in any way, but I truly appreciate the development team for elevating the developer experience for the AWS serverless community. They have effectively hidden complexities such as IAM and permissions management, domain certificate requests, and more. This allows developers to focus on the business side of their work and makes project scaffolding a breeze.

Overall, SST.dev has made my development process much smoother and more enjoyable.

Did you find this article valuable?

Support Kevin Mun by becoming a sponsor. Any amount is appreciated!