Habitly is a modern, full-featured habit-tracking application built for web and mobile. Designed to help users build lasting habits through gamification, streak tracking, push notifications, and an intuitive UI — all supported by a robust infrastructure and CI/CD pipeline.
| Layer | Technologies |
|---|---|
| Frontend | React, Vite, Capacitor (iOS/Android) |
| Backend | Node.js, Serverless Framework |
| Database | Neon PostgreSQL, Prisma ORM |
| Infrastructure | AWS (Terraform), Cloudflare, GitHub Actions (CI/CD) |
habitly/
├── apps/
│ ├── backend/ # Node.js API with Serverless Framework
│ └── frontend/ # React Web App + Capacitor for mobile
├── infrastructure/ # AWS Infrastructure (Terraform)
├── scripts/ # Automation scripts (optional)
├── docs/ # Internal documentation (WIP)
├── package.json # Workspace configuration and shared deps
└── README.md # Root project overview
- Email/password login
- Google OAuth integration
- Secure JWT handling with refresh tokens
- Password change support
- Create habits with daily, weekly, or custom schedules
- Track completions, moods, and notes
- Filter by categories and tags
- View detailed progress and statistics
- Achievement badges and milestones
- Streak tracking with celebrations
- Motivational quotes and progress rewards
- iOS and Android apps via Capacitor
- Push notifications for reminders
- Offline support with sync on reconnect
- Modular AWS Terraform setup (Lambda, S3, API Gateway)
- GitHub Actions CI/CD for builds, validation, and deployments
- Secrets and parameters managed with AWS services
- Separate environments: dev, staging, and prod
Habitly is live and production-ready.
| Component | Platform | URL |
|---|---|---|
| Frontend | Vercel | https://app.myhabitly.com |
| Backend | AWS Lambda | https://api.myhabitly.com/docs |
| Mobile | Capacitor (WIP) | Deployed manually to devices |
| Infra Code | Terraform | infrastructure/ folder |
| Area | Status |
|---|---|
| Backend | ✅ 25+ Postman test cases |
| Frontend | 🚧 Partial unit test suite |
| E2E Integration | 🚧 Incomplete |
| Performance | 🔜 Planned load testing |
| Security | npm audit coverage |
Powered by GitHub Actions:
- Runs on every push and PR
- Validates frontend and backend builds
- Checks TypeScript and lint rules
- Formats Terraform code and validates plans
- Security checks using npm audit
- Supports manual approval and environment inputs
- Frontend: React, Vite, Capacitor, TailwindCSS
- Backend: Node.js, Serverless Framework, Prisma
- Infra: Terraform, CloudWatch, SSM, Secrets Manager
- Dev Tools: TypeScript, ESLint, Prettier, GitHub Actions
| Item | Tool/Platform |
|---|---|
| Secrets | AWS Secrets Manager |
| Config Params | AWS SSM Parameter Store |
| Domains | Cloudflare DNS |
| SSL Certs | AWS ACM (auto-renewed) |
| Logging | AWS CloudWatch |
| Status | Description |
|---|---|
| ✅ Complete | MVP (auth, tracking, gamification, mobile push) |
| 🔄 Ongoing | Test coverage and analytics |
| 🔜 Planned | User onboarding, WAF, backups, advanced infra hardening |
Habitly was born from the desire to combine productivity with psychology and play. It helps users form better habits through engaging design, data-driven insights, and delightful interactions.
Created by FT Tan
This project is shared as inspiration and demonstration of end-to-end app development.
© 2025 FT Tan.
This project is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Please do not reuse, modify, or redistribute without permission.