{"id":18858580,"url":"https://github.com/harshit-3905/binary-blogs","last_synced_at":"2026-05-18T20:07:04.300Z","repository":{"id":214930438,"uuid":"737700143","full_name":"Harshit-3905/Binary-Blogs","owner":"Harshit-3905","description":"Binary Blogs combines the timeless elegance of a quill with the cutting-edge world of technology. This blog is a fusion of creativity and innovation, exploring the intersection of code and narrative. Join the journey of tech insights, coding adventures, and digital stories that unfold at the crossroads of Quill and Tech.","archived":false,"fork":false,"pushed_at":"2024-09-26T07:38:26.000Z","size":3899,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-30T19:48:16.322Z","etag":null,"topics":["appwrite","aws-cloudfront","aws-s3","ci-cd","react","react-router-dom","redux-toolkit"],"latest_commit_sha":null,"homepage":"https://binary-blogs.harshit-joshi.tech/","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/Harshit-3905.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-01-01T06:15:38.000Z","updated_at":"2024-09-26T07:38:29.000Z","dependencies_parsed_at":"2024-01-21T09:32:12.835Z","dependency_job_id":"50e2d439-a170-42f0-9304-36d4d80573cb","html_url":"https://github.com/Harshit-3905/Binary-Blogs","commit_stats":null,"previous_names":["harshit-3905/quill-quest","harshit-3905/quill-tech"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Harshit-3905%2FBinary-Blogs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Harshit-3905%2FBinary-Blogs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Harshit-3905%2FBinary-Blogs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Harshit-3905%2FBinary-Blogs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Harshit-3905","download_url":"https://codeload.github.com/Harshit-3905/Binary-Blogs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239800418,"owners_count":19699121,"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":["appwrite","aws-cloudfront","aws-s3","ci-cd","react","react-router-dom","redux-toolkit"],"created_at":"2024-11-08T04:14:01.154Z","updated_at":"2026-05-18T20:07:04.293Z","avatar_url":"https://github.com/Harshit-3905.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Binary Blogs\n\nA modern React + TypeScript blogging platform powered by Appwrite.\n\n## Features\n\n- Email/password auth + guest login\n- Blog listing/detail/create/edit flows\n- Likes, bookmarks, and comments\n- User preferences and dashboard analytics\n- Markdown rendering with Prism syntax highlighting\n- Route-level code splitting with protected/guest-only routes\n\n## Tech stack\n\n- React 18 + TypeScript\n- Vite\n- Zustand (state management)\n- React Router\n- Tailwind CSS + shadcn/ui + Radix UI\n- Appwrite (auth, database, storage)\n\n## Project structure\n\n- `src/services/real/*`: Appwrite-backed services (single source of truth)\n- `src/services/index.ts`: service barrel exports\n- `src/lib/appwrite.ts`: Appwrite client instances\n- `src/lib/appwriteConfig.ts`: Appwrite IDs and constants\n- `src/store/*`: Zustand stores\n- `src/pages/*`: route pages\n\n## Prerequisites\n\n- Node.js 20+\n- npm\n- Appwrite project with database/collections/bucket already provisioned\n\n## Environment variables\n\nCopy `.env.example` to `.env` and set:\n\n```env\nVITE_APPWRITE_PROJECT_ID=your_project_id\nVITE_APPWRITE_ENDPOINT=https://your-appwrite-endpoint/v1\nVITE_APPWRITE_DATABASE_ID=your_database_id\n```\n\nCollection and bucket IDs are constants in `src/lib/appwriteConfig.ts`:\n\n- Collections: `users`, `blogs`, `comments`, `likes`, `bookmarks`, `preferences`, `tags`\n- Bucket: `blog_images`\n\n## Install and run\n\n```bash\nnpm install\nnpm run dev\n```\n\n## Build and preview\n\n```bash\nnpm run build\nnpm run preview\n```\n\n## Lint\n\n```bash\nnpm run lint\n```\n\n## Guest login\n\nGuest login uses a fixed account configured in `src/services/real/authService.ts`.\nIf you want different guest credentials, update the guest constants there.\n\n## Deployment\n\nGitHub Actions workflow: `.github/workflows/deploy-to-aws.yml`\n\nBuild step expects these GitHub secrets:\n\n- `VITE_APPWRITE_ENDPOINT`\n- `VITE_APPWRITE_PROJECT_ID`\n- `VITE_APPWRITE_DATABASE_ID`\n\nAWS deploy/invalidation secrets are also required by the workflow.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharshit-3905%2Fbinary-blogs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharshit-3905%2Fbinary-blogs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharshit-3905%2Fbinary-blogs/lists"}