{"id":25229214,"url":"https://github.com/vrypan/farma","last_synced_at":"2026-03-14T14:01:55.606Z","repository":{"id":276680190,"uuid":"929953682","full_name":"vrypan/farma","owner":"vrypan","description":"Farcaster Relationships Management","archived":false,"fork":false,"pushed_at":"2025-04-05T11:41:56.000Z","size":1624,"stargazers_count":12,"open_issues_count":6,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T12:27:49.888Z","etag":null,"topics":["farcaster","farcaster-frames"],"latest_commit_sha":null,"homepage":"https://farma.vrypan.net","language":"Go","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/vrypan.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}},"created_at":"2025-02-09T19:22:08.000Z","updated_at":"2025-03-29T12:52:10.000Z","dependencies_parsed_at":"2025-02-09T20:28:26.459Z","dependency_job_id":"e7e631bc-83a2-4445-9aba-318c24863038","html_url":"https://github.com/vrypan/farma","commit_stats":null,"previous_names":["vrypan/farma"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrypan%2Ffarma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrypan%2Ffarma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrypan%2Ffarma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrypan%2Ffarma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vrypan","download_url":"https://codeload.github.com/vrypan/farma/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247345844,"owners_count":20924102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["farcaster","farcaster-frames"],"created_at":"2025-02-11T10:47:35.339Z","updated_at":"2026-03-14T14:01:50.564Z","avatar_url":"https://github.com/vrypan.png","language":"Go","readme":"# [Add this frame](https://warpcast.com/~/frames/launch?domain=farma.vrypan.net) to receive notifications about farma updates and versions.\n\n![farma-git-social](farma-git-social.png)\n\n# farma\n\n**farma** (**FA**rcaster **R**elationships **MA**nagement) is built to make Farcaster Frames v2\nnotifications easy, and help you get insights on how users interact with your\nframes notifications.\n\n- When did a user first add your frame?\n- How many notifications have you sent them since?\n- When did they enable/disable notifications\n- Which Farcaster clients are they using to interact with your frame?\n\n# Features\n- Small footprint, fast, no external dependencies (but you will need access to a read hub).\n- Supports multiple frames.\n- Supports multiple Farcaster apps.\n- Keeps track of subscription activity per user (frame added/removed, notifications enabled/disabled, notifications sent).\n- Updates user subscription status based on notification replies from the app (success, rate limited, invalid tokens).\n- Allows batch sending notifications to all users subscribed to a frame.\n\n# Quick Start\n\n(This will improve a lot, but in case someone wants to give it an early try.)\n\n## 1. Download binary\nDownload the binary corresponding to your system from `https://github.com/vrypan/farma/releases`.\nIf you're using macOS, use `brew install vrypan/farma/farma`\n\n## 2. Setup\nRun `farma setup`.\n\nMake sure you save the private key. The key is used to sign API requests,\nand you will need it even if you are using the CLI commands (they actually use the API\nunder the hood)\n\n## 3. Start the server\nStart the farma server: `farma server`\n\n## 4. Configure a frame\nAssuming you already have your frame, you need to configure it in farma.\nYou will need a short name for your frame, and the frame domain.\n\nIf you want to call your frame `myframe`, and its domain is `farma.vrypan.net`, you have to run:\n`farma frame-add myframe farma.vrypan.net`\n\n## 5. Update .well-knowν/farcaster.json\nThe previous command returned a relative endpoint, something like `/f/a2b01541-778d-4a2b-9375-8232c70a6ddf`.\n\nHint: You can use `farma frames-list` to get all frames and endpoints configured:\n\nAdd the endpoint (including your server name) in the frame's `.well-known/farcaster.json` callbackUrl.\n\nFor example,\n\n```\n\"webhookUrl\": \"https://my-frame-notifications.com/f/a2b01541-778d-4a2b-9375-8232c70a6ddf\"\n```\n\n**Make sure you re-validate the frame in Warpcast dev tools.**\n\n## 6. Send notifications!\nYou can send a notification to all users subscribed to a frame:\n\n```\nfarma notification-send \"myframe\" \"Hello\" \"Hello, there!\" \"\"\n```\n\n# Run as a service\nIf you want to configure farma as a systemd service, see [Documentation/systemd.md](Documentation/systemd.md).\n\n# API\nfarma provides a REST API to let you use it from your own applications.\n\nSee: [Documentation/API.md](Documentation/API.md)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvrypan%2Ffarma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvrypan%2Ffarma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvrypan%2Ffarma/lists"}