One stack. Your account. Nothing else.
Deadlift is a single CloudFormation stack. Everything on this page is provisioned inside your AWS account when you subscribe - there is no infrastructure on our side.
What gets deployed.
Frontend
S3 + CloudFront serving a static Next.js export
API
AppSync GraphQL, authorised by your Cognito User Pool
Compute
13 Lambda functions - resolvers plus scheduled jobs
Storage
5 DynamoDB tables: sessions, audit, counters, rules, settings
Identity
Cognito User Pool - optional MFA, SSO on Enterprise
Monitoring
CloudWatch alarms per DLQ, SNS delivery, webhook Lambda
How a replay works.
Messages never travel through Deadlift infrastructure - they move directly between SQS and Lambda, inside your account.
01
Browse
The dashboard calls listMessages, which holds the SQS visibility timeout for 5 minutes. Receipt handles land in DynamoDB - nothing is consumed.
02
Replay
You select messages and hit replay. AppSync invokes the replay Lambda, which sends them to the source queue derived from the redrive policy, then deletes them from the DLQ.
03
Audit
Every action writes an audit entry: your Cognito identity, the queue, the action, the message IDs. Retention follows your tier.
Why no SaaS backend?
Bring-your-own-account is a deliberate trade. Here is both sides of it.
What you gain
- Data residency - customer data never leaves your AWS account
- Cost transparency - usage shows up on your existing AWS bill
- Simpler compliance - no third-party data processor to vet
What it costs
- Updates are a stack update, on your own cadence
- Each deployment is single-tenant via its own Cognito pool
For teams running production AWS workloads - especially in regulated environments - the data residency story outweighs the update friction.
Tiers are enforced in the stack.
Marketplace sets a Tier parameter on the CloudFormation stack; every Lambda reads it from its environment and gates behaviour accordingly. Upgrade your subscription and the limits change immediately - no redeploy.
- DLQ count limits list-queues
- Daily browse caps list-messages + CounterTable
- Audit retention DynamoDB TTL on AuditTable
- Webhooks dlq-webhook (no-op when untiered)
- Multi-user Cognito layer