{"id":51075908,"url":"https://github.com/nalediym/creator-dna","last_synced_at":"2026-06-23T14:02:39.434Z","repository":{"id":356186130,"uuid":"1200902205","full_name":"nalediym/creator-dna","owner":"nalediym","description":"Upload your TikTok data export. AI reveals what content you should create.","archived":false,"fork":false,"pushed_at":"2026-05-07T01:47:07.000Z","size":438,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-07T02:29:42.378Z","etag":null,"topics":["ai","chrome","creator-tools","gemini-nano","local-first","mcp","nextjs","privacy","tiktok"],"latest_commit_sha":null,"homepage":"https://creator-dna-one.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nalediym.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-04T00:53:35.000Z","updated_at":"2026-05-07T01:01:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nalediym/creator-dna","commit_stats":null,"previous_names":["nalediym/creator-dna"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/nalediym/creator-dna","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nalediym%2Fcreator-dna","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nalediym%2Fcreator-dna/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nalediym%2Fcreator-dna/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nalediym%2Fcreator-dna/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nalediym","download_url":"https://codeload.github.com/nalediym/creator-dna/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nalediym%2Fcreator-dna/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34692781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","chrome","creator-tools","gemini-nano","local-first","mcp","nextjs","privacy","tiktok"],"created_at":"2026-06-23T14:02:38.011Z","updated_at":"2026-06-23T14:02:39.423Z","avatar_url":"https://github.com/nalediym.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Creator DNA\n\n**Upload your TikTok data export. AI tells you what content to create.**\n\nThe data is the permission slip.\n\n[![License: Apache 2.0](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](LICENSE)\n![Status: Alpha](https://img.shields.io/badge/status-alpha-yellow)\n![Stack: Next.js 16 + AI SDK v6](https://img.shields.io/badge/stack-Next.js%2016%20%2B%20AI%20SDK%20v6-black)\n\n\u003c/div\u003e\n\n---\n\n## What it does\n\nHeavy TikTok consumers know their taste. They just don't know what their taste *says about them as a creator*. Creator DNA reads your `user_data_tiktok.json` export, finds the niche intersections you've been quietly building expertise in, and gives you back a personalized strategy: confidence evidence, content ideas, a posting schedule, and your first 5 video drafts.\n\nThis is not an analytics dashboard. It's an **insight reveal** — closer to Spotify Wrapped or 23andMe results than Pentos or Exolyt.\n\n```\nTikTok JSON → Parse → Aggregate → 3 Claude calls → Editorial report\n   ~50MB        in browser    privacy boundary       cited insights\n```\n\n## Privacy by architecture\n\nCreator DNA is **local-only by design**. Nothing about your TikTok export ever leaves your laptop \u0026mdash; including the aggregated summary.\n\n- **Parsing happens in your browser** via a Web Worker (no main-thread blocking, no upload).\n- **Aggregation is the privacy boundary.** A small summary (~2KB: search-term clusters, engagement ratios, creator categories) is built in-browser. Per-video records never leave.\n- **Analysis runs on Chrome's built-in Gemini Nano** \u0026mdash; on-device, no API key, no network call. Three structured prompts via Chrome's Prompt API, with Zod schemas validating each response.\n- **Schedule computation is deterministic** \u0026mdash; no LLM call needed.\n- **No server fallback.** If on-device AI isn't available, the app says so and stops, rather than silently shipping your data anywhere.\n\nIf your laptop crashes mid-analysis, nothing was uploaded. There is nothing to leak.\n\n## Architecture\n\nMonorepo workspace:\n\n```\npackages/\n  core/        Parser + aggregator + Zod schemas + prompts (TypeScript, no Next dep)\n  cli/         Local pipeline runner for development\n  web/         Next.js 16 App Router app, deployed to Vercel\n```\n\n**Stack:** Next.js 16 · React 19 · Chrome Prompt API (Gemini Nano) · Zod · Tailwind · shadcn · Web Worker + Comlink · fflate (zip parsing).\n\n## Quickstart (developer)\n\n```bash\ngit clone https://github.com/nalediym/creator-dna \u0026\u0026 cd creator-dna\nnpm install\n\n# Dev\ncd packages/web \u0026\u0026 npm run dev\n\n# Tests (the privacy-sensitive code paths)\nnpm test                    # parser, aggregator, schedule\n\n# Build\nnpm run build\n```\n\nNo API keys. No `.env`. The app uses Chrome's built-in Gemini Nano on-device.\n\nTo use the app:\n\n1. Get your TikTok export at [TikTok's Data \u0026 Privacy settings](https://www.tiktok.com/privacy/data) \u0026rarr; *Download your data* \u0026rarr; JSON format. Wait for the email (usually a few hours).\n2. Open the running app at `http://localhost:3000` **in Chrome 127+ with [`chrome://flags/#prompt-api-for-gemini-nano`](chrome://flags/#prompt-api-for-gemini-nano) enabled.**\n3. Drop your `user_data_tiktok.json` (or the unzipped folder) onto the page.\n4. Watch the report stream in section by section as each on-device prompt completes.\n\nIf you're not on Chrome with Nano, the app will tell you. We made that choice on purpose \u0026mdash; no silent server fallback.\n\n## Code highlights\n\n| File | What's interesting |\n|---|---|\n| [`packages/core/src/parser.ts`](packages/core/src/parser.ts) | Reads TikTok's specific JSON paths (Watch History, Likes, Favorites, Searches, Shares, Following) with explicit comments listing what's intentionally excluded for privacy/low-signal (DMs, login history, shop browsing). |\n| [`packages/core/src/aggregator.ts`](packages/core/src/aggregator.ts) | The privacy boundary. Comment header literally says *\"only the summary leaves the browser\"*. Builds search-term clusters and engagement-ratio stats. |\n| [`packages/core/src/prompts.ts`](packages/core/src/prompts.ts) | Three Zod schemas validating Claude responses + three prompt builders. Sequential-then-parallel orchestration is documented inline. |\n| [`packages/core/src/schedule.ts`](packages/core/src/schedule.ts) | Deterministic schedule computation — no LLM call, just rules. |\n\n## Bring your own agent (MCP)\n\nIf you don't run Chrome with Nano, point your existing Claude Desktop / Claude Code / Cursor / Codex at Creator DNA's MCP server. Three tools, **zero LLM credentials on the server**:\n\n| Tool | Stage | What |\n|------|-------|------|\n| `analyze_export(path)` | 1 (always first) | Parse + aggregate a TikTok export from a local path. Returns the ~2KB summary, posting schedule, section coverage. No LLM. |\n| `get_analysis_prompts(summary, niches?)` | 2 + 3 | Returns the prompts your agent should run with its own LLM. Stage 2 (no `niches`): clustering prompt. Stage 3 (with `niches`): qualification + content-ideas prompts to run in parallel. |\n| `validate_analysis(schema, response)` | After every LLM call | Zod-validates the structured response so the agent self-checks before continuing. |\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creator-dna\": {\n      \"command\": \"bun\",\n      \"args\": [\"/absolute/path/to/creator-dna/packages/mcp/src/bin.ts\"]\n    }\n  }\n}\n```\n\nFull docs: [`packages/mcp/README.md`](packages/mcp/README.md).\n\n## Status\n\n`v0.1-alpha`. Local-only architecture \u0026mdash; no LLM keys required at any layer. The web app runs analysis in Chrome with on-device Gemini Nano; the MCP server lets any other agent run the same pipeline using its own subscription. The CLI runner works locally for development.\n\n## Why this exists\n\nThree blockers stop most aspiring creators:\n\n1. **Niche uncertainty** — \"what's *my* angle?\"\n2. **Imposter syndrome** — \"do I even know enough to talk about this?\"\n3. **No strategy** — \"what do I actually post?\"\n\nThe bet: your consumption data already answers all three. You've been building expertise for years. You just haven't seen it back.\n\n## License\n\nApache-2.0. See [LICENSE](LICENSE).\n\n## Author\n\nBuilt by [@nalediym](https://github.com/nalediym) ([@naledicodes](https://x.com/naledicodes) on X).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnalediym%2Fcreator-dna","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnalediym%2Fcreator-dna","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnalediym%2Fcreator-dna/lists"}