Introducing SST: The Tool Making Full Stack Web Application Development Fun with AWS
Amazon Web Services (AWS) is a powerful and comprehensive platform for cloud computing and web services. However, for web developers, the sheer volume of individual services and their integration can be overwhelming and complex. This is where Serverless Stack (SST) comes in. SST is an open source tool that simplifies the process of building full stack web applications with AWS, making it not only easier, but also fun.
The Problem with AWS
One of the biggest challenges with AWS is the multitude of individual web services it offers. From S3 storage buckets to Lambda functions, API Gateway, RDS, DynamoDB, Cognito user authentication, and more, the list goes on and on. Integrating these services and putting them all together in a unified package can be extremely complicated and time-consuming, especially for developers who are not familiar with the AWS console or infrastructure.
SST: The Solution
Serverless Stack (SST) addresses this problem by representing back-end infrastructure as code with TypeScript. This means that developers can integrate various AWS features without ever having to touch the AWS console. SST also comes with built-in deployment support for frameworks like Next.js, Astro, and Spell Kit, making the entire process seamless and efficient.
Once initialized, SST provides a variety of simple constructs that represent infrastructure declaratively. Under the hood, this code is based on Amazon’s Cloud Development Kit and CloudFormation. These constructs are grouped together in “Stacks,” which can be deployed together or run locally with the `sst dev` command. This provides a local development environment with live reloading and a web-based console to manage Stacks, minus the typical pain points associated with AWS development.
Getting Started with SST
To get started with SST, you’ll need the AWS CLI with credentials set up locally. Next, run the `npx create-sst` command to deploy SST to your favorite framework or initialize it as a standalone project. This will scaffold a mono repo, with the `packages` directory containing the code to power the back end. Inside this directory, you can write serverless functions in TypeScript that are powered by AWS Lambda and use API Gateway as the front door.
Running the `sst dev` command will automatically deploy the required resources to the cloud and provide a local development environment. Any changes made to the code will be immediately reflected in the cloud. The local SST console allows you to view logs and manage Stacks seamlessly.
Enhancing Your Application with SST
With SST, you can expand your application by adding additional features. For example, you can add an event bus to trigger Lambda functions based on different events, enable file uploads by adding the bucket construct, add a Postgres database with RDS, and enable user authentication with the auth construct. Additionally, you can define cron jobs that run on a schedule and point to specific Lambda functions. When the stack is complete, you can add it to the SST config file and deploy it to the cloud with a single command.
Conclusion
In summary, SST is a powerful and user-friendly tool that makes building full stack web applications with AWS a fun and seamless process. By representing back-end infrastructure as code in TypeScript, SST simplifies the integration of various AWS services, provides a local development environment with live reloading, and offers a web-based console to manage Stacks efficiently. For web developers looking to harness the full potential of AWS without the complexity, SST is truly a game-changer.
Bravo man!
this is basically, deploy the infrastructure as you code.
While this is interesting, I'm always wary of these layers-upon-layers of magical abstractions. All cost concerns aside, which can easily be controlled and aren't the boogyman man of the comments might suggest; you're not learning enough about the underlying infrastructure you're maniuplating. All abstractions come with this cost. Even with CDK, which I've adopted and started using because you need some sort of IaC tool for automation, you've got to understand what's happening under your code. To me, if you're strictly AWS, CDK is the way to go, and adding another layer on top of that might be easier, but you learn and understand less of the consequences of what you're executing.
All that being said, we're mired in frameworks, built atop frameworks, embedded with endless layers of abstraction and configuration. There's a shiny new toy every-other-day. You can chase your tail around for years and never settle on "THE stack"…and all of these toys achieve the same thing, in the end. At what point do you select "the best" tools and stick to them for more than a few months, or even a few years?
As neat as this is, I prefer to stay as close to the "bare metal" as possible, while accepting that the market will push you into certain things that you have no choice in adopting. Keep it as simple as possible, even if it's more difficult and requires a little more code and understanding. These frameworks come and go, seemingly overnight. If you stick to strong fundamentals and as few abstractions as possible, you'll waste less time and build more stable environments.
Cool! What does SST stands for?
This is really impress me, This really develop Infrastructure as code
He wrote "Hi, mom, I'm using AWS" 😢
are there azure and GCP versions of this?
Serveless?waw
SST is cool but only for those who know the underlying AWS services it spins up and working with them at least for few months. If a newbie uses SST, he's screwed.
It can be used to create HEROKU CLONE
Can you do a in 100 seconds video on Ballerina lang?
I understand next to nothing of what I just heard and read. But it looks cool !
Don't talk shit about SEGA Sound Team. Sickest band around.
Can you do a 100s fireship video for Objectbox NoSqlite DB ?
pki or certificates in general would be sick
Why would you use that when you can use CDK. Unnecessary abstraction and doomed to fail.
did anyone else think it was social studies
Sounds like a 1 click button to decimate your bank account.
currently using amplify in prod, would be curious to know the differences in usecase and if sst could be a drop in replacement
would be nice to see a JSDoc vs Typescript in 100 seconds video
eslint next pls
Wow, if this works, it looks pretty cool and may actually improve the dev lifecycle…. as long as your not hitting bugs that are impossible to discern with everything 'under the covers'.
Gleam in 100 seconds. What is it used for
Can you please do one on Ionic 7?
can you please do one on Ionic 7?
Can you make a video about Racket?
Please do a video about zero knowledge
This is really interesting
me who understand nothing but still watching because he explains well.
This is awesome. Thanks
Why would use sst instead of terraform ( assuming both fluency in both languages)
This is absolutely gibberish for 100 seconds if you've never used AWS before. 😂
I would just use regular CDK. Not thatbhard
Within 40 seconds I was like "SHUT UP AND TAKE MY MONEY"
This looks similar to aws cdk code
definently not me pretending to understand everything he said