{"id":46370915,"url":"https://github.com/blocklet/media-kit","last_synced_at":"2026-03-05T03:37:38.079Z","repository":{"id":40460914,"uuid":"480328954","full_name":"blocklet/media-kit","owner":"blocklet","description":"Media Kit: 📸 A simple yet powerful Blocklet for media asset uploading and hosting. Features drag-and-drop, image tagging, and easy CDN integration. Perfect for managing digital assets! ✨","archived":false,"fork":false,"pushed_at":"2025-12-18T07:35:30.000Z","size":15062,"stargazers_count":4,"open_issues_count":47,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-12-18T08:38:47.509Z","etag":null,"topics":["asset-hosting","blocklet","digital-assets","image-uploading","media-management","self-hosting"],"latest_commit_sha":null,"homepage":"https://store.blocklet.dev/blocklets/z8ia1mAXo8ZE7ytGF36L5uBf9kD2kenhqFGp9","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blocklet.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":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":"2022-04-11T10:20:09.000Z","updated_at":"2025-12-17T12:09:57.000Z","dependencies_parsed_at":"2024-02-07T02:26:24.344Z","dependency_job_id":"4876967a-675b-42ac-81af-c42446969c67","html_url":"https://github.com/blocklet/media-kit","commit_stats":null,"previous_names":["blocklet/image-bin"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/blocklet/media-kit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blocklet%2Fmedia-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blocklet%2Fmedia-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blocklet%2Fmedia-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blocklet%2Fmedia-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blocklet","download_url":"https://codeload.github.com/blocklet/media-kit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blocklet%2Fmedia-kit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30108823,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T03:32:43.378Z","status":"ssl_error","status_checked_at":"2026-03-05T03:32:22.667Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["asset-hosting","blocklet","digital-assets","image-uploading","media-management","self-hosting"],"created_at":"2026-03-05T03:37:37.428Z","updated_at":"2026-03-05T03:37:38.068Z","avatar_url":"https://github.com/blocklet.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Media Kit - Self-Hosted Media Management Platform\n\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)\n[![Version](https://img.shields.io/badge/version-0.13.31-green.svg)](https://github.com/blocklet/image-bin)\n[![Blocklet Store](https://img.shields.io/badge/Blocklet%20Store-Launch-orange.svg)](https://store.blocklet.dev/blocklets/z8ia1mAXo8ZE7ytGF36L5uBf9kD2kenhqFGp9)\n\n**The complete media management solution that saves you $100s monthly while giving you total control over your files.**\n\nStop paying recurring fees to Big Tech. Media Kit transforms how you store, organize, and deliver media - all on your own infrastructure with enterprise-grade features that rival industry leaders.\n\n## 🌟 Quick Links\n\n- **🚀 [Launch on Blocklet Store](https://store.blocklet.dev/blocklets/z8ia1mAXo8ZE7ytGF36L5uBf9kD2kenhqFGp9)** - Deploy in 60 seconds\n- **📚 [Official Documentation](https://www.arcblock.io/docs/media-kit)** - Complete guides and API reference\n- **💬 [Community Support](https://community.arcblock.io)** - Get help and share ideas\n- **🐛 [Report Issues](https://github.com/blocklet/image-bin/issues)** - Bug reports and feature requests\n\n## 📦 What's Inside\n\nThis is a monorepo containing the Media Kit blocklet and its shared packages:\n\n```\nimage-bin/\n├── blocklets/\n│   └── image-bin/          # Main Media Kit application\n│       ├── src/            # React frontend (Vite + React 19 + MUI v7)\n│       ├── api/            # Express.js backend with SQLite/Sequelize\n│       └── blocklet.yml    # Blocklet configuration\n├── packages/\n│   ├── uploader/           # @blocklet/uploader - React upload components\n│   ├── uploader-server/    # @blocklet/uploader-server - Express middleware\n│   └── xss/                # @blocklet/xss - XSS protection utilities\n└── websites/               # Documentation and marketing sites\n```\n\n## ✨ Key Features\n\n### 🤖 AI-Powered Media Creation\n\n- **Built-in AI Image Generation**: Create images from text prompts using DALL-E and other AI models\n- **Multi-Model Support**: Configure and switch between different AI providers\n- **Seamless Integration**: AI-generated images automatically saved to your library\n- **Powered by AIGNE Framework**: Advanced AI capabilities without external API management\n\n### 📁 Intelligent Organization\n\n- **Smart Folders \u0026 Tags**: Find any file in seconds with powerful search\n- **Multiple Import Options**: Drag \u0026 drop, paste, Unsplash stock library, or AI generation\n- **Universal Format Support**: Images, videos, PDFs, documents - handle everything\n- **Auto-Deduplication**: Never store the same file twice\n\n### 🌍 Professional Delivery\n\n- **Smart Optimization**: Perfect quality, minimal file sizes automatically\n- **CDN Ready**: Optional global content delivery network support\n- **Flexible Sharing**: Public URLs, private access, or team collaboration\n- **Mobile Perfect**: Flawless experience across all devices\n\n### 🛡️ Enterprise Security\n\n- **Privacy First**: Automatic EXIF metadata removal protects your privacy\n- **Team Access Control**: Precise permissions for every user role\n- **XSS Protection**: Recursive sanitization for uploaded content\n- **Hotlink Protection**: Prevent unauthorized resource access\n\n### 🔧 Developer Friendly\n\n- **Full REST API**: Integrate with any website or application\n- **Bulk Operations**: Manage thousands of files efficiently\n- **Component Mode**: Embed Media Kit into other Blocklets\n- **SDK Support**: Easy integration with @blocklet/sdk\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n1. **Install Blocklet CLI**\n\n   ```bash\n   npm install -g @blocklet/cli\n   ```\n\n2. **Initialize Blocklet Server**\n   ```bash\n   blocklet server init --mode=debug\n   blocklet server start\n   ```\n\n### Installation\n\n**Option 1: Launch from Blocklet Store (Recommended)**\n\nVisit [Media Kit on Blocklet Store](https://store.blocklet.dev/blocklets/z8ia1mAXo8ZE7ytGF36L5uBf9kD2kenhqFGp9) and click \"Launch\" - that's it!\n\n**Option 2: Deploy from Source**\n\n```bash\n# Clone the repository\ngit clone https://github.com/blocklet/image-bin.git\ncd image-bin\n\n# Initialize project\nmake init\n\n# Navigate to main blocklet\ncd blocklets/image-bin\n\n# Start development server\nnpm run dev\n\n# Or build and deploy to production\nnpm run bundle\nnpm run deploy\n```\n\n## 🛠️ Technology Stack\n\n### Frontend\n\n- **React 19** with React Router DOM\n- **Vite** for blazing-fast builds\n- **Material-UI v7** for beautiful components\n- **Emotion** for CSS-in-JS styling\n- **@arcblock/ux** for Blocklet-specific UI components\n- **Uppy** for advanced file upload handling\n\n### Backend\n\n- **Express.js** with async error handling\n- **SQLite** with Sequelize ORM\n- **Multer** for multipart file uploads\n- **@blocklet/sdk** for platform integration\n- **AIGNE Hub** for AI capabilities\n\n### Development Tools\n\n- **pnpm** for efficient package management\n- **ESLint** with @arcblock/eslint-config\n- **Prettier** for code formatting\n- **Husky** for git hooks\n\n## 📊 Package Structure\n\n### Published Packages\n\n- **[@blocklet/uploader](packages/uploader)** - React components for file uploads with Uppy integration\n- **[@blocklet/uploader-server](packages/uploader-server)** - Express middleware for handling uploads\n- **[@blocklet/xss](packages/xss)** - XSS protection utilities for sanitizing user content\n\n### Main Application\n\n- **[Media Kit Blocklet](blocklets/image-bin)** - Complete self-hosted media management solution\n\n## 🔐 Security Features\n\n- **XSS Protection**: Recursive SVG sanitization and content validation\n- **CSRF Protection**: Built-in token validation via @blocklet/sdk\n- **Authentication**: Blocklet-based user authentication with role-based access\n- **Privacy**: Automatic EXIF metadata removal from uploaded images\n- **Hotlink Protection**: Optional referer checking to prevent unauthorized access\n- **Path Validation**: Strict file path validation to prevent directory traversal\n\n## 🎯 Use Cases\n\n| Role                | Replaces                    | Monthly Savings |\n| ------------------- | --------------------------- | --------------- |\n| 📸 Content Creators | Dropbox, Google Drive       | $15-50          |\n| 🏢 Small Businesses | Cloudinary, AWS S3          | $50-200         |\n| 👩‍💻 Web Developers   | ImageKit, Uploadcare        | $30-100         |\n| 📈 Marketing Teams  | Adobe Creative Cloud Assets | $100-500        |\n| 🚀 Growing Startups | Multiple SaaS tools         | $200-1000       |\n\n## 📖 Documentation\n\n- **[Getting Started Guide](https://www.arcblock.io/docs/media-kit)** - Step-by-step setup\n- **[API Reference](https://www.arcblock.io/docs/media-kit/api)** - Complete API documentation\n- **[Integration Guide](https://www.arcblock.io/docs/media-kit/integration)** - Embed Media Kit in your apps\n- **[Configuration](https://www.arcblock.io/docs/media-kit/configuration)** - Environment variables and settings\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for:\n\n- Development setup and workflow\n- Code style guidelines\n- Testing requirements\n- Pull request process\n- Version management\n\n## 🙋 Support\n\n- **💬 [Community Forum](https://community.arcblock.io)** - Ask questions and get help\n- **🐛 [Bug Reports](https://github.com/blocklet/image-bin/issues)** - Report issues or request features\n- **📚 [Documentation](https://www.arcblock.io/docs/media-kit)** - Comprehensive guides\n\n## 🌟 Why Choose Media Kit?\n\n### 💰 Massive Cost Savings\n\nReplace expensive subscriptions ($50-500/month) with a one-time setup. No usage limits, no surprise bills.\n\n### 🔒 Complete Data Ownership\n\nYour media stays on YOUR servers. No vendor lock-in, no privacy concerns, no platform risks.\n\n### ⚡ Enterprise Performance\n\nOptional CDN support delivers your content faster than major cloud providers - without the enterprise price tag.\n\n### 🚀 Join 10,000+ Users\n\nJoin thousands of creators, developers, and businesses who've already made the switch to true digital independence.\n\n**[🚀 Launch Media Kit Now - Free Setup](https://store.blocklet.dev/blocklets/z8ia1mAXo8ZE7ytGF36L5uBf9kD2kenhqFGp9)**\n\n---\n\n_Built with ❤️ by [ArcBlock](https://www.arcblock.io) | Powered by [Blocklet Platform](https://www.blocklet.io)_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblocklet%2Fmedia-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblocklet%2Fmedia-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblocklet%2Fmedia-kit/lists"}