An AI accountability SaaS for friend groups. Members create shared challenges, commit to consequences, submit proof, and track progress together. Auth0 verifies every participant, while Stripe handles subscriptions and user-approved commitment payments.
Working hackathon name. The product is framed as accountability and commitment, not gambling or peer-to-peer money transmission.
Friends often make goals together, but reminders disappear in group chats and there is no shared accountability. Existing habit trackers are usually individual tools and require users to remember to open another app.
WIP AI gives each friend group a shared challenge dashboard and an AI accountability agent that:
- creates or recommends daily challenges;
- tracks submissions and streaks;
- evaluates simple proof;
- reminds unfinished members;
- updates a shared leaderboard; and
- generates a Stripe Checkout request when a member confirms a missed commitment.
The complete MVP works as a web application. Group-chat delivery through Linq/iMessage is a stretch feature added only after the core flow is complete.
- A user signs in with Auth0.
- The user creates a group and a daily challenge.
- Friends join through an invite link and authenticate.
- Members complete the challenge and submit proof.
- The agent evaluates the submission and updates the leaderboard.
- A missed challenge produces a payment request.
- The member explicitly approves and completes a Stripe test payment.
- A Stripe webhook confirms the payment and updates the group dashboard.
Browser
|
v
Next.js application
|-- Auth0 SDK ----------> Auth0
|-- Server actions/API
| |-- Group and challenge logic
| |-- Accountability agent
| |-- Stripe Checkout sessions ------> Stripe
| |-- Stripe webhook <---------------- Stripe
| `-- Database
|
`-- Optional share link / Linq adapter
| Component | Responsibility |
|---|---|
| Stripe Projects | Provisions and connects development services from the Stripe CLI |
| Auth0 client | Authenticates users and returns their verified identity to the Next.js app |
| Next.js | UI, protected routes, API endpoints, and orchestration |
| Database | Groups, memberships, challenges, submissions, streaks, and payment state |
| Accountability agent | Generates challenges, evaluates proof, and explains decisions |
| Stripe Checkout | Collects subscriptions or user-approved commitment payments |
| Stripe webhook | Confirms payment completion server-side |
| Linq, optional | Posts challenge updates to an existing group chat and receives replies |
Stripe Projects is the setup layer, not the payment processor for the application.
stripe projects init
stripe projects add auth0/client
stripe projects statusauth0/client provisions or connects an Auth0 application and returns its credentials to the project environment. The Next.js Auth0 SDK then uses those credentials to implement login, logout, sessions, and protected routes.
Stripe Checkout is a separate runtime integration used when the application needs to collect a payment.
Auth0 owns identity. The application database owns product data.
Auth0 user ID
|
v
Application user
|-- belongs to groups
|-- submits challenge proof
|-- owns payment requests
`-- has organizer/member permissions
Suggested application roles:
organizer: creates groups and challenges;member: joins groups and submits proof;admin: optional hackathon-only moderation role.
The agent may prepare a payment request, but it cannot approve a payment for the user.
Use two simple Stripe flows:
- SaaS monetization: an organizer can upgrade to a Pro subscription.
- Commitment payment: a member voluntarily approves a Checkout payment after acknowledging a missed challenge.
For the hackathon, all transactions use Stripe test mode. Do not implement pooled wallets, automatic charges, winner-takes-all payouts, or peer-to-peer transfers.
User
- id
- auth0UserId
- displayName
Group
- id
- name
- inviteCode
- ownerId
GroupMember
- groupId
- userId
- role
- streak
- score
Challenge
- id
- groupId
- title
- description
- dueAt
- commitmentAmount
Submission
- id
- challengeId
- userId
- proofUrl
- status
- agentReason
PaymentRequest
- id
- challengeId
- userId
- amount
- stripeCheckoutSessionId
- status
- Auth0 login and protected dashboard;
- create a group and invite link;
- join a group;
- create or generate one challenge;
- submit proof;
- agent pass/fail decision;
- leaderboard and streak update;
- Stripe test Checkout;
- Stripe webhook or verified success callback.
- scheduled reminders;
- AI-generated daily challenge rotation;
- image-based proof analysis;
- Stripe subscription tier;
- share-to-Messages button;
- Linq/iMessage group-chat adapter.
- real pooled funds or escrow;
- autonomous charging;
- cash prizes or winner payouts;
- peer-to-peer transfers;
- refunds, disputes, taxes, or production compliance;
- native iOS application;
- production-grade fraud prevention.
- Next.js and TypeScript
- Auth0 Next.js SDK
- Stripe Projects
- Stripe Checkout and webhooks
- PostgreSQL, Supabase, Neon, or a lightweight hackathon database
- OpenAI-compatible model for challenge generation and proof evaluation
- Vercel or local demo deployment
Exact Auth0 variable names depend on the generated integration. Expected values include:
AUTH0_SECRET=
AUTH0_BASE_URL=http://localhost:3000
AUTH0_ISSUER_BASE_URL=
AUTH0_CLIENT_ID=
AUTH0_CLIENT_SECRET=
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=
DATABASE_URL=
LLM_API_KEY=Never commit .env, .env.local, or .projects/vault/.
WIP AI is an authenticated accountability partner for friend groups: do the commitment or get WIPped with the penalty you approved. It creates shared challenges, verifies progress, maintains the leaderboard, and turns missed commitments into user-approved Stripe payments. Auth0 guarantees that every action belongs to the correct person, while Stripe makes the financial commitment real.