A structured intention-tracking social web app. Declare your goals, track your progress, and make them visible for accountability.
This is NOT a journaling app and NOT a "woo-woo" manifestation app. It's positioned around:
- Structured intention — every goal has a category, timeline, and status
- Visibility and accountability — choose what to share publicly
- Calm, deliberate self-development — no gamification, no streaks, no dopamine tricks
Manifestations — Structured goals with:
- Title (short, declarative)
- Category (Career, Money, Health, Relationships, Personal, Creation)
- Time Horizon (30 days, 90 days, 1 year, Someday)
- Status (Declared → In Motion → Realized / Released)
- Visibility (Private, Followers, Public)
- Optional private fields (Why this matters, Confidence level)
Boards — Group manifestations into focused collections:
- "2026 Outcomes"
- "Next 90 Days"
- "Financial Reality"
Public Profiles — GitHub-style profile pages showing:
- Display name and handle
- Bio
- Public manifestations and boards
- Follow other users
- Feed with declarations and status changes
- Calm reactions: "Witnessed", "Aligned", "Rooting for this"
- No likes, no comments, no DMs
- Frontend: Next.js 15 with App Router
- Styling: Tailwind CSS v4
- State: Zustand
- Backend: Supabase (Postgres + Auth)
- Icons: Lucide React
-
Clone the repository
-
Install dependencies:
npm install
-
Set up environment variables:
cp .env.local.example .env.local
Fill in your Supabase credentials.
-
Run the development server:
npm run dev
The database schema is in supabase/migrations/001_initial_schema.sql. Run this against your Supabase project to set up the tables.
src/
├── app/ # Next.js App Router pages
│ ├── (auth)/ # Auth pages (login, signup, onboarding)
│ ├── (app)/ # Authenticated app pages
│ │ ├── dashboard/ # Main dashboard
│ │ ├── boards/ # Boards list
│ │ ├── feed/ # Social feed
│ │ └── settings/ # User settings
│ └── [handle]/ # Public profile pages
├── components/
│ ├── ui/ # Reusable UI components
│ ├── manifestation/ # Manifestation-specific components
│ ├── board/ # Board-specific components
│ ├── profile/ # Profile components
│ ├── auth/ # Auth forms
│ └── layout/ # Layout components (header, footer)
├── lib/
│ ├── types.ts # TypeScript types
│ ├── utils.ts # Utility functions
│ ├── store.ts # Zustand stores
│ └── supabase/ # Supabase client setup
└── middleware.ts # Auth middleware
The app uses a calm, minimal aesthetic:
- Colors: Neutral palette (grays, off-white, soft accents)
- Typography: IBM Plex Sans
- Spacing: Generous whitespace
- Motion: Subtle transitions
CSS variables are defined in globals.css for easy theming:
--color-bg,--color-surface,--color-border--color-text,--color-text-secondary,--color-text-muted- Status colors, reaction colors
The architecture is designed for mobile compatibility:
- Modular components work with React Native
- Simple state management (Zustand)
- No web-only dependencies
- Private manifestation analytics
- Advanced board organization
- Custom visibility lists
- Export/backup functionality
- Discovery/explore page
- Suggested follows
- Activity notifications
MIT