HabStrack is a web-based habit tracker supercharged with AI for habit stacking and progression insights over time. It helps you build lasting routines by intelligently grouping related habits together and surfacing insights into how your habits evolve over time.
🔗 Live app: main.d19maocf46nn2u.amplifyapp.com
- Habit tracking — Create, manage, and log daily/weekly habits.
- AI-powered habit stacking — Get intelligent suggestions on how to group and sequence habits for better consistency.
- Progression insights — Visualize trends and patterns in your habit completion over time.
- Serverless backend — Built on AWS Lambda for scalability and low operational overhead.
- Fast, persistent storage — Powered by Amazon DynamoDB.
| Layer | Technology |
|---|---|
| Frontend | React |
| Backend | Python (AWS Lambda) |
| Database | Amazon DynamoDB |
| AI Integration | Amazon Bedrock |
| Hosting | AWS Amplify |
Tags: react productivity aws-lambda aws-dynamodb
HabStrack/
├── frontend/
│ └── habstrack/ # React frontend application
├── ai.py # AI integration logic (habit stacking & insights)
├── db.py # Database access layer / helper functions for DynamoDB
├── init_db.py # Script to initialize/set up the DynamoDB table(s)
├── lambda_function.py # AWS Lambda entry point (backend API handler)
├── .gitignore
└── README.md
- Node.js and npm (for the frontend)
- Python 3.x
- An AWS account with access to Lambda, Bedrock and DynamoDB
- AWS CLI configured with appropriate credentials
git clone https://github.com/tomjames156/HabStrack.git
cd HabStrackcd frontend/habstrack
npm install
npm startThe app will run locally at http://localhost:3000.
From the repository root:
pip install -r requirements.txtConfigure your AWS credentials and environment variables (see Environment Variables below), then initialize the database:
python init_db.pyPackage lambda_function.py, ai.py, and db.py and deploy to AWS Lambda, ensuring it has the necessary IAM permissions to read/write to DynamoDB and Bedrock.
The frontend expects the following environment variables to be configured (in your Amplify configuration, local .env file, or other deployment platform):
| Variable | Description |
|---|---|
VITE_APP_LAMBDA_URL |
Your deployed Lambda function's API endpoint URL |
The backend expects the following environment variables to be configured (in your Lambda configuration or a local .env file):
| Variable | Description |
|---|---|
DYNAMODB_TABLE_NAME |
Name of the DynamoDB table used by HabStrack |
BEDROCK_MODEL_PROFILE_ARN |
The model profile ARN of Claude 4.5 Haiku from Bedrock used in ai.py |
- Frontend (
frontend/habstrack) — A React application where users create and manage their habits, view their progress, and see AI-generated suggestions. - Backend (
lambda_function.py) — Serves as the API layer, handling requests from the frontend and coordinating between the database and AI logic. - Database layer (
db.py,init_db.py) — Handles all reads/writes to DynamoDB and sets up the required tables. - AI layer (
ai.py) — Analyzes a user's existing habits and history to recommend habit stacks and in the future to generate progression insights.
- Add authentication and multi-user support
- Expand AI insights (streaks, best time-of-day recommendations, etc.)
- Add notifications/reminders
- Mobile-friendly UI improvements
- CI/CD pipeline for automated deployment
Copyright (c) 2026 Tomisin Akinwande. All rights reserved.
This repository and its contents are proprietary. No part of this project may be copied, reproduced, distributed, or modified without explicit written permission from the author.
tomjames156