A URL shortener built for fun.
This is a monorepo managed with Lerna. Each package has its own README with detailed instructions:
site: contains our site source code that builds a Next.js static sitelambda: contains the Lambda handlers (user facing Lambdas use LLRT, others use Node.js)infra: contains the code for our CDK stackse2e: contains Playwright end-to-end teststypes: contains shared TypeScript typesshared: contains shared TypeScript utility functions
npm cinpx lerna run build # build all packages
npx lerna run test # run all unit tests
npm run lint # lint all packagesSee each package's README for more commands (running the dev server, integration tests, deploying stacks, running e2e tests, etc.).
The .github/workflows/ci.yml workflow handles everything:
- Lints, runs unit tests, and runs integration tests. This is run on every PR and push to
main. devstacks are deployed on PRs, whereasprodstacks are deployed on push tomain.- E2E tests are run against the deployed environment after deployment.