Why I built this
AWS has 200+ services.
I needed to actually use them.
The problem
- Docs and tutorials only go so far
- No feel for how services connect
- Never built a real-time serverless app
- IAM, Cognito, WebSockets — all abstract
- Needed something end-to-end to make it click
The approach
- Build a full ride-sharing app from scratch
- Wire up every core AWS service manually
- Implement real auth, real APIs, real DB
- Deploy with proper CI/CD from day one
- Learn by breaking things in production
Architecture
100% serverless,
end to end.
Request flow
UserAmplify (frontend + CI/CD)
AuthCognito (JWT tokens)
APIAPI Gateway (REST + WebSocket)
LogicLambda (ride matching)
DataDynamoDB (rides, users, locations)
Ride flow
01User authenticates via Cognito
02Ride request hits API Gateway
03Lambda matches rider with driver
04Real-time updates via WebSocket
05Ride data persisted to DynamoDB
AWS services
Every service, hands-on.
Click any card to see how and why it was used.
What I learned
6 services.
One working app.
Serverless architecture patterns
Real-time WebSocket implementation
NoSQL data modelling for ride queries
IAM least-privilege security
Cognito auth flows end-to-end
API Gateway REST + WebSocket config
CI/CD pipeline with Amplify
Event-driven Lambda functions
Stack
Frontend
AWS AmplifyGitHub CI/CDHosted UI
Auth
Amazon CognitoUser PoolsJWT tokens
API
API GatewayREST APIWebSocket API
Logic
AWS LambdaNode.jsRide matching
Database
DynamoDBGSI indexesMillisecond reads
Security
IAM rolesLeast-privilege policiesService-to-service auth