Skip to content

ainsleyrutterford/short.as

Repository files navigation

A URL shortener built for fun.

Packages

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 site
  • lambda: contains the Lambda handlers (user facing Lambdas use LLRT, others use Node.js)
  • infra: contains the code for our CDK stacks
  • e2e: contains Playwright end-to-end tests
  • types: contains shared TypeScript types
  • shared: contains shared TypeScript utility functions

Getting started

npm ci

Development

npx lerna run build        # build all packages
npx lerna run test         # run all unit tests
npm run lint               # lint all packages

See each package's README for more commands (running the dev server, integration tests, deploying stacks, running e2e tests, etc.).

CI/CD

The .github/workflows/ci.yml workflow handles everything:

  1. Lints, runs unit tests, and runs integration tests. This is run on every PR and push to main.
  2. dev stacks are deployed on PRs, whereas prod stacks are deployed on push to main.
  3. E2E tests are run against the deployed environment after deployment.

Contributors