AI-powered credit repair and dispute automation built with Next.js, Prisma, Stripe, and configurable LLM backends. ClearCredit now supports an admin-managed pricing catalog for one-time packages plus monthly/yearly subscriptions, and it can be shipped as a portable standalone bundle (.zip or .tar.gz).
- Admin dashboard for clients, disputes, billing, and automation
- AI-generated FCRA dispute letters
- Stripe checkout, invoices, and customer portal integration
- Admin-editable pricing for:
- one-time packages
- monthly plans
- yearly plans
- plan names
- prices
- dispute credits
- Stripe price IDs
- sort order
- active/inactive visibility
- Configurable LLM backends:
- direct OpenAI-compatible
- OpenRouter
- local Mirrowel API key proxy
- Portable standalone packaging for handoff and offline deployment prep
- GitHub: https://github.com/innotelinc/clearcredit
- Issues: https://github.com/innotelinc/clearcredit/issues
- Releases: create a Git tag like
v0.2.1to trigger the portable release workflow
- Node.js 20+
- npm
- SQLite by default (
DATABASE_URL=file:./dev.db) or another Prisma-supported database
npm ci
cp .env.example .env
npx prisma generate
npx prisma db push
npm run build
npm test
npm run devOpen http://localhost:3000.
Copy .env.example to .env and fill in real values.
Minimum production variables:
DATABASE_URLNEXTAUTH_SECRETNEXTAUTH_URLPUBLIC_APP_URLSTRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRET
Optional integrations:
RESEND_API_KEYFROM_EMAILOPENAI_API_KEY- proxy/OpenRouter-specific variables already used by this repo
From Admin → Settings, you can now edit:
- plan name
- price
- dispute credits
- sort order
- active/inactive visibility
- Stripe price ID
- plan name
- price
- dispute credits
- sort order
- active/inactive visibility
- Stripe price ID
Those values are consumed by:
- homepage pricing cards
- signup flow
- client billing page
- Stripe checkout session creation
- Stripe webhook subscription credit reconciliation
This repo supports Next.js standalone output.
Build a portable release bundle:
npx prisma generate
npx prisma db push
npm run package:portableArtifacts are written to dist/:
clearcredit-<version>-portable.tar.gzclearcredit-<version>-portable.zipclearcredit-<version>-SHA256SUMS.txt
The extracted bundle contains:
- standalone Next server output
- static assets
- public assets
.env.example- Prisma schema/seed files
scripts/install-portable.shscripts/run-portable.sh
After extracting an artifact:
cd clearcredit-<version>
./scripts/install-portable.sh /opt/clearcredit
cd /opt/clearcredit
cp .env.example .env # if needed
./scripts/run-portable.shDefault runtime:
- host:
0.0.0.0 - port:
3000
Override with:
HOSTNAME=127.0.0.1 PORT=4000 ./scripts/run-portable.shUse the same checks as CI:
npx prisma generate
npx prisma db push
npm run lint
npm test
npx tsc --noEmit
npm run buildThis project now uses package-based semantic versioning from package.json.
Current version:
0.2.1
Recommended release flow:
- Update code and docs
- Update
CHANGELOG.md - Bump
package.jsonversion - Commit
- Tag release:
git tag v0.2.1 && git push origin v0.2.1 - GitHub Actions builds the portable archives and attaches them to the release
This repository includes:
- CI validation workflow
- portable release workflow
- issue templates
- pull request template
- contributing guide
- security policy
- changelog
MIT — see LICENSE.