CodingIdeas.ai

PortfolioBot — Your Personal Brand Chatbot That Answers the Questions Your About Page Never Does

Indie hackers and freelancers keep losing inbound leads because visitors land on their portfolio, get confused, and leave without booking. PortfolioBot lets any creator or freelancer embed a trained AI chatbot on their site in 10 minutes — no Chatbase, no $300/month Intercom, no developer required. Visitors ask, bot answers, you close.

Difficulty

intermediate

Category

AI Agents & RAG

Market Demand

High

Revenue Score

7/10

Platform

Web App

Vibe Code Friendly

No

Hackathon Score

🏆 7/10

Validated by Real Pain

— sourced from real community discussions

Redditreal demand

Developers are building self-hosted AI portfolio chatbots on n8n and Claude because commercial alternatives like Chatbase and Intercom are too expensive or too generic for personal brand use cases.

What is it?

Personal portfolio sites have a dirty secret: most bounce rates are above 70% because visitors have questions your static page does not answer. PortfolioBot generates a custom Claude-powered chatbot trained on your portfolio content, case studies, FAQs, and rate card — all ingested by pasting URLs or uploading a PDF. The embed snippet is one script tag. Conversations auto-log to a dashboard so the owner sees exactly what prospects are asking. Why buildable now: Claude API now supports system prompts with large context windows that can hold an entire portfolio without chunking, and n8n community members have already proven the self-hosted version works. Productizing into a one-click SaaS is the obvious next step that nobody has shipped for this exact audience.

Why now?

Claude API context windows now support entire portfolio sites in a single prompt, eliminating the chunking complexity that made RAG chatbots a 4-week build in 2024.

  • One-URL ingestion — paste your portfolio URL and bot is trained in under 5 minutes.
  • One-line embed script that drops the chat widget on any site.
  • Conversation log dashboard so owners see every question visitors asked.
  • Custom persona — set bot name, tone, and fallback message for unanswerable questions.

Target Audience

Freelancers and indie hackers with portfolio sites, ~500k active in English-speaking markets, spending $50-$150/month on tools.

Example Use Case

Carlos is a freelance brand designer whose portfolio bot answers rate questions, availability checks, and case study questions 24/7, converting 3 extra inbound leads per month that previously bounced, adding $2,400 monthly revenue.

User Stories

  • As a freelance designer, I want my portfolio site to answer rate and availability questions automatically, so that I stop losing leads who bounce before emailing me.
  • As an indie hacker, I want to train my bot by pasting my site URL once, so that I do not spend hours writing manual Q&A pairs.
  • As a portfolio owner, I want to see every question visitors asked my bot, so that I can update my site copy to address common objections.

Done When

  • Ingestion: done when user pastes a URL, clicks Train, and bot correctly answers a question about their portfolio within 5 minutes.
  • Embed: done when user copies a one-line script tag and the chat widget appears on their external site without any additional setup.
  • Conversation logs: done when owner sees a chronological list of visitor questions and bot responses in their dashboard within 30 seconds of a conversation ending.
  • Billing: done when Stripe Pro upgrade removes the 100-message limit and owner sees unlimited badge in dashboard immediately.

Is it worth building?

$49/month x 40 users = $1,960 MRR at month 2. $49/month x 150 users = $7,350 MRR at month 6. Assumes 3% conversion from ProductHunt and indie hacker community traffic.

Unit Economics

CAC: $12 via IH community organic. LTV: $294 (6 months at $49/month). Payback: under 1 month. Gross margin: 74%.

Business Model

SaaS subscription

Monetization Path

Free tier: 100 messages/month. Pro at $49/month: unlimited messages, custom domain, conversation logs. Team at $99/month: 3 bots.

Revenue Timeline

First dollar: week 3. $1k MRR: month 3. $5k MRR: month 7.

Estimated Monthly Cost

Claude API: $50, Supabase: $25, Vercel: $20, Resend: $10, Stripe fees: $20. Total: ~$125/month at launch.

Profit Potential

Full-time viable at $5k-$8k MRR.

Scalability

High — add Calendly booking integration, lead capture to CRM, and agency multi-bot plans.

Success Metrics

Week 2: 20 installs. Month 1: 8 paid users. Month 3: less than 15% monthly churn.

Launch & Validation Plan

Post in r/indiehackers and Indie Hackers forum offering free setup for 10 portfolios, collect feedback before charging.

Customer Acquisition Strategy

First customer: DM 20 indie hackers on X and IH forum who recently posted their portfolio links, offer free Pro month for a testimonial. Ongoing: ProductHunt launch, r/freelance, SEO on 'AI chatbot for portfolio site' keyword.

What's the competition?

Competition Level

Medium

Similar Products

Chatbase (generic, no portfolio ingestion), Dante AI (no embeddable widget for personal sites), Intercom (10x the price, B2B SaaS focus) — none target solo portfolios with one-URL training.

Competitive Advantage

Portfolio-specific RAG ingestion in 5 minutes versus Chatbase which requires manual Q&A pairs and has no freelancer positioning.

Regulatory Risks

Low regulatory risk. GDPR: visitor conversation data must be covered in privacy policy, deletion endpoint required.

What's the roadmap?

Feature Roadmap

V1 (launch): URL ingestion, embed widget, conversation logs, Pro billing. V2 (month 2-3): PDF upload, lead capture email collection. V3 (month 4+): Calendly booking integration, multi-bot agency plans.

Milestone Plan

Phase 1 (Week 1-2): ingestion API, chat API, widget JS, basic dashboard live. Phase 2 (Week 3-4): Stripe billing, auth, 10 beta installs generating real conversations. Phase 3 (Month 2): PDF ingestion, ProductHunt launch, 30 paying users.

How do you build it?

Tech Stack

Next.js, Claude API with RAG via LangChain, Supabase pgvector, Stripe, Resend — build with Cursor for backend, v0 for chat widget, Lovable for owner dashboard.

Suggested Frameworks

LangChain JS, Supabase pgvector, Claude API

Time to Ship

2 weeks

Required Skills

LangChain RAG pipeline, pgvector similarity search, Next.js, embeddable widget via script tag.

Resources

LangChain JS docs, Supabase pgvector guide, Claude API docs, Stripe subscriptions guide.

MVP Scope

app/page.tsx (landing), app/dashboard/page.tsx (conversation logs), app/api/ingest/route.ts (URL scrape + embed), app/api/chat/route.ts (RAG query + Claude response), app/api/embed/route.ts (serve widget JS), lib/db/schema.ts (users, bots, messages, embeddings), components/ChatWidget.tsx (embeddable iframe widget), public/widget.js (script tag loader), .env.example.

Core User Journey

Sign up -> paste portfolio URL -> copy embed script -> paste on site -> see first visitor conversation in dashboard -> upgrade to Pro.

Architecture Pattern

Owner pastes URL -> scraper extracts text -> LangChain chunks + embeds -> vectors stored in pgvector -> visitor sends message -> RAG retrieves top-k chunks -> Claude API answers -> message logged in Supabase -> owner sees log in dashboard.

Data Model

User has many Bots. Bot has one KnowledgeBase with many Chunks. Bot has many Conversations. Conversation has many Messages.

Integration Points

Claude API for chat responses, LangChain for RAG pipeline, Supabase pgvector for embeddings, Stripe for billing, Resend for email, Vercel for hosting.

V1 Scope Boundaries

V1 excludes: Calendly integration, lead capture to CRM, custom CSS for widget, team accounts, mobile SDK.

Success Definition

A freelancer installs the widget, their site visitor asks a rate question, the bot answers correctly, and the owner upgrades to Pro after seeing conversation logs without any founder intervention.

Challenges

Churn risk is high if visitors rarely interact with the bot — owners must see lead value fast or they cancel after month one. Must show conversation logs within 48 hours of install to prove ROI.

Avoid These Pitfalls

Do not support multi-file PDF uploads in V1 — URL ingestion alone covers 90% of use cases and halves build time. Do not skip conversation logs dashboard — it is the only retention hook. First 10 paying customers will take 3x longer to find than building the product.

Security Requirements

Supabase Auth with Google OAuth, RLS on all user-owned tables, 100 req/min rate limit per IP, sanitize all scraped HTML before embedding, GDPR deletion endpoint for conversation data.

Infrastructure Plan

Vercel for Next.js, Supabase for Postgres and pgvector and auth, GitHub Actions for CI, Sentry for errors, Vercel Analytics for traffic.

Performance Targets

100 DAU at launch, chat API response under 3 seconds, widget JS load under 200ms, page load under 2s LCP.

Go-Live Checklist

  • Security audit complete.
  • Payment flow tested end-to-end.
  • Sentry error tracking live.
  • Monitoring dashboard configured.
  • Custom domain with SSL live.
  • Privacy policy covering visitor data published.
  • 5 beta portfolios signed off.
  • Rollback plan documented.
  • Launch post drafted for IH forum and ProductHunt.

First Run Experience

On first run: a demo bot pre-trained on a sample designer portfolio is shown in the dashboard. User can immediately chat with the demo bot and see conversation logs. No manual config required: demo embed code shown, OpenAI key is server-side.

How to build it, step by step

1. Define schema in lib/db/schema.ts with users, bots, chunks, conversations, messages tables and pgvector extension. 2. Run npx create-next-app with Tailwind and App Router. 3. Install langchain, @supabase/supabase-js, anthropic, stripe. 4. Build /api/ingest route that scrapes URL, chunks text, embeds with OpenAI embeddings, stores in pgvector. 5. Build /api/chat route that retrieves top-5 chunks and calls Claude API with context. 6. Build public/widget.js embeddable script that renders iframe chat. 7. Build dashboard page showing conversation logs per bot. 8. Add Stripe checkout for Pro tier and webhook handler. 9. Add Supabase Auth with Google OAuth and RLS on all tables. 10. Deploy to Vercel and walk full journey from URL ingestion to embedded chat to dashboard without any manual setup.

Generated

June 10, 2026

Model

claude-sonnet-4-6

Disclaimer: Ideas on this site are AI-generated and may contain inaccuracies. Revenue estimates, market demand figures, and financial projections are illustrative assumptions only — not financial advice. Do your own research before making any business or investment decisions. Technology availability, pricing, and market conditions change rapidly; always verify details independently.