{"id":25766875,"url":"https://github.com/0372hoanghoccode/blog-app","last_synced_at":"2026-02-18T10:03:53.230Z","repository":{"id":271884795,"uuid":"905348386","full_name":"0372hoanghoccode/Blog-App","owner":"0372hoanghoccode","description":"A full-stack blogging application built with the MERN stack , featuring user authentication, CRUD operations, and modern UI components , deploy on Render .","archived":false,"fork":false,"pushed_at":"2025-02-17T15:05:27.000Z","size":2159,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T12:11:09.608Z","etag":null,"topics":["claudinary","dayjs","express","firebase-auth","framermotion","i18n","jwt","mongodb","node","react","redux","shadcn","tailwindcss"],"latest_commit_sha":null,"homepage":"https://blog-app-2gwk.onrender.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0372hoanghoccode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-12-18T16:36:40.000Z","updated_at":"2025-02-18T07:39:05.000Z","dependencies_parsed_at":"2025-02-16T15:23:08.679Z","dependency_job_id":"941965ba-6543-4cb7-a21b-6b0a9a2fd699","html_url":"https://github.com/0372hoanghoccode/Blog-App","commit_stats":null,"previous_names":["0372hoanghoccode/blog-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/0372hoanghoccode/Blog-App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0372hoanghoccode%2FBlog-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0372hoanghoccode%2FBlog-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0372hoanghoccode%2FBlog-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0372hoanghoccode%2FBlog-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0372hoanghoccode","download_url":"https://codeload.github.com/0372hoanghoccode/Blog-App/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0372hoanghoccode%2FBlog-App/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29575343,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T08:38:15.585Z","status":"ssl_error","status_checked_at":"2026-02-18T08:38:14.917Z","response_time":162,"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":["claudinary","dayjs","express","firebase-auth","framermotion","i18n","jwt","mongodb","node","react","redux","shadcn","tailwindcss"],"created_at":"2025-02-26T23:17:54.169Z","updated_at":"2026-02-18T10:03:53.212Z","avatar_url":"https://github.com/0372hoanghoccode.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nA full-stack blogging application built with the MERN stack (MongoDB, Express, React, Node.js), featuring user authentication, CRUD operations, and modern UI components.\n\n## ✨ Features\n- **User Authentication**: JWT-based signup/login + Google OAuth\n- **Content Management**:\n  - Create/Edit/Delete blog posts\n  - Category system with CRUD operations\n  - Rich text editor support (React Quill)\n- **Social Features**:\n  - Nested comments with replies\n  - Comment liking/disliking\n- **Admin Controls**:\n  - User management (view/update/delete users)\n  - Role-based access control\n- **Modern UI**:\n  - Responsive design with Tailwind CSS\n  - Animated components (Framer Motion)\n  - Radix UI primitives for accessibility\n\n## 🛠 Tech Stack\n**Backend**\n![Node.js](https://img.shields.io/badge/Node.js-20%2B-green)\n![Express](https://img.shields.io/badge/Express-4.21-blue)\n![MongoDB](https://img.shields.io/badge/MongoDB-8.9-green)\n![Cloudinary](https://img.shields.io/badge/Cloudinary-2.5-blueviolet)\n\n**Frontend**\n![React](https://img.shields.io/badge/React-18.3-blue)\n![Redux](https://img.shields.io/badge/Redux_Toolkit-2.5-purple)\n![Tailwind](https://img.shields.io/badge/Tailwind_CSS-3.4-06B6D4)\n![ShadCN](https://img.shields.io/badge/ShadCN-Components-orange)\n![Framer_Motion](https://img.shields.io/badge/Framer_Motion-11.17.0-FF007F)\n\n**Auth**\n![JWT](https://img.shields.io/badge/JWT-9.0-orange)\n![Google_OAuth](https://img.shields.io/badge/Google_OAuth-2.0-blue)\n\n![alt text](z6323805495407_00c58682ceb8292525a40a00fbabc484.jpg)\n![alt text](z6323806319939_8281e51e5a88bcee02642aa731d4cdfb.jpg)\n![alt text](z6323807042424_6278e2fe46f5e2f254f1bd940006c7aa.jpg)\n![alt text](z6323807912810_ab655b0ffe4c358f5d989342e252ed1e.jpg)\n![alt text](z6323808631624_97ce95184ceb61b861aa1ebe9ecbfa95.jpg)\n![alt text](z6323809145206_0752b114b51be6dc6ea983885f44cf1d.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0372hoanghoccode%2Fblog-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0372hoanghoccode%2Fblog-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0372hoanghoccode%2Fblog-app/lists"}