dropthejase moves the Louis backend onto AWS serverless

The fork repackages its entire backend to run on Amazon's pay-as-you-go cloud - and then commits to it fully, dropping the old self-hosted path.

infrastructure

dropthejase has rebuilt how Louis runs behind the scenes. The same backend now ships as an AWS Lambda function - Amazon's serverless compute, which spins up on demand and bills per request rather than keeping a server running around the clock. The work started as a dual setup that could run either locally or on Lambda, then a later pass cut the local option entirely and went Lambda-only.

The move pulls the supporting pieces into the AWS ecosystem too: credentials are fetched from Amazon's secrets vault, login checks are handed off to AWS's API gateway, and file storage shifts to Amazon's S3 - retiring the previous Cloudflare-based storage option.

So what If you're weighing where a Louis-based product could be hosted, this fork is now firmly an AWS shop - relevant to anyone thinking about cloud commitments, data residency, or how the thing scales under load.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

12 commits from dropthejase/louis, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
c6ff8a18 chore(backend): add Lambda + Powertools + Bedrock deps Jason Lee 2026-05-06 ↗ GitHub
472e65ec chore(backend): ensure CommonJS output and add build:lambda script Jason Lee 2026-05-06 ↗ GitHub
e2da4284 refactor(backend): extract app.ts - shared Express app for local dev and Lambda Jason Lee 2026-05-06 ↗ GitHub
c3c58397 feat(backend): add lambda.ts - serverless-http + Powertools handler Jason Lee 2026-05-06 ↗ GitHub
6afb46e7 feat(backend): add secrets.ts - Secrets Manager cold-start loader for Supabase creds Jason Lee 2026-05-06 ↗ GitHub
f2278ac8 feat(backend): auth middleware - prod reads API Gateway context; dev falls back to Supabase getUser Jason Lee 2026-05-06 ↗ GitHub
ab6f4e58 feat(backend): storage.ts - S3 IAM role in Lambda, R2 fallback for local dev Jason Lee 2026-05-06 ↗ GitHub
4c11ec5e feat(backend): Dockerfile.lambda - arm64 Lambda container for Express app Jason Lee 2026-05-06 ↗ GitHub
ea417f3b feat(backend): Dockerfile.lambda - arm64 Lambda container for Express app Jason Lee 2026-05-06 ↗ GitHub
4536d02b docs(backend): add .env.lambda.example documenting Lambda env vars Jason Lee 2026-05-06 ↗ GitHub
eef3665b Merge feature/backend-migration: Express → Lambda (serverless-http, Bedrock, S3, auth) Jason Lee 2026-05-06 ↗ GitHub
c96d725d refactor(backend): auth middleware Lambda-only, drop Supabase fallback; storage S3-only, drop R2 fallback Jason Lee 2026-05-07 ↗ GitHub
commit body
Auth middleware now returns 401 immediately if the API Gateway authorizer
context is absent, removing the Supabase getUser() local dev path and
the @supabase/supabase-js import. Storage is simplified to a single
S3Client using the IAM role; removes isLambda() branching, R2 env vars,
and the storageEnabled export.

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-328.md from inside the repo you want the changes in.

⬇ Download capture-thread-328.md