We decided to migrate our existing serverless applications entirely to SST (coming from serverless framework). We're seeing the main benefits in the local developer experience & the use of CDK. Since we are deploying "real" cloud resources with SST during local development, we can iterate much faster, learn more about the serverless / cloud specifics & catch issues before deploying to a preview deployment. Utilizing AWS CDK (Typescript) for IaC matches our full-stack typescript mentality.
I've looked at this closely and we're still on the fence. Many folks like having a completely offline model for testing and SST is not philosophically aligned with that. Further, the finance team is worried about the cost of all developers spinning up cloud resources for their offline development. Have you found either to be a concern?
We also evaluated & actually worked on the "completely offline model" for our apps based on serverless framework. We used local emulators for dynamodb, s3, sqs, sns via localstack etc. However those emulators did not really give us full confidence [e.g. testing if your IAM permissions are setup correctly] & were quite flaky to setup / maintain tbh. Another part is that testing more complex event driven patterns [e.g. api gateway -> lambda -> sns -> sqs -> lambda] was never really possible using those emulators. Running on SST allows to cover those tests during local development.
Regarding financial concerns all used services are pay per usage & usage during development is typically quite low so we don't have any issues around that. For pricey components [e.g. RDS] we're using a shared instance across all preview deployments to avoid high costs for preview envs. We also invested in a proper SSO structure on our AWS accounts, where each engineer has their own AWS account [with budget alarms being setup to avoid any costly accidents].
We're planning to share more on our setup in a blog post soon, stay tuned :)
would love to read when available!