{"id":21438075,"url":"https://github.com/abakermi/remote_config_gist","last_synced_at":"2026-04-17T15:02:53.570Z","repository":{"id":263375198,"uuid":"889837350","full_name":"abakermi/remote_config_gist","owner":"abakermi","description":"A lightweight and easy-to-use Flutter package for remote configuration using GitHub Gists. Perfect for small to medium-sized apps that need remote configuration without the complexity of Firebase.","archived":false,"fork":false,"pushed_at":"2024-11-18T06:02:29.000Z","size":280,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-16T23:42:56.699Z","etag":null,"topics":["firebase","flutter","gist","github","remote-config"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/remote_config_gist","language":"C++","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/abakermi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2024-11-17T11:22:46.000Z","updated_at":"2024-11-19T08:44:33.000Z","dependencies_parsed_at":"2024-11-18T06:59:38.061Z","dependency_job_id":"2ea6d519-a7f5-44c6-a690-565f7ab044de","html_url":"https://github.com/abakermi/remote_config_gist","commit_stats":null,"previous_names":["abakermi/remote_config_gist"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/abakermi/remote_config_gist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abakermi%2Fremote_config_gist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abakermi%2Fremote_config_gist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abakermi%2Fremote_config_gist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abakermi%2Fremote_config_gist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abakermi","download_url":"https://codeload.github.com/abakermi/remote_config_gist/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abakermi%2Fremote_config_gist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31933736,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T12:37:54.787Z","status":"ssl_error","status_checked_at":"2026-04-17T12:37:25.095Z","response_time":62,"last_error":"SSL_read: 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":["firebase","flutter","gist","github","remote-config"],"created_at":"2024-11-23T00:32:42.557Z","updated_at":"2026-04-17T15:02:53.520Z","avatar_url":"https://github.com/abakermi.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Remote Config Gist 🚀\n\n[![pub package](https://img.shields.io/pub/v/remote_config_gist.svg)](https://pub.dartlang.org/packages/remote_config_gist)\n[![likes](https://img.shields.io/pub/likes/remote_config_gist)](https://pub.dev/packages/remote_config_gist/score)\n[![popularity](https://img.shields.io/pub/popularity/remote_config_gist)](https://pub.dev/packages/remote_config_gist/score)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA lightweight and easy-to-use Flutter package for remote configuration using GitHub Gists. Perfect for small to medium-sized apps that need remote configuration without the complexity of Firebase.\n\n## Features ✨\n\n- 🔄 Dynamic configuration updates\n- 🔒 Type-safe configuration access\n- ⚡️ Automatic caching mechanism\n- ⏱️ Configurable fetch intervals\n- 🌐 Offline support with fallback values\n- 🎯 Zero external dependencies (except http)\n- 📱 Cross-platform support\n\n## Installation 📦\n\nAdd to your `pubspec.yaml`:\n\n```yaml\ndependencies:\n  remote_config_gist: ^1.0.0\n```\n\n## Quick Start 🚀\n\n1. Create a GitHub Gist with your config:\n\n```json\n{\n  \"welcome_message\": \"👋 Welcome to My App!\",\n  \"is_feature_enabled\": true,\n  \"theme_color\": \"#2196F3\"\n}\n```\n\n2. Initialize in your app:\n\n```dart\nfinal config = RemoteConfigGist(\n  gistId: 'your_gist_id_here',\n  filename: 'config.json',\n  defaultConfig: {\n    'welcome_message': 'Welcome!',\n    'is_feature_enabled': false,\n    'theme_color': '#000000',\n  },\n);\n\n// Fetch and activate\nawait config.fetchConfig();\nawait config.activate();\n```\n\n3. Use the config values:\n\n```dart\nString message = config.getValue\u003cString\u003e('welcome_message', 'Default');\nbool isEnabled = config.getValue\u003cbool\u003e('is_feature_enabled', false);\n```\n\n## Advanced Usage 🔥\n\n### Type-Safe Config Keys\n\n```dart\nclass AppConfig {\n  static const String welcomeMessage = 'welcome_message';\n  static const String isFeatureEnabled = 'is_feature_enabled';\n  static const String themeColor = 'theme_color';\n}\n```\n\n### Fetch with Options\n\n```dart\nfinal config = RemoteConfigGist(\n  gistId: 'your_gist_id',\n  filename: 'config.json',\n  fetchInterval: Duration(hours: 12),\n  timeout: Duration(seconds: 5),\n);\n\n// Force refresh\nawait config.fetchConfig(forceRefresh: true);\n```\n\n### Status Tracking\n\n```dart\nRemoteConfigStatus status = config.lastFetchStatus;\nDateTime? lastFetch = config.lastFetchTime;\n```\n\n### Cache Management\n\n```dart\n// Clear cache\nawait config.clearCache();\n```\n\n## Best Practices 💡\n\n1. Always provide default values\n2. Handle fetch failures gracefully\n3. Use type-safe config keys\n4. Set appropriate fetch intervals\n5. Monitor fetch status\n\n## Configuration Structure 📝\n\nExample of a well-structured config:\n\n```json\n{\n  \"app_config\": {\n    \"version\": \"1.0.0\",\n    \"maintenance_mode\": false\n  },\n  \"feature_flags\": {\n    \"show_beta_features\": false,\n    \"enable_analytics\": true\n  },\n  \"ui_config\": {\n    \"theme_color\": \"#2196F3\",\n    \"font_size\": 16\n  }\n}\n```\n\n## Error Handling ⚠️\n\n```dart\ntry {\n  await config.fetchConfig();\n  await config.activate();\n} catch (e) {\n  print('Config fetch failed: $e');\n  // Handle error - will use cached/default values\n}\n```\n\n## License 📄\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Support ❤️\n\nIf you find this package helpful, please give it a ⭐️ on [GitHub](https://github.com/abakermi/remote_config_gist)!\n\n## Alternatives 🔄\n\n- Firebase Remote Config: More features, but requires Firebase setup\n- AppConfig: Local-only configuration\n- Feature Flags services: More complex feature flag management","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabakermi%2Fremote_config_gist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabakermi%2Fremote_config_gist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabakermi%2Fremote_config_gist/lists"}