{"id":51251333,"url":"https://github.com/sparshsam/opensend","last_synced_at":"2026-06-29T07:02:03.909Z","repository":{"id":366890328,"uuid":"1278258085","full_name":"sparshsam/opensend","owner":"sparshsam","description":"Free, ad-free, open-source file sharing. A clean alternative to SHAREit/Send Anywhere/WeTransfer.","archived":false,"fork":false,"pushed_at":"2026-06-23T19:28:17.000Z","size":656,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-23T19:28:21.988Z","etag":null,"topics":["ad-free","android","file-sharing","file-transfer","nextjs","opensource","privacy","pwa","supabase","windows"],"latest_commit_sha":null,"homepage":"https://opensendbysparsh.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sparshsam.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-23T16:06:59.000Z","updated_at":"2026-06-23T19:25:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sparshsam/opensend","commit_stats":null,"previous_names":["sparshsam/opensend"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sparshsam/opensend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sparshsam%2Fopensend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sparshsam%2Fopensend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sparshsam%2Fopensend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sparshsam%2Fopensend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sparshsam","download_url":"https://codeload.github.com/sparshsam/opensend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sparshsam%2Fopensend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34916411,"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-29T02:00:05.398Z","response_time":58,"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":["ad-free","android","file-sharing","file-transfer","nextjs","opensource","privacy","pwa","supabase","windows"],"created_at":"2026-06-29T07:02:03.108Z","updated_at":"2026-06-29T07:02:03.893Z","avatar_url":"https://github.com/sparshsam.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"public/icon.svg\" alt=\"OpenSend\" width=\"80\" height=\"80\" /\u003e\n  \u003ch1 align=\"center\"\u003eOpenSend\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    \u003cstrong\u003eFree · Ad-free · Open-source file sharing\u003c/strong\u003e\n    \u003cbr /\u003e\n    A clean alternative to SHAREit, Send Anywhere, and WeTransfer.\n    \u003cbr /\u003e\n    Send files directly between devices. No account required.\n    \u003cbr /\u003e\n    Scan a QR code or enter a pairing code. Transfers work between unrelated devices.\n  \u003c/p\u003e\n\n  [![Build](https://img.shields.io/github/actions/workflow/status/sparshsam/opensend/ci.yml?branch=main\u0026style=flat-square\u0026label=build\u0026color=2563eb)](https://github.com/sparshsam/opensend/actions)\n  [![License](https://img.shields.io/github/license/sparshsam/opensend?style=flat-square\u0026color=2563eb)](LICENSE)\n  [![Version](https://img.shields.io/github/v/release/sparshsam/opensend?style=flat-square\u0026color=2563eb)](https://github.com/sparshsam/opensend/releases)\n  [![Next.js](https://img.shields.io/badge/Next.js-15-black?style=flat-square\u0026logo=next.js)](https://nextjs.org)\n  [![Supabase](https://img.shields.io/badge/Supabase-2.x-3fcf8e?style=flat-square\u0026logo=supabase)](https://supabase.com)\n  [![Vercel](https://img.shields.io/badge/Vercel-deployed-black?style=flat-square\u0026logo=vercel)](https://opensendbysparsh.vercel.app)\n  [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178c6?style=flat-square\u0026logo=typescript)](https://typescriptlang.org)\n\n  **[opensendbysparsh.vercel.app](https://opensendbysparsh.vercel.app)** · **[GitHub](https://github.com/sparshsam/opensend)**\n\u003c/div\u003e\n\n## Features\n\n- **No account required** — open and send instantly\n- **Direct device-to-device** — files never touch a cloud server\n- **QR pairing \u0026 pair codes** — scan to connect or enter a 6-character code\n- **Multi-file transfer** — send up to 20 files at once (any type, mixed formats)\n- **Two transfer methods** — Direct Transfer (WebRTC P2P) and Cloud Transfer (temporary upload)\n- **Up to 50 MB per file** — 20 files max per batch\n- **Cross-platform** — Windows, Android, iOS, macOS, Linux, Web\n- **Free \u0026 ad-free** — always\n- **Open-source** — AGPLv3\n\n## Quick Start\n\n```bash\ngit clone https://github.com/sparshsam/opensend\ncd opensend\nnpm install\ncd apps/mcp \u0026\u0026 npm install \u0026\u0026 cd ../..\ncp .env.example .env.local  # add your Supabase keys\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000).\n\n## Architecture\n\n```\nsrc/               Next.js 15 App Router\n├── app/page.tsx         Home (Send / Receive cards)\n├── app/send/            Send flow (file pick, method, QR + code, transfer)\n├── app/receive/         Receive flow (QR info, pair code entry, download)\n├── app/t/[code]/        Download by claim code\n├── app/history/        Transfer history (signed-in users)\n├── app/profile/        Profile + MCP tokens\n├── app/privacy/        Privacy policy\n├── app/terms/          Terms of service\n├── app/support/        Support + FAQ\n├── app/api/upload/     Upload endpoint\n├── app/api/download/   File download\n├── app/api/claim/      Claim code lookup\n├── app/api/transfers/  Transfer CRUD\n├── app/api/auth/token/ MCP token management\n├── components/         UI kit (playbook-compliant)\n└── lib/supabase/       Supabase clients\n\napps/mcp/            MCP server (standalone Supabase MCP server)\nsupabase/migrations/ Database schema\ndocs/                Documentation\n```\n\n## Tech Stack\n\n| Layer | Choice |\n|-------|--------|\n| Framework | Next.js 15 (App Router) |\n| Styling | Tailwind CSS 4 + Design Playbook |\n| Auth | Supabase Auth (GitHub OAuth) |\n| Database | Supabase Postgres (shared project with OpenSprout) |\n| Storage | Supabase Storage (private, 50 MB limit) |\n| MCP | @modelcontextprotocol/sdk v1 |\n| Deploy | Vercel |\n\n## Design\n\nOpenSend is designed as a **transfer terminal** — not a dashboard. Every screen has one purpose. Built with the [Design Playbook](DESIGN_PLAYBOOK.md):\n\n- Dark-mode first, true black canvas\n- Pill buttons (`rounded-full`)\n- Editorial typography (`font-black` hierarchy)\n- No cards, no dashboard widgets\n- Receipt/ticket pattern for results\n\nBrand color: `#BC3FDE` — vibrant purple.\n\n## MCP Server\n\nOpenSend includes an MCP server for AI agent integration with 4 tools:\n\n| Tool | Description |\n|------|-------------|\n| `list_my_transfers` | List transfers with status/pagination |\n| `get_transfer` | Full details by ID |\n| `delete_transfer` | Soft-delete with ownership check |\n| `export_transfer_history` | Full export (active/expired/deleted) |\n\n[Setup guide](docs/architecture.md#mcp-server)\n\n## Documentation\n\n- [Architecture](docs/architecture.md)\n- [Shared Supabase Project](docs/supabase-shared-project.md)\n- [Store Readiness](docs/store-readiness.md)\n- [Release Checklist](docs/release-checklist.md)\n- [Privacy \u0026 Abuse](docs/privacy-and-abuse.md)\n- [Contributing](CONTRIBUTING.md)\n- [Security](SECURITY.md)\n\n## Deployment\n\n```bash\nnpm run build\nnpx vercel --prod\n```\n\nEnvironment variables required in Vercel:\n- `NEXT_PUBLIC_SUPABASE_URL`\n- `NEXT_PUBLIC_SUPABASE_ANON_KEY`\n- `SUPABASE_SERVICE_ROLE_KEY`\n\n## License\n\nAGPLv3 — see [LICENSE](LICENSE)\n\nBuilt by [@sparshsam](https://github.com/sparshsam)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsparshsam%2Fopensend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsparshsam%2Fopensend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsparshsam%2Fopensend/lists"}