
repofuse
com.repofuse/repofuse
Discover and scaffold new apps by reusing code from your GitHub repositories.
Documentation
RepoFuse Backend
An AI-powered code intelligence platform that scans your GitHub repositories and discovers what applications you can build by combining existing files and components.
Features
- 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
Growth Strategy
- Developer SaaS Growth Brief: developer-led distribution, high-intent GitHub outreach, Product Hunt timing, first-user tests, and RepoFuse's first 14-day growth plan.
Tech Stack
- 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)
Project Structure
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
Database Schema
user_auth
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
repositories
github_id: Unique GitHub repo IDname,full_name: Repo name and owner/namedescription,url: Metadatadefault_branch,language,stars: Additional info
repo_files
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
analyses
name: User-defined analysis namestatus: pending / scanning / analyzing / complete / failedtotal_files,analyzed_files: Progress tracking
analysis_repositories
- Junction table linking analyses to repositories
app_blueprints
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
Getting Started
- 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
RepoFuse MCP Server
This repo now includes a standalone stdio MCP server at mcp/repofuse.mjs.
What it exposes
list_github_repositoriesanalyze_repositoriesgenerate_scaffoldcreate_repo_from_blueprint- hosted only:
get_blueprint_gaps
Environment variables
The MCP server expects:
GITHUB_TOKENAI_GATEWAY_API_KEYorVERCEL_OIDC_TOKEN, otherwiseANTHROPIC_API_KEY- optional:
REPOFUSE_MODEL(anthropic/claude-sonnet-4.6),REPOFUSE_MAX_FILES_PER_REPO,REPOFUSE_MAX_BLUEPRINTS
Run it locally
pnpm mcp:repofuse
Smoke-test the MCP server
pnpm mcp:test
Use the live variant when you want to verify startup with real credentials:
pnpm mcp:test:live
Streamable HTTP endpoint inside RepoFuse
RepoFuse exposes an OAuth-protected Streamable HTTP endpoint at
https://repofuse.com/api/mcp. It supports external assistants and authenticated web-app sessions,
resolves GitHub access server-side, and enforces account plan, credit, and rate limits.
Connection instructions: https://repofuse.com/mcp.
Example Claude Desktop config
See examples/claude-desktop.mcp.json.
Example Cursor config
See examples/cursor.mcp.json.
Cursor plugin config
See .cursor-plugin/plugin.json and the root mcp.json.
Full MCP setup guide
See docs/MCP_SETUP.md and docs/LISTING.md.
API Endpoints
Authentication
GET /api/auth/github/callback- GitHub App callback
Repositories
GET /api/repositories- List tracked repositoriesPOST /api/repositories- Add repository by URLGET /api/repositories/[id]- Get repository detailsDELETE /api/repositories/[id]- Remove repository
GitHub
GET /api/github/repos- Fetch repos available to the signed-in GitHub App userPOST /api/github/create-repo- Create new repo from blueprint (Pro)
Billing
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
Analyses
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
Export
POST /api/export/blueprint- Export blueprint as JSONPOST /api/export/pdf- Export blueprint as PDF
Deployment
Deploy to Vercel
- 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
Security
- 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
- Hosted MCP requests validate Clerk OAuth tokens or an existing RepoFuse session
- OAuth discovery follows RFC 9728 and GitHub tokens are never returned to MCP clients
License
MIT License
No installation packages available.