Mindflect is an AI Journal app that includes daily prompts, journaling with photos, CRUD actions, category auto-generation, AI chat over past entries, subscription gating with Clerk Auth & Billing, profile management, and CMS controls via Sanity.
Smart Journaling
Daily prompts, rich text entries, photo uploads, and full CRUD support, with AI-driven categorization that intelligently reuses or creates categories.
AI Journal Assistant
A context-aware AI chat with access to your entire journaling history, featuring real-time streaming responses and tool calling for deeper analysis. Available on the Pro plan.
Authentication & Access Control
Secure Clerk-powered authentication with protected routes, user profiles, streak visibility, and subscription-aware gating.
Subscriptions & Billing
Production-ready billing via Clerk Billing and Stripe, supporting Free and Pro tiers, web-based checkout, upgrades, subscription management, and post-purchase state sync.
Engagement & Insights
Streak tracking, category-based browsing, and polished rich-text rendering to make long-term journaling rewarding and easy to explore.
Cross-Platform UI & Data
High-performance, responsive UI built with Tamagui for mobile and web, backed by Sanity CMS with typed GROQ queries, environment separation, and IDE-level tooling.
- Configured Tamagui for a performant, cross-platform design system in Expo.
- Integrated Clerk authentication with protected routes, user state, and subscription awareness.
- Built a fully typed Sanity CMS backend with schemas, seeded data, and MCP tooling.
- Implemented a clean, type-safe data layer using GROQ and generated TypeScript types.
- Created a reusable streak management hook powering Home and Profile screens.
- Delivered a complete journal entry flow with media uploads and validation.
- Implemented AI-powered categorization via Expo API routes using Vercel AI SDK and Groq.
- Built full entries CRUD with list, view, edit, and delete flows.
- Added AI Chat feature gating tied to Pro subscriptions.
- Implemented end-to-end billing and plan upgrades with Clerk Billing.
- Finished AI chat with streaming responses, tool calling, polyfills, and multi-step agent workflows.
- Expo / React Native
- Tamagui
- Clerk (Auth & Billing)
- Sanity (CMS)
- Vercel AI SDK
- Groq
Please create .env.local file at root and set relevant values before continuing
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=value1
CLERK_SECRET_KEY=value2
EXPO_PUBLIC_SANITY_PROJECT_ID=value3
EXPO_PUBLIC_SANITY_DATASET=value4
EXPO_PUBLIC_SANITY_TOKEN=value5
GROQ_API_KEY=value6Please create another .env.local file at sanity folder and set relevant values before continuing
SANITY_STUDIO_SANITY_PROJECT_ID=value1
SANITY_STUDIO_SANITY_DATASET=value2
SANITY_STUDIO_SANITY_TOKEN=value3Please fill empty strings in app.json and sanity.cli.ts
yarn install
# Android
npx expo prebuild --platform android --clean
cd android && ./gradlew clean && cd ..
adb uninstall com.hassanarifmahmood.Mindflect
yarn android
# iOS
npx expo prebuild --platform ios --clean
yarn ioscd sanity
yarn install
yarn devcd android
./gradlew app:assembleRelease
or
./gradlew app:bundleReleaseeas login
npx expo export --platform web
eas deploy # copy deployed server origin and adjust it in app.json after this stepcd sanity
yarn build
yarn deployInitial setup inspired by Sonny Sangha.
