Skip to content
HL
Available
Project / saasproduction

Cluster Profile Card Platform

Cognito-secured profile and journal app on AWS Fargate, with admin ETL and a keyed API

A profile-card and journal web app for Cluster, built in a shared repository with the client's developer. The client started with an Amplify-based static front end; I fixed the build and moved the backend to Next.js on ECS Fargate behind an ALB and CloudFront, with Cognito auth, S3 photo storage and MongoDB. From there I added an admin workspace with a staged ETL pipeline, a rate-limited API-key data API, and an Ionic/Capacitor mobile app.

Highlights

  1. 01Production on AWS: Docker on ECS Fargate behind an ALB, a CloudFront TLS front door on a custom domain, and CloudFormation templates with scoped IAM.
  2. 02Every push to main deploys to Fargate through GitHub OIDC, with no long-lived keys.
  3. 03Profiles keyed to the Cognito token subject, S3 photos via presigned URLs, and browser-side image resizing to fix oversized uploads.
  4. 04Admin workspace with a staged ETL pipeline, editable terms and policies, and API keys with per-key rate limits and expiry behind documented /api/v1 endpoints.
  5. 05Nearby card exchange: the sender picks which fields to share and the rest is only sent after the receiver accepts, found through GPS (within 100 m) plus a small Capacitor plugin I wrote for iOS and Android that broadcasts a random per-visit Bluetooth LE beacon, so nobody's position is sent to other users.
  6. 06Ionic Vue + Capacitor iOS/Android app on the same API; 41 of the project's 90 commits are mine (Aug–Sep 2026).

Stack

Cluster Profile Card Platform · screenshots

Dark-themed 'profile.' sign-in page with email and password fields (password has a Show toggle), an unticked 'Keep me signed in' checkbox with a note about shared computers, Sign in and Create an account buttons, a Forgot your password link, and links to the Privacy Policy, Terms of Service, Payments Terms of Service and Nondiscrimination Policy
1 / 1The live sign-in screen at clustercorp.org, backed by Amazon Cognito. 'Keep me signed in' is off by default, so tokens sit in sessionStorage and are gone when the tab closes. Ticking it moves them to localStorage, so the session survives a restart.