← Back
Startline
Technical skills demonstrated in this project
Product & frontend
- Next.js 15 App Router with TypeScript and Tailwind for a fast, responsive UI.
- Event discovery UX: browse and filter competitions by type, Australian state, date range, and individual vs team format.
- Radix-based accessible components (accordions, composition patterns) alongside a cohesive dark, athletic visual style.
Data & persistence
- Prisma as the data access layer with a PostgreSQL database.
- PostgreSQL on AWS RDS with separate non-production and production databases (`startline-nonprod-postgres` / `startline-prod-postgres`).
- Clear separation of app schema/migrations from operational concerns documented in the deployment guide.
AWS infrastructure (Terraform)
- Multi-environment Terraform (`module.env[*]`) provisioning VPCs, RDS, Cognito user pools, and per-branch Amplify configuration.
- Shared concerns: Route 53 for `startlineau.com`, S3-backed remote state, and GitHub OIDC trust for CI roles.
- Terraform applies on merge to `main`; application deploys are decoupled and run on `non-production` / `production` branches only.
CI/CD & release discipline
- GitHub Actions: `terraform-plan` on PRs (fmt, validate, plan + PR comment) and `terraform-apply` on push to `main` when infra changes.
- Promotion flow `feature → main → non-production → production` with documented reset procedures for staging.
- Awareness of ordering: new Amplify env vars from Terraform require a branch rebuild or console redeploy to take effect.
Integrations & operations
- Transactional email via Resend (API key supplied as a GitHub Actions / Amplify secret).
- Cognito-backed authentication shape in infrastructure; operational defaults like RDS deletion protection differ sensibly between prod and nonprod.
Next.jsTypeScriptTailwind CSSPrismaPostgreSQLAWS RDSAWS AmplifyAWS CognitoTerraformRoute53S3IAMSecrets ManagerStripeResendGitHub ActionsCloudflare