{"id":26509781,"url":"https://github.com/presentkim/git-resource","last_synced_at":"2026-06-19T15:32:17.166Z","repository":{"id":277494441,"uuid":"932580567","full_name":"PresentKim/git-resource","owner":"PresentKim","description":"A single-page web app for previewing image files from a github repository URL","archived":false,"fork":false,"pushed_at":"2025-12-17T14:44:54.000Z","size":89673,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-18T23:40:06.123Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://gitresource.com/","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/PresentKim.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":"2025-02-14T06:26:22.000Z","updated_at":"2025-12-17T14:44:57.000Z","dependencies_parsed_at":"2025-02-14T08:24:32.026Z","dependency_job_id":"b718a070-17e2-440e-aacd-d471e5dbfa51","html_url":"https://github.com/PresentKim/git-resource","commit_stats":null,"previous_names":["presentkim/repo-image-viewer","presentkim/git-resource-viewer","presentkim/git-resource"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PresentKim/git-resource","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PresentKim%2Fgit-resource","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PresentKim%2Fgit-resource/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PresentKim%2Fgit-resource/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PresentKim%2Fgit-resource/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PresentKim","download_url":"https://codeload.github.com/PresentKim/git-resource/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PresentKim%2Fgit-resource/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34538203,"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-19T02:00:06.005Z","response_time":61,"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":[],"created_at":"2025-03-21T01:36:21.620Z","updated_at":"2026-06-19T15:32:17.129Z","avatar_url":"https://github.com/PresentKim.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Git Resource Viewer\n\nA single-page web app for previewing image files from a GitHub repository URL\n\n[Live Demo](https://gitresource.com)\n\n## Features\n\n- **GitHub Repository Image Retrieval**  \n  Fetch and display all image files from public or private GitHub repositories. Automatically detects the default branch.\n\n- **Image Filtering**  \n  Filter images by including or excluding specific keywords (e.g., `keyword -exclude` format).\n\n- **Image ZIP Download**  \n  Download all filtered images as a ZIP file in bulk.\n\n- **Image Viewer**  \n  Click any image to view it in full-screen. Navigate with arrow keys or mouse wheel, and download individual images.\n\n- **Minecraft Animation Support**  \n  Supports `.mcmeta` sprite sheet animations from Minecraft resource packs with canvas-based rendering.\n\n- **Custom Virtual Scrolling**  \n  Optimized rendering performance for thousands of images using a custom virtual scrolling system with IntersectionObserver.\n\n- **GitHub API Caching**  \n  Hybrid caching strategy using IndexedDB and localStorage to prevent API rate limit issues. ETag-based HTTP 304 response handling minimizes API calls.\n\n- **GitHub Personal Access Token Support**  \n  Enter your GitHub personal access token to access private repositories and increase API request limits.\n\n- **User Settings**  \n  Customize grid column count (auto/manual), pixelated rendering, and Minecraft animation settings.\n\n- **URL Sharing**  \n  Share filtered views with others through URL query parameters.\n\n- **Responsive UI**  \n  Optimized user experience across different screen sizes.\n\n## Usage\n\n1. Enter a GitHub repository URL in the input field (e.g., `https://github.com/owner/repo`).\n2. Or select one of the example repositories.\n3. The app automatically detects the default branch and fetches all image files.\n4. Use the filter input to include/exclude images by keywords.\n5. Click on any image to view it in full-screen viewer.\n6. Use arrow keys or mouse wheel to navigate between images in the viewer.\n7. Click \"Download Filtered\" to download all filtered images as a ZIP file.\n8. Adjust settings (gear icon) to customize your experience (grid columns, pixelated rendering, animations).\n\n## Technologies\n\n### Frontend\n\n- **React** (`^19.0.0`) – Modern UI library with concurrent rendering\n- **TypeScript** (`~5.7.2`) – Static type checking\n- **Vite** (`^6.1.0`) – Fast build tool with HMR\n\n### State Management \u0026 Routing\n\n- **Zustand** (`^5.0.3`) – Lightweight state management\n- **nuqs** (`^2.4.0`) – URL query parameter state management\n- **React Router** (`^7.1.5`) – Client-side routing\n\n### Styling\n\n- **Tailwind CSS** (`^4.0.6`) – Utility-first CSS framework\n- **tailwind-merge** (`^3.0.1`) – Smart class merging\n- **clsx** (`^2.1.1`) – Conditional class names\n\n### Performance Optimization\n\n- **Web Workers** – Asynchronous processing for heavy operations\n- **IndexedDB** (via `idb-keyval`) – Large-scale caching\n- **Custom Virtual Scrolling** – Efficient rendering of thousands of images\n\n### UI Components\n\n- **Radix UI** – Accessible component primitives (Shadcn-based)\n- **Lucide React** – Icon library\n\n### Utilities\n\n- **jszip** (`^3.10.1`) – ZIP file creation\n- **file-saver** (`^2.0.5`) – File download handling\n\n### Tooling \u0026 Code Quality\n\n- **ESLint** (`^9.19.0`) – Code linting\n- **Prettier** (`^3.5.1`) – Code formatting\n- **TypeScript ESLint** (`^8.22.0`) – TypeScript linting\n\n### Deployment\n\n- **Vercel** – Static site hosting with automatic deployments\n\n## Project Overview\n\nFor more details, refer to the full project overview:\n\n- [📄 PROJECT_OVERVIEW (Korean)](./PROJECT_OVERVIEW.kor.md)\n- [📄 PROJECT_OVERVIEW (English)](./PROJECT_OVERVIEW.md)\n\n## Development\n\n```bash\n# Install dependencies\nyarn install\n\n# Start development server\nyarn dev\n\n# Build for production\nyarn build\n\n# Preview production build\nyarn preview\n\n# Lint code\nyarn eslint:lint\n\n# Fix linting issues\nyarn eslint:fix\n\n# Check code formatting\nyarn format:lint\n\n# Format code\nyarn format:fix\n```\n\n## License\n\nThis project is licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpresentkim%2Fgit-resource","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpresentkim%2Fgit-resource","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpresentkim%2Fgit-resource/lists"}