An AI-powered code intelligence platform that scans your GitHub repositories and discovers what applications you can build by combining existing files and components.
- GitHub App Auth: Connect your GitHub account with a single click using GitHub App user authorization
- Repository Management: Add and manage GitHub repositories for analysis
- AI Code Analysis: AI scans every file to identify purpose, exports, and reusability
- App Blueprint Discovery: Discover applications you can build from your existing code
- Gap Analysis: See exactly which files you're missing and generate them with AI
- Export: Download blueprint JSON for offline use or share with your team
- Stripe Billing: Real checkout flow for RepoFuse Pro upgrades and billing management
- Framework: Next.js 16 with App Router
- Database: Neon PostgreSQL with connection pooling
- AI: Vercel AI SDK (OpenAI GPT-4)
- UI Components: Shadcn UI with Radix primitives
- Styling: Tailwind CSS v4
- Auth: GitHub App user authorization (custom)
app/
├── api/ # API Routes
│ ├── auth/github/callback/ # GitHub App callback
│ ├── github/repos/ # Fetch user's GitHub repos
│ ├── github/create-repo/ # Create repo from blueprint
│ ├── repositories/ # Repository CRUD
│ ├── analyses/ # Analysis management
│ │ └── [id]/
│ │ ├── run/ # Run analysis (SSE stream)
│ │ └── analyze/ # AI analysis endpoint
│ └── export/
│ ├── blueprint/ # Export blueprint as JSON
│ └── pdf/ # Export blueprint as PDF
├── dashboard/ # Dashboard pages
│ ├── layout.tsx # Dashboard layout
│ ├── page.tsx # Overview
│ ├── repositories/ # Repository management
│ └── analyses/ # Analysis pages
│ └── [id]/ # Analysis detail
components/
├── repositories-list.tsx # Repository list + add form
├── repository-selector.tsx # Multi-repo selector
├── analyses-list.tsx # Analyses list
├── analysis-detail.tsx # Analysis results + blueprints
├── app-suggestions.tsx # App idea cards
└── ui/ # Shadcn components
lib/
├── db.ts # Neon database client
├── queries.ts # Database queries
└── utils.ts # Utility functions
scripts/
└── 01-create-schema.sql # Database migration
github_id: Unique GitHub user IDgithub_username: GitHub login namegithub_avatar_url: Profile picture URLaccess_token: GitHub user access tokenstripe_customer_id: Stripe customer linked to the userstripe_subscription_id: Active or latest Stripe subscription idstripe_price_id: Stripe price id for the user’s current planplan_tier: free / prosubscription_status: Stripe subscription status
github_id: Unique GitHub repo IDname,full_name: Repo name and owner/namedescription,url: Metadatadefault_branch,language,stars: Additional info
repository_id: Foreign key to repositoriespath,name,extension: File location infofile_type: component / hook / utility / api / page / etc.purpose,ai_summary: AI-generated descriptionstechnologies,exports,imports: Detected patterns (JSONB)reusability_score: 0–100 reusability rating
name: User-defined analysis namestatus: pending / scanning / analyzing / complete / failedtotal_files,analyzed_files: Progress tracking
- Junction table linking analyses to repositories
analysis_id: Foreign key to analysesname,description,app_type: Blueprint infocomplexity: simple / moderate / complexreuse_percentage: How much existing code can be reusedexisting_files,missing_files: File lists (JSONB)estimated_effort: Human-readable time estimatetechnologies: Detected stack (JSONB)ai_explanation: AI-written rationale
- Clone the repository
git clone <repository-url>
cd repofuse-backend- Install dependencies
pnpm install- Set up environment variables
Copy
.env.exampleto.env.localand fill in your values:
cp .env.example .env.local- Set up the database Run the schema migration in your Neon console or with psql:
psql $DATABASE_URL -f scripts/01-create-schema.sql- Run the development server
pnpm dev- Access the application Open http://localhost:3000 in your browser
This repo now includes a standalone stdio MCP server at mcp/repofuse.mjs.
list_github_repositoriesanalyze_repositoriesgenerate_scaffoldcreate_repo_from_blueprint
The MCP server expects:
GITHUB_TOKENANTHROPIC_API_KEY- optional:
REPOFUSE_MODEL,REPOFUSE_MAX_FILES_PER_REPO,REPOFUSE_MAX_BLUEPRINTS
pnpm mcp:repofusepnpm mcp:testUse the live variant when you want to verify startup with real credentials:
pnpm mcp:test:liveRepoFuse also exposes a stateless MCP endpoint at /api/mcp for authenticated web-app sessions.
It reuses the same RepoFuse MCP tool definitions as the stdio server.
See examples/claude-desktop.mcp.json.
See examples/cursor.mcp.json.
See .cursor/mcp.json.
See docs/MCP_SETUP.md and docs/CLIENT_SETUP_QUICK.md.
GET /api/auth/github/callback- GitHub App callback
GET /api/repositories- List tracked repositoriesPOST /api/repositories- Add repository by URLGET /api/repositories/[id]- Get repository detailsDELETE /api/repositories/[id]- Remove repository
GET /api/github/repos- Fetch repos available to the signed-in GitHub App userPOST /api/github/create-repo- Create new repo from blueprint (Pro)
GET /pricing- Pricing pageGET /api/checkout?plan=pro- Start Stripe checkout for ProGET /api/checkout/success- Finalize successful checkout and sync subscriptionGET /api/billing/portal- Open Stripe billing portal
GET /api/analyses- List analysesPOST /api/analyses- Create new analysisPOST /api/analyses/[id]/run- Run analysis (Server-Sent Events)POST /api/analyses/[id]/analyze- AI pattern analysis
POST /api/export/blueprint- Export blueprint as JSONPOST /api/export/pdf- Export blueprint as PDF
- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard (see
.env.example)- For paid upgrades, create a recurring Stripe Price for RepoFuse Pro and set
STRIPE_SECRET_KEYandSTRIPE_PRO_PRICE_ID
- For paid upgrades, create a recurring Stripe Price for RepoFuse Pro and set
- Deploy
- GitHub App permissions are fine-grained and should be configured read-only for analysis access
- Access tokens are stored in the database (encrypt at rest in production)
- Code is scanned in memory; file contents are never permanently stored
- All API routes validate authentication via session cookie
MIT License