{"id":14991407,"url":"https://github.com/openrin/rin","last_synced_at":"2025-05-14T03:09:49.936Z","repository":{"id":242165732,"uuid":"803866357","full_name":"openRin/Rin","owner":"openRin","description":"⚡Dynamic blog based on Cloudflare Pages + Workers + D1 + R2","archived":false,"fork":false,"pushed_at":"2025-02-05T02:20:35.000Z","size":1257,"stargazers_count":1837,"open_issues_count":54,"forks_count":954,"subscribers_count":8,"default_branch":"dev","last_synced_at":"2025-04-10T20:55:17.229Z","etag":null,"topics":["blog","bun","bunjs","cloudflare","cloudflare-workers","elysiajs","framework","react","web"],"latest_commit_sha":null,"homepage":"https://docs.openrin.org","language":"TypeScript","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/openRin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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-05-21T14:14:13.000Z","updated_at":"2025-04-10T16:08:58.000Z","dependencies_parsed_at":"2024-06-29T14:25:45.083Z","dependency_job_id":"725c72f2-2da2-4cc0-a253-a4ce0194b356","html_url":"https://github.com/openRin/Rin","commit_stats":{"total_commits":352,"total_committers":12,"mean_commits":"29.333333333333332","dds":"0.28409090909090906","last_synced_commit":"aacc10557af0546003a2f4a809a14a50bbb0c623"},"previous_names":["oxeu/rin","openrin/rin"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openRin%2FRin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openRin%2FRin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openRin%2FRin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openRin%2FRin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openRin","download_url":"https://codeload.github.com/openRin/Rin/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254059511,"owners_count":22007769,"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":["blog","bun","bunjs","cloudflare","cloudflare-workers","elysiajs","framework","react","web"],"created_at":"2024-09-24T14:27:44.356Z","updated_at":"2025-05-14T03:09:44.913Z","avatar_url":"https://github.com/openRin.png","language":"TypeScript","readme":"# Rin\n\nEnglish | [简体中文](./README_zh_CN.md)\n\n![Cover](https://repository-images.githubusercontent.com/803866357/958bc2c1-1703-4127-920c-853291495bdc)\n\n![GitHub commit activity](https://img.shields.io/github/commit-activity/w/openRin/Rin?style=for-the-badge)\n![GitHub branch check runs](https://img.shields.io/github/check-runs/openRin/Rin/main?style=for-the-badge)\n![GitHub top language](https://img.shields.io/github/languages/top/openRin/Rin?style=for-the-badge)\n![GitHub License](https://img.shields.io/github/license/openRin/Rin?style=for-the-badge)\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/openRin/Rin/deploy.yaml?style=for-the-badge)\n\n[![Discord](https://img.shields.io/badge/Discord-openRin-red?style=for-the-badge\u0026color=%236e7acc)](https://discord.gg/JWbSTHvAPN)\n[![Telegram](https://img.shields.io/badge/Telegram-openRin-red?style=for-the-badge\u0026color=%233390EC)](https://t.me/openRin)\n\n# Introduction\n\nRin is a blog based on Cloudflare Pages + Workers + D1 + R2. It does not require a server to deploy. It can be deployed just with a domain name that resolves to Cloudflare.\n\n## Demo\n\n[xeu.life](https://xeu.life)\n\n## Features\n1. Support GitHub OAuth login. By default, the first logged-in user has management privileges, and other users are ordinary users\n2. Support article writing and editing\n3. Support local real-time saving of modifications/edits to any article without interfering between multiple articles\n4. Support setting it as visible only to yourself, which can serve as a draft box for cloud synchronization or record more private content\n5. Support dragging/pasting uploaded images to a bucket that supports the S3 protocol and generating links\n6. Support setting article aliases, and access articles through links such as https://xeu.life/about\n7. Support articles not being listed in the homepage list\n8. Support adding links of friends' blog, and the backend regularly checks and updates the accessible status of links every 20 minutes\n9. Support replying to comment articles/deleting comments\n10. Support sending comment notifications through Webhook\n11. Support automatic identification of the first picture in the article and display it as the header image in the article list\n12. Support inputting tag texts such as \"#Blog #Cloudflare\" and automatically parsing them into tags\n13. For more features, please refer to https://xeu.life\n\n# Documentation\n[rin-docs.xeu.life](https://rin-docs.xeu.life)\n\n## Star History\n\n\u003ca href=\"https://star-history.com/#openRin/Rin\u0026Date\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=openRin/Rin\u0026type=Date\u0026theme=dark\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=openRin/Rin\u0026type=Date\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=openRin/Rin\u0026type=Date\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n# License\n```\nMIT License\n\nCopyright (c) 2024 Xeu\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenrin%2Frin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenrin%2Frin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenrin%2Frin/lists"}