Project Info
Inspiration
Early-stage tech founders and builders know their product deeply, but most do not have the time, budget, or knowledge to advertise. As sudents and builders, we faced this issue ourselves; we coded many personal projects but didn't know where to find users. In this era, social media is one of the best methods for promotion. Klip AI started from one question: can a founder turn a website/application URL into social media reels in minutes?
What it does
Klip AI converts a startup’s public website URL into multiple short-form reels in under 10 minutes. Flow: Founder pastes a URL. Our agent scrapes all pages in the website and extracts product messaging and key visuals. Our agent does deep research to understand the context behind the product - market research, competitor analysis, and other information about the website on the internet. It also researches patterns in trending reels on social media so it can emulate those styles. The agent generates one reel based on this research context. The user has a session with an AI Marketing Director avatar which will ask questions about the user's style preferences for the reels. The agent creates a plan for 3-5 more reels and generates them with this additional information. Founder exports MP4 files and posts. Speed-to-first-reel: No editing timeline, no design tools, no blank page.
How we built it
Scraping + capture: Browserbase StageHand for page discovery, screenshots, and text extraction. Trend analysis: Engagement-weighted template scoring from current short-form format signals. AI layer: Perplexity Sonar-based deep-researched content and LLM-generated hook/copy options mapped to product features and audience intent. Video pipeline: HeyGen Video Generation API, Remotion + Google Veo for programmatic composition, transitions, and rendering. Backend: FastAPI orchestration, Node Frontend: React
Challenges we ran into
It was difficult for HeyGen's realtime Avatar API to converse when there was background noise, because of its auto VAD. So, we decided to optimize the auto VAD by implementing Kalman filters in the frontend to remove background noise before passing it into the avatar stream. It was difficult to make the videos include accurate images of the website because LLMs/image models often hallucinate. So we used BrowserBase's Stagehand to dynamically take the best screenshots and images in the website when scraping it, then passed them into HeyGen. Video generation is expensive. We parallelized jobs and generated reels before-and-after the session with the Marketing Director so users can see reels quickly. Accomplishments we’re proud of End-to-end pipeline from URL to downloadable reels. Sub 6-minute generation for multiple reels. We created reels for the founders and hackathon participants and posted them on Instagram: https://www.instagram.com/klip.techfounders?igsh=MzRlODBiNWFlZA==. Being able to have a realtime/low-latency speech conversation with the AI avatar, which asks high-quality questions. The content and visuals in the reels are accurate - no hallucinations.
What we learned
We learned that generating many reels is better than generating a single reel because users prefer multiple variations that they can post and A/B test quickly. We gained technical skills in creating agents that do multi-turn conversations, web automation, video editing, research, and putting that all together in a pipeline that includes both sequential and parallel steps.
What's next
Multi-platform exports (Shorts, Reels, TikTok formats). Deeper personalization from prior performance history. Allowing editing
React + TypeScript + Vite
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel (or oxc when used in rolldown-vite) for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
React Compiler
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
Expanding the ESLint configuration
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
// Other configs...
// Remove tseslint.configs.recommended and replace with this
tseslint.configs.recommendedTypeChecked,
// Alternatively, use this for stricter rules
tseslint.configs.strictTypeChecked,
// Optionally, add this for stylistic rules
tseslint.configs.stylisticTypeChecked,
// Other configs...
],
languageOptions: {
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
// other options...
},
},
])
You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:
// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'
export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
// Other configs...
// Enable lint rules for React
reactX.configs['recommended-typescript'],
// Enable lint rules for React DOM
reactDom.configs.recommended,
],
languageOptions: {
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
// other options...
},
},
])
Analysis
View
Metric
- 13
- 9
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- AnthropicIn code
- CSSIn code
- ExpressIn code
- FastAPIIn code
- FirebaseIn code
- HTMLIn code
- JavaScriptIn code
- OpenAIIn code
- PythonIn code
- ReactIn code
- TypeScriptIn code
- Node.jsClaimed
11 of 12 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
346 KB
Source files
74
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
immedha/treehacks2026_heygen
103 files · 41.8 MB · @ c2010ad
Structure
Interface
17 files · 17%Screens, components and styles rendered to the user.
API & routing
1 file · 1%Request entry points: routes, handlers and controllers.
Application logic
52 files · 50%Domain rules, services and shared utilities.
+2 moreData & schema
2 files · 2%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript54%
- Python34%
- Markdown12%
- HTML0%
- JavaScript0%
- CSS0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 36- @browserbasehq/stagehand
- @heygen/liveavatar-web-sdk
- @heygen/streaming-avatar
- @reduxjs/toolkit
- @tailwindcss/vite
- cors
- dotenv
- express
- firebase
- framer-motion
- livekit-client
- lucide-react
- react
- react-dom
- react-markdown
- react-redux
- react-router-dom
- redux-saga
- +18 more
video_generation_server/requirements.txt
pypi · 12- aiofiles
- anthropic
- certifi
- fastapi
- firebase-admin
- google-genai
- httpx
- openai
- pydantic
- python-dotenv
- uvicorn[standard]
- websockets
video_generation_server/remotion/package.json
npm · 11- @remotion/bundler
- @remotion/cli
- @remotion/media
- @remotion/media-utils
- @remotion/renderer
- @remotion/transitions
- react
- react-dom
- remotion
- +2 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.