{
  "markdown": "# AIProDaily\n\nAI-powered newsletter platform that automates RSS ingestion, AI content generation, and email delivery via MailerLite. Built with Next.js 15, Supabase, and OpenAI.\n\n## Prerequisites\n\n- **Node.js** 18+ (LTS recommended)\n- **npm** 9+\n- **Supabase** project ([create one free](https://supabase.com/dashboard))\n- **OpenAI** API key\n- **MailerLite** account and API key\n- **GitHub** personal access token (for image uploads)\n\nOptional: Google OAuth credentials, Stripe keys, Clerk keys, SparkLoop API key.\n\n## Getting Started\n\n```bash\n# 1. Clone the repo\ngit clone <repo-url>\ncd ai-pros-newsletter\n\n# 2. Install dependencies\nnpm install\n\n# 3. Set up environment variables\ncp .env.example .env.local\n# Edit .env.local with your actual keys (see .env.example for details)\n\n# 4. Run the dev server\nnpm run dev\n```\n\nThe app will be available at [http://localhost:3000](http://localhost:3000).\n\n## Scripts\n\n| Command | Purpose |\n|---------|---------|\n| `npm run dev` | Start development server |\n| `npm run build` | Production build (run before pushing) |\n| `npm run lint` | ESLint checks |\n| `npm run type-check` | TypeScript type checking |\n\n## Project Structure\n\n```\nsrc/\n  app/\n    api/          # API routes (cron/, campaigns/, rss/, webhooks/, debug/)\n    dashboard/    # Admin dashboard (per-publication)\n    tools/        # Public AI Tools Directory\n    account/      # User accounts & advertiser portal\n    website/      # Marketing site\n  lib/            # Core business logic\n    rss-processor.ts    # RSS ingestion & AI content generation\n    app-selector.ts     # AI app rotation for newsletters\n    newsletter-templates.ts  # Email template rendering\n    directory.ts        # AI Tools Directory logic\n  components/     # Shared React components\ndb/\n  migrations/     # SQL migration files\ndocs/             # Architecture & workflow documentation\n```\n\n## Database Setup\n\nThis project uses Supabase (PostgreSQL). After creating a Supabase project:\n\n1. Copy your project URL, anon key, and service role key into `.env.local`\n2. Apply migrations from `db/migrations/` via the Supabase SQL Editor\n3. See `docs/architecture/system-overview.md` for schema details\n\n## Git Workflow\n\nWe use a **branch-based workflow** with pull requests:\n\n1. Create a feature branch from `master`: `git checkout -b feature/your-feature`\n2. Make your changes and commit\n3. Push and open a PR against `master`\n4. CI checks must pass (build, lint, type-check)\n5. Get a code review before merging\n6. Merging to `master` auto-deploys to production via Vercel\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for full guidelines.\n\n## Key Documentation\n\n| Topic | File |\n|-------|------|\n| Operations guide (comprehensive) | [CLAUDE.md](CLAUDE.md) |\n| RSS workflow | [docs/workflows/rss-processing.md](docs/workflows/rss-processing.md) |\n| AI prompts & scoring | [docs/ai/prompt-system.md](docs/ai/prompt-system.md) |\n| Cron jobs | [docs/operations/cron-jobs.md](docs/operations/cron-jobs.md) |\n| System architecture | [docs/architecture/system-overview.md](docs/architecture/system-overview.md) |\n| Troubleshooting | [docs/troubleshooting/common-issues.md](docs/troubleshooting/common-issues.md) |\n\n## Architecture Overview\n\n1. **RSS Ingestion** - Cron fetches RSS feeds into a post pool\n2. **Workflow** - 10-step pipeline scores, selects, and generates AI content for articles\n3. **Issue Review** - Dashboard surfaces drafts for human review\n4. **Send** - Final newsletter pushed to MailerLite, analytics tracked\n5. **Secondary Newsletter** - Optional secondary send with different content\n\nAll data is multi-tenant, scoped by `publication_id`.\n\n## License\n\nProprietary. All rights reserved.\n",
  "bytes": 3673,
  "sha": "fbe4aecb059d489f3d8e4458555f12040da657fb5048338fb42ca83f4c55d21f",
  "repo_slug": "venture-formations/aiprodaily",
  "fonte": "repo",
  "truncated": false,
  "api": "https://api.agentalog.com/api/listings/skl_venture_formations_aiprodaily_nextjs_api_9820f9f2/readme"
}