{"id":28126064,"url":"https://github.com/replyke/monorepo","last_synced_at":"2025-05-14T10:23:17.692Z","repository":{"id":275643327,"uuid":"925827205","full_name":"replyke/monorepo","owner":"replyke","description":"Replyke React \u0026 React Native components: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.","archived":false,"fork":false,"pushed_at":"2025-05-11T09:04:44.000Z","size":14757,"stargazers_count":70,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-11T10:20:01.132Z","etag":null,"topics":["comments","expo","front-end","moderation","react","react-native","reactjs","replyke","social","typescript","ui-components"],"latest_commit_sha":null,"homepage":"https://docs.replyke.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/replyke.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}},"created_at":"2025-02-01T20:55:50.000Z","updated_at":"2025-05-11T09:04:49.000Z","dependencies_parsed_at":"2025-05-11T10:20:20.014Z","dependency_job_id":"10b847b1-d729-4798-8831-5c5d27b09e37","html_url":"https://github.com/replyke/monorepo","commit_stats":null,"previous_names":["replyke/ui-kit","replyke/replyke-ui","replyke/monorepo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/replyke%2Fmonorepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/replyke%2Fmonorepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/replyke%2Fmonorepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/replyke%2Fmonorepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/replyke","download_url":"https://codeload.github.com/replyke/monorepo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254120370,"owners_count":22017976,"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":["comments","expo","front-end","moderation","react","react-native","reactjs","replyke","social","typescript","ui-components"],"created_at":"2025-05-14T10:23:10.131Z","updated_at":"2025-05-14T10:23:17.680Z","avatar_url":"https://github.com/replyke.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Replyke: Open-Source Framework for Building Social Products\n\n\u003c!-- \u003ca target=\"_blank\" href=\"https://discord.gg/REKxnCJzPz\"\u003e\u003cimg src=\"https://dcbadge.limes.pink/api/server/REKxnCJzPz?compact=true\" alt=\"\" /\u003e\u003c/a\u003e --\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://replyke.com\" target=\"_blank\"\u003e\u003cimg src=\"assets/banner.webp\" alt=\"Replyke banner with logo and text saying \"Empowering developers to build engaging communities inside their apps\"\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ch3 align=\"center\"\u003eReplyke is an open source toolkit for adding production‑grade social features to any web or mobile app.\u003c/h3\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n\u003c/p\u003e\n\n[![npm](https://img.shields.io/npm/v/@replyke/core.svg?label=npm%20%40replyke%2Fcore)](https://www.npmjs.com/package/@replyke/core)\n[![License](https://img.shields.io/github/license/replyke/monorepo)](LICENSE) ![npm](https://img.shields.io/badge/types-included-blue)\n[![runs with expo](https://img.shields.io/badge/Runs%20with%20Expo-4630EB.svg?\u0026logo=EXPO\u0026labelColor=f3f3f3\u0026logoColor=000)](https://expo.io/)\n![Discord](https://img.shields.io/discord/1325775309148000288?label=Discord\u0026logo=discord\u0026logoColor=white)\n![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/replykejs)\n![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/yantsab)\n\nReplyke gives developers a complete foundation for building social experiences - comments, votes, notifications, feeds, and more - without reinventing the wheel. Instead of wiring together a mix of libraries or building from scratch, Replyke offers drop-in APIs, SDKs, and components that are production-ready out of the box.\n\nBuilt with a headless, TypeScript-first architecture, Replyke fits seamlessly into your stack. Whether you’re building a full social network or just need user comments on a blog post - Replyke has you covered.\n\n![Dashboard](/assets/dashboard.webp)\n\n## Table of Contents\n\n- [Key Features](#key-features)\n- [Why Replyke](#why-replyke)\n- [Comparison With Alternatives](#comparison-with-alternatives)\n- [Documentation](#documentation)\n- [Contributing](#contributing)\n- [Community and Support](#community-and-support)\n- [License](#license)\n\n## Key Features\n\n- **Comment system** - threaded replies, markdown, mentions, votes, moderation hooks\n- **Feeds** - filter by tags, following or geography with hot, top or new sorting\n- **In‑app notifications** - configurable events for votes, mentions, follows and more\n- **Curated lists** - user folders and nested collections of entities\n- **Follow graph** - one‑way follow relationships ready for social graphs\n- **Admin tools** - reporting, suspensions, reputation and audit logs built in\n\nAll features come with backend APIs, typed SDKs and ready to use React and React Native components.\n\n## Why Replyke\n\n- **Save months of work** - plug in battle‑tested social primitives instead of reinventing them\n- **Headless first** - bring your own auth and UI or use the included components\n- **Full TypeScript stack** - the same types flow from database to client hooks\n- **Self host (DIY) or cloud** - open‑source core plus an optional managed service for zero ops\n\n![In Action](/assets/action-optimized.gif)\n\n## Quick Start\n\nThis is a minimal example for integrating **comments** using Replyke. It’s meant as a basic demonstration with dummy content. Replyke offers much more - but this is the simplest way to get started.\n\nTo use this example:\n\n1. **Create a new project** in the [Replyke dashboard](https://dashboard.replyke.com) and copy your project ID.\n2. Go to **Settings → Secrets**, and **generate a new JWT key**. This is required for signing JWT tokens of your users data, when integrating Replyke with an external user system as we will mock in this example.\n3. Install the required packages:\n\n```bash\npnpm add @replyke/comments-social-react-js @replyke/react-js\n```\n\n\u003e ⚠️ This example uses a helper function that signs a JWT with the user’s info using a your project's secret key. It is **meant only for development and testing**. Never expose private keys in production, and if using the function - rotate your keys before moving to production.\n\n### Example `App.tsx`\n\nHere’s how your app might look in a Vite + Tailwind project:\n\n```tsx\nimport { SocialCommentSection } from \"@replyke/comments-social-react-js\";\nimport {\n  EntityProvider,\n  ReplykeProvider,\n  useSignTestingJwt,\n} from \"@replyke/react-js\";\nimport { useEffect, useState } from \"react\";\n\nconst PROJECT_ID = import.meta.env.VITE_PUBLIC_REPLYKE_PROJECT_ID;\nconst PRIVATE_KEY = import.meta.env.VITE_PUBLIC_REPLYKE_SECRET_KEY;\n\nconst DUMMY_USER = { id: \"user1\", username: \"lionel_messi10\" };\nconst DUMMY_POST = {\n  id: \"post_1234\",\n  title: \"Replyke Demo\",\n  content: \"Adding comment sections has never been so easy!\",\n};\n\nfunction SingleItem({\n  post,\n}: {\n  post: {\n    id: string;\n    title: string;\n    content: string;\n  };\n}) {\n  return (\n    \u003cdiv className=\"h-screen p-24\"\u003e\n      \u003cdiv className=\"w-full max-w-4xl h-full rounded-2xl shadow-2xl overflow-hidden flex flex-col\"\u003e\n        \u003cdiv className=\"p-6 border-b border-gray-200\"\u003e\n          \u003ch3 className=\"font-semibold text-lg\"\u003e{post.title}\u003c/h3\u003e\n          \u003cp\u003e{post.content}\u003c/p\u003e\n        \u003c/div\u003e\n        \u003cdiv className=\"relative flex-1 flex flex-col pt-4\"\u003e\n          \u003cSocialCommentSection /\u003e\n        \u003c/div\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n  );\n}\n\nfunction App() {\n  const signTestingJwt = useSignTestingJwt();\n\n  const [signedToken, setSignedToken] = useState\u003cstring\u003e();\n\n  useEffect(() =\u003e {\n    const handleSignJwt = async () =\u003e {\n      const token = await signTestingJwt({\n        projectId: PROJECT_ID,\n        privateKey: PRIVATE_KEY,\n        payload: DUMMY_USER,\n      });\n      setSignedToken(token);\n    };\n\n    handleSignJwt();\n  }, []);\n\n  return (\n    \u003cReplykeProvider projectId={PROJECT_ID} signedToken={signedToken}\u003e\n      \u003cEntityProvider foreignId={DUMMY_POST.id} createIfNotFound\u003e\n        \u003cSingleItem post={DUMMY_POST} /\u003e\n      \u003c/EntityProvider\u003e\n    \u003c/ReplykeProvider\u003e\n  );\n}\n\nexport default App;\n```\n\n## Comparison With Alternatives\n\n|                        | **Replyke** | Disqus        | Supabase + DIY | Custom Build |\n| ---------------------- | ----------- | ------------- | -------------- | ------------ |\n| Open source            | ✔           | ✖             | ✔              | —            |\n| Full social toolkit    | ✔           | Comments only | ✖              | —            |\n| Self host              | ✔ (DIY)     | Limited       | ✔              | ✔            |\n| React hooks \u0026 ready UI | ✔           | ✖             | ✖              | —            |\n\n## Documentation\n\nFull API reference, guides and recipes live at **[https://docs.replyke.com](https://docs.replyke.com)**.\n\n## Contributing\n\nBug reports are welcome. contributing guide coming soon - [Join Discord server for updates.](https://discord.gg/REKxnCJzPz)\n\n\u003c!-- ---\n1. Read the [contributing guide](CONTRIBUTING.md)\n2. Pick an issue or open a discussion\n3. Run `pnpm test` before pushing\n\nGood first issues are tagged with **good first issue**. --\u003e\n\n## Community and Support\n\n- **Discord** - [https://discord.gg/REKxnCJzPz](https://discord.gg/REKxnCJzPz)\n- **Blog** - [https://blog.replyke.com](https://blog.replyke.com)\n\n- **X/Twitter**\n  - Replyke - [https://x.com/yantsab](https://x.com/yantsab)\n  - Yanay (Developer) - [https://x.com/yantsab](https://x.com/yantsab)\n- **LinkedIn**\n\n  - Replyke - [https://www.linkedin.com/company/replyke](https://www.linkedin.com/company/replyke)\n  - Yanay (Developer) - [https://www.linkedin.com/in/yanay-zabary/](https://www.linkedin.com/in/yanay-zabary/)\n\n- **Email** - [support@replyke.com](mailto:support@replyke.com)\n\n## License\n\nReplyke is released under the **AGPL‑3.0‑only** license. See [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freplyke%2Fmonorepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freplyke%2Fmonorepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freplyke%2Fmonorepo/lists"}