{"id":49639471,"url":"https://github.com/anibit14/favgrab","last_synced_at":"2026-05-19T07:01:47.449Z","repository":{"id":353369138,"uuid":"1219128727","full_name":"ANIBIT14/favgrab","owner":"ANIBIT14","description":"Extract and download favicons from any website. Export as PNG, WebP, or JPG in any size.","archived":false,"fork":false,"pushed_at":"2026-04-23T16:52:43.000Z","size":89,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-05T18:45:25.387Z","etag":null,"topics":["developer-tools","favicon","favicon-downloader","favicon-extractor","open-source","productivity-tool","react","vite","web-tools","website-icons"],"latest_commit_sha":null,"homepage":"https://favgrab.boldkit.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ANIBIT14.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2026-04-23T14:59:02.000Z","updated_at":"2026-04-23T17:03:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ANIBIT14/favgrab","commit_stats":null,"previous_names":["anibit14/favgrab"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ANIBIT14/favgrab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ANIBIT14%2Ffavgrab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ANIBIT14%2Ffavgrab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ANIBIT14%2Ffavgrab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ANIBIT14%2Ffavgrab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ANIBIT14","download_url":"https://codeload.github.com/ANIBIT14/favgrab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ANIBIT14%2Ffavgrab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33205415,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T09:27:30.708Z","status":"online","status_checked_at":"2026-05-19T02:00:06.763Z","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":["developer-tools","favicon","favicon-downloader","favicon-extractor","open-source","productivity-tool","react","vite","web-tools","website-icons"],"created_at":"2026-05-05T18:45:01.393Z","updated_at":"2026-05-19T07:01:47.443Z","avatar_url":"https://github.com/ANIBIT14.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FavGrab\n\nFree browser-based toolkit for web developers. Download favicons from any domain **and** convert images between PNG, JPG, WebP, AVIF, HEIC, TIFF, BMP, and ICO — all 100% in the browser, no uploads.\n\n**Live:** [favgrab.boldkit.dev](https://favgrab.boldkit.dev)\n\n---\n\n## Tools\n\n### Favicon Downloader — [`/`](https://favgrab.boldkit.dev/)\n\n- Paste a URL or domain, grab its favicon in seconds\n- Sizes from 16 × 16 up to 256 × 256 px\n- Export as PNG, WebP, or JPG\n- In-session history of your last 6 lookups\n\n### Image Converter — [`/convert`](https://favgrab.boldkit.dev/convert)\n\n- **Input formats:** PNG, JPG, WebP, AVIF, GIF (first frame), BMP, ICO, **HEIC**, **HEIF**, **TIFF**\n- **Output formats:** PNG, JPG, WebP, AVIF, BMP, ICO\n- **Quality slider** (1–100) for lossy outputs, default 95\n- **Optional resize** with aspect ratio preserved (downscale only)\n- **Batch conversion** with streaming ZIP download\n- **Native OS Save As dialog** where supported (Chrome, Edge, Opera, Arc)\n- **Works offline** after first visit — WASM codecs lazy-loaded and cached\n- **Zero uploads** — files never leave your device\n\n## Tech Stack\n\n- [Vite](https://vitejs.dev/) + [React 18](https://react.dev/) + TypeScript\n- [Tailwind CSS v4](https://tailwindcss.com/) + [BoldKit](https://boldkit.dev) neubrutalism components\n- Tiny path-based router (no `react-router-dom`)\n- Conversion engine: native `createImageBitmap` + Canvas; lazy WASM codecs for HEIC ([`libheif-js`](https://github.com/catdad-experiments/libheif-js)), TIFF ([`utif2`](https://github.com/twardoch/utif2)), and AVIF encode ([`@jsquash/avif`](https://github.com/jamsinclair/jSquash))\n- Streaming ZIP via [`client-zip`](https://github.com/Touffy/client-zip)\n- Native OS save picker via the File System Access API (with `\u003ca download\u003e` fallback)\n- Serverless function as CORS proxy for the favicon API (Google FaviconV2 upstream)\n\n## Development\n\n```bash\nnpm install\nnpm run dev\n```\n\nVite dev server starts on `http://localhost:5173` and proxies `/api/favicon` → Google's FaviconV2 service automatically.\n\n```bash\nnpm run build   # production build to ./dist\nnpm run preview # serve the built bundle\n```\n\n## SEO\n\nThe site ships with a full modern SEO surface:\n\n- Per-route `\u003ctitle\u003e`, `\u003cmeta description\u003e`, canonical, OG, and Twitter tags\n- Structured data: `WebApplication`, `SoftwareApplication`, `Organization`, `BreadcrumbList`, `HowTo`, and `FAQPage`\n- Visual + structured breadcrumbs on subpages\n- [`sitemap.xml`](https://favgrab.boldkit.dev/sitemap.xml) with image entries\n- AI-crawler-friendly [`/llms.txt`](https://favgrab.boldkit.dev/llms.txt) and [`/llms-full.txt`](https://favgrab.boldkit.dev/llms-full.txt)\n- `robots.txt` explicitly allows GPTBot, ClaudeBot, Google-Extended, PerplexityBot, and CCBot\n\n## How the converter works\n\n1. The user drops one or more files. Each file's format is detected from its magic bytes (with extension fallback).\n2. The right decoder is selected: native `createImageBitmap` for common formats, dynamically imported WASM for HEIC/HEIF/TIFF.\n3. If resize is enabled and the source exceeds the max side, the bitmap is downscaled on a canvas with `imageSmoothingQuality = 'high'`. Aspect ratio is always preserved.\n4. The chosen encoder writes a `Blob`: Canvas `toBlob` for PNG/JPG/WebP, `@jsquash/avif` for AVIF, custom writers for BMP and ICO.\n5. Download triggers `window.showSaveFilePicker` where available (native OS Save As); otherwise falls back to `\u003ca download\u003e`.\n6. Batch downloads stream through `client-zip` directly into the file system writer, so multi-file archives don't have to fit in memory.\n\n---\n\nMade by [ANIBIT14](https://github.com/ANIBIT14) · [@vanikyaai](https://x.com/vanikyaai) · UI by [BoldKit](https://boldkit.dev)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanibit14%2Ffavgrab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanibit14%2Ffavgrab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanibit14%2Ffavgrab/lists"}