{"id":48362279,"url":"https://github.com/livepeer/naap","last_synced_at":"2026-04-05T13:02:10.805Z","repository":{"id":337345744,"uuid":"1153197094","full_name":"livepeer/naap","owner":"livepeer","description":"Plugin platform for the Livepeer AI Compute Network","archived":false,"fork":false,"pushed_at":"2026-04-02T05:21:42.000Z","size":7625,"stargazers_count":4,"open_issues_count":12,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-02T09:19:46.714Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://naap-platform.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/livepeer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":"GOVERNANCE.md","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-02-09T02:44:28.000Z","updated_at":"2026-04-02T04:38:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/livepeer/naap","commit_stats":null,"previous_names":["livepeer/naap"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/livepeer/naap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livepeer%2Fnaap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livepeer%2Fnaap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livepeer%2Fnaap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livepeer%2Fnaap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/livepeer","download_url":"https://codeload.github.com/livepeer/naap/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livepeer%2Fnaap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31436301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T08:13:15.228Z","status":"ssl_error","status_checked_at":"2026-04-05T08:13:11.839Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-04-05T13:02:07.761Z","updated_at":"2026-04-05T13:02:10.793Z","avatar_url":"https://github.com/livepeer.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NaaP Platform\n\nA plugin-based platform for the Livepeer AI Compute Network.\n\n[![CI](https://img.shields.io/github/actions/workflow/status/livepeer/NaaP/ci.yml?branch=main\u0026label=CI)](https://github.com/livepeer/NaaP/actions)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)\n\nNaaP (Node as a Platform) is an open-source, plugin-based platform for\nmanaging and interacting with the Livepeer AI Compute Network. Built with\nNext.js 15, React 19, TypeScript, and a micro-frontend plugin architecture,\nit enables independent teams to develop, deploy, and operate plugins without\ncentral coordination. A Next.js shell hosts plugins as UMD bundles loaded at\nruntime, backed by per-plugin microservices and a shared PostgreSQL database\nwith schema-level isolation.\n\n## Quick Start\n\n```bash\n# Clone and run (~30s)\ngit clone https://github.com/livepeer/NaaP.git\ncd NaaP\n./bin/start.sh\n```\n\nThis installs dependencies, starts a PostgreSQL database via Docker, runs\nmigrations, builds all plugin UMD bundles, and starts the platform.\n\nOpen **http://localhost:3000** when setup completes.\n\n## Daily Development (after first setup)\n\n```bash\n./bin/start.sh                      # Smart start: auto-detects your changed plugins (~6s)\n./bin/start.sh community            # Shell + one plugin backend (~6s)\n./bin/start.sh gw community         # Shell + specific plugins (~6s)\n./bin/start.sh --all                # Everything, all 12 plugins (~10s warm, ~25s cold)\n./bin/stop.sh                       # Graceful stop (~2s)\n```\n\nSmart start is the default. It skips redundant DB syncs and verification,\nand auto-detects which plugins you have changed since the last build --\nstarting only those plus the marketplace.\n\n## Project Structure\n\n```\nNaaP/\n├── apps/web-next/            # Next.js shell (auth, layout, plugin host)\n├── services/\n│   ├── base-svc/             # Core API (auth, teams, plugin registry)\n│   └── plugin-server/        # Plugin asset server + CDN proxy\n├── packages/\n│   ├── database/             # Unified Prisma schema (single DB, multi-schema)\n│   ├── plugin-sdk/           # SDK for plugin developers\n│   ├── plugin-build/         # Shared Vite build config (createPluginConfig)\n│   ├── plugin-utils/         # Shared auth/API utilities\n│   ├── types/                # Shared TypeScript types\n│   ├── ui/                   # Shared UI components\n│   ├── cache/                # Redis caching + rate limiting\n│   └── theme/                # Design tokens, Tailwind config\n├── plugins/                  # 12 plugins (frontend + optional backend)\n├── docker/                   # Docker configs, init-schemas.sql\n├── bin/                      # Platform management scripts\n└── docs/                     # Documentation\n```\n\n## For Plugin Developers\n\nNew plugin teams can be fully autonomous within a few minutes. Read the\n[Plugin Team Guide](docs/PLUGIN_TEAM_GUIDE.md) for the complete self-service\nonboarding process.\n\n```bash\n# Scaffold a new plugin\nnpx naap-plugin create my-plugin\n\n# Start shell + your plugin (~6s)\n./bin/start.sh my-plugin\n\n# Or develop with hot reload\n./bin/start.sh dev my-plugin\n```\n\n## Commands\n\n**Everyday commands:**\n\n| Command | Description | Time |\n|---|---|---|\n| `./bin/start.sh` | Smart start (auto-detects changed plugins) | ~6s |\n| `./bin/start.sh \u003cplugin\u003e` | Shell + one plugin backend | ~6s |\n| `./bin/stop.sh` | Graceful parallel stop | ~2s |\n| `./bin/start.sh status` | Show status dashboard | instant |\n\n**Full reference:**\n\n| Command | Description |\n|---|---|\n| `./bin/start.sh` | First-time setup + start (setup is automatic) |\n| `./bin/start.sh --all` | Start all services and plugins |\n| `./bin/start.sh --no-plugins` | Shell + core only (no backends) |\n| `./bin/start.sh dev \u003cplugin\u003e` | Dev mode with HMR for a single plugin |\n| `./bin/start.sh validate` | Health-check all services |\n| `./bin/start.sh logs \u003csvc\u003e` | Tail logs for a service |\n| `./bin/start.sh help` | Show all options |\n\n## Technology Stack\n\n| Layer | Technologies |\n|---|---|\n| Frontend | React 19, Next.js 15, Vite 6, TypeScript, Tailwind CSS |\n| Backend | Node.js 20, Express, Prisma ORM, PostgreSQL |\n| Monorepo | Nx workspace + npm workspaces |\n| Plugin Loading | UMD bundles served via CDN (`/cdn/plugins/\u003cname\u003e/\u003cversion\u003e/\u003cname\u003e.js`) |\n\n## Architecture\n\nThe NaaP shell is a Next.js 15 application that dynamically loads plugins as\nUMD bundles at runtime. Each plugin is an independent micro-frontend with its\nown React component tree, optional Express backend, and isolated database\nschema. The shell provides authentication, layout, routing, and a plugin SDK\nwith React hooks for inter-plugin communication.\n\nKey design decisions:\n\n- **Runtime plugin loading** -- plugins are built independently and served as\n  UMD bundles via a CDN, allowing deploy-time composition without rebuilding\n  the shell.\n- **Multi-tenant RBAC** -- users and teams are scoped with role-based access\n  control at the platform level.\n- **Hybrid deployment** -- the shell and services run on Vercel + managed\n  infrastructure, while plugin backends can run as standalone containers.\n\nSee [docs/architecture.md](docs/architecture.md) for the full architecture\nreference.\n\n## Contributing\n\nWe welcome contributions from everyone. Whether you are fixing a typo,\nbuilding a new plugin, or improving core infrastructure, there is a place\nfor you.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide.\n\n## Governance\n\nNaaP uses a lightweight governance model built on lazy consensus, plugin team\nautonomy, and async-first coordination. Plugin teams have full authority over\ntheir own directories. Core maintainers focus on shared infrastructure and\ncross-cutting concerns.\n\nSee [GOVERNANCE.md](GOVERNANCE.md) for details.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivepeer%2Fnaap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flivepeer%2Fnaap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivepeer%2Fnaap/lists"}