LET - Life Events Tracker

Track your life. Discover patterns. Become your best self.

A simple yet powerful mobile app to track daily habits, life events, and discover patterns in your daily life.

Screenshots

Onboarding Home Dashboard Patterns

What is LET?

LET stands for Life Events Tracker - an app designed to help you:

Track daily habits (exercise, meditation, reading, water intake)

Monitor health & fitness (sleep hours, workouts, meals)

Follow goals & milestones

Log mood & wellbeing

Record important life events

What This Project IS

A React Native project built with Expo

A cross-platform app (iOS, Android, Web)

A habit tracker and life event logger

An open-source project you can contribute to

A showcase of what vibe-coding can achieve

Built entirely by talking to an AI (yes, really)

What This Project IS NOT

A unicorn (sorry, no magical horns here)

A replacement for your therapist

A time machine (can't track events that haven't happened yet... or can we?)

A social network (your data stays on your device)

Something that will make you coffee (working on it)

Written by a human (see acknowledgments below)

Tech Stack

Category Technology Framework React Native + Expo Language TypeScript Styling NativeWind (TailwindCSS) Database SQLite (expo-sqlite + Drizzle ORM) State Management Zustand UI Components Custom components + rn-primitives Navigation Expo Router Charts Custom SVG-based charts

Features

Dark/Light mode support

Week-based navigation with calendar picker

Pattern analysis with visual charts

Export/Import data (JSON)

Customizable event colors

Works offline (local SQLite database)

Swipe gestures for navigation

Getting Started

Prerequisites

Node.js 18+

Yarn or npm

Expo CLI

iOS Simulator / Android Emulator / Physical device

Installation

# Clone the repository git clone https://github.com/p32929/let.git cd let # Install dependencies yarn install # Start the development server yarn dev # Or for specific platforms yarn ios # iOS yarn android # Android yarn web # Web

Contributing

Contributions are welcome! But before you dive in:

Create an issue first - Let's discuss what you want to change Wait for approval - I might have opinions (or the AI might) Fork the repo - Make your changes Submit a PR - Reference the issue

Please don't just randomly submit PRs without discussion. We're all friends here, let's talk first!

Code Style

TypeScript all the way

Functional components with hooks

NativeWind for styling

Keep it simple, keep it clean

FAQ

Q: Can I use this for commercial purposes? A: Check the license. But why would you? It's a habit tracker, not a gold mine.

Q: Why is it called LET? A: Life Events Tracker. Also, "let" as in "let yourself be better." Deep, right?

Q: Does it sync to the cloud? A: Nope. Your data, your device, your privacy. Old school.

Q: I found a bug! A: Create an issue. Or fix it and submit a PR. Or blame the AI.

Troubleshooting

Before asking me anything:

Ask a good LLM first - They're smarter than both of us combined Read the docs - Expo, React Native, they have great documentation Search existing issues - Someone might have had the same problem If all else fails - Pray to God, then start reading the code. Good luck, you'll need it.

Acknowledgments

The Vibe-Coding Confession

I have to be honest with you. I vibe-coded this entire project.

What does that mean? It means:

I didn't write a single line of code manually

I just talked to Claude (the AI, not some French guy)

I mostly drank tea and approved changes

The AI did all the heavy lifting

If there are bugs, blame the AI (just kidding, blame me for not prompting better)

This is what the future looks like, folks. I described what I wanted, and an AI built it. We're living in the future, and it's both amazing and slightly terrifying.

Why I Built This

I built this project because I was working on something bigger and needed to evaluate a framework that could handle iOS, Android, and Web simultaneously - with proper UI consistency and fast load times across all platforms.

So I started with something simple enough to test the framework's capabilities without getting lost in complex business logic.

The honest truth? React Native isn't perfect yet. NativeWind and the shadcn-like component library (React Native Reusables) have their fair share of issues. I spent a lot of time debugging, running the app on all platforms, and fixing platform-specific quirks.

I did consider switching to Flutter or Tauri Mobile, but:

Flutter Web takes forever to load (not ideal for web-first experiences)

Tauri Mobile is still too new and experimental

So I stuck with React Native + Expo, debugged issues platform by platform, and eventually ended up with a usable app that works everywhere. Sometimes the best choice is the one you can actually ship.

Special Thanks

Claude (Anthropic) - For writing all this code while I watched

- For writing all this code while I watched The Expo Team - For making React Native actually usable

- For making React Native actually usable You - For reading this far (seriously, why are you still here?)

License

MIT License - Do whatever you want with it. Just don't blame me if it breaks.