{"adoption": {"forks": 296, "observed_at": "2026-08-28T04:06:51.176582+00:00", "stars": 2433}, "canonical_url": "https://ross.abutalabs.com/products/refile", "card": {"archived": false, "artifact_type": "library", "description": "Ruby file uploads, take 3", "domain": ["web-development", "backend", "files"], "enriched": true, "function": ["file-upload", "image-processing", "http-server"], "health_score": 20, "homepage": null, "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["refile/refile"], "name": "refile/refile", "platform": ["ruby"], "pushed_at": "2024-07-01T17:43:36+00:00", "repo": "refile/refile", "stars": 2433, "tags": ["file-uploads", "rack", "rails", "s3", "direct-upload", "activerecord", "web-server"], "topics": [], "urls": [], "use_cases": ["handle file uploads in a Rails app", "upload images to S3 from Ruby", "resize images on the fly after upload", "support direct uploads from the browser to S3", "attach files to ActiveRecord models", "handle multiple file uploads in forms"], "what_it_is": "Refile is a Ruby file upload library for web applications, offering configurable backends (file system, S3), ORM integration, on-the-fly image processing, and streaming uploads. It includes a Rack app for serving files and a JavaScript library for direct uploads.", "when_to_avoid": ["you need a very actively developed solution with frequent updates", "you are not using Ruby or Rack-based web frameworks", "you need advanced features of newer upload libraries like Active Storage"], "when_to_choose": ["you need simple, streaming file uploads in a Ruby/Rails app", "you want pluggable backends like S3 or local file system", "you need on-the-fly image processing with MiniMagick"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/refile", "repo": "refile/refile", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.176582+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:31:10.018683+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b8e72720863f55b56f9e735d09db9446423d8b92d2ba01dbc3a6f1d79599b1b", "fetched_at": "2026-08-28T04:06:51.176582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/refile/refile"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.176582+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:31:10.018683+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b8e72720863f55b56f9e735d09db9446423d8b92d2ba01dbc3a6f1d79599b1b", "fetched_at": "2026-08-28T04:06:51.176582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/refile/refile"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:31:10.018683+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b8e72720863f55b56f9e735d09db9446423d8b92d2ba01dbc3a6f1d79599b1b", "fetched_at": "2026-08-28T04:06:51.176582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/refile/refile"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.176582+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.176582+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.176582+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:31:10.018683+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b8e72720863f55b56f9e735d09db9446423d8b92d2ba01dbc3a6f1d79599b1b", "fetched_at": "2026-08-28T04:06:51.176582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/refile/refile"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.176582+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.176582+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:31:10.018683+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b8e72720863f55b56f9e735d09db9446423d8b92d2ba01dbc3a6f1d79599b1b", "fetched_at": "2026-08-28T04:06:51.176582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/refile/refile"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.176582+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.176582+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.176582+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:31:10.018683+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b8e72720863f55b56f9e735d09db9446423d8b92d2ba01dbc3a6f1d79599b1b", "fetched_at": "2026-08-28T04:06:51.176582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/refile/refile"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.176582+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:51.176582+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:31:10.018683+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b8e72720863f55b56f9e735d09db9446423d8b92d2ba01dbc3a6f1d79599b1b", "fetched_at": "2026-08-28T04:06:51.176582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/refile/refile"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:31:10.018683+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b8e72720863f55b56f9e735d09db9446423d8b92d2ba01dbc3a6f1d79599b1b", "fetched_at": "2026-08-28T04:06:51.176582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/refile/refile"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:31:10.018683+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b8e72720863f55b56f9e735d09db9446423d8b92d2ba01dbc3a6f1d79599b1b", "fetched_at": "2026-08-28T04:06:51.176582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/refile/refile"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:31:10.018683+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b8e72720863f55b56f9e735d09db9446423d8b92d2ba01dbc3a6f1d79599b1b", "fetched_at": "2026-08-28T04:06:51.176582+00:00", "kind": "readme", "missing": false, "url": "https://github.com/refile/refile"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4305, "days_push": 793, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}