{"id":26924134,"url":"https://github.com/amirfakhrullah/bloqdown","last_synced_at":"2025-06-14T03:40:38.099Z","repository":{"id":36958665,"uuid":"499471692","full_name":"amirfakhrullah/bloqdown","owner":"amirfakhrullah","description":"Simple Markdown Forum/Blog site using Next.js, Next-Auth, TypeScript, tRPC, Prisma and PlanetScale","archived":false,"fork":false,"pushed_at":"2022-12-31T07:19:55.000Z","size":1183,"stargazers_count":15,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2023-04-07T06:57:56.135Z","etag":null,"topics":["daisyui","next-auth","nextjs","planetscale","prisma","react-markdown","tailwindcss","trpc","typescript","upstash-redis"],"latest_commit_sha":null,"homepage":"https://bloqdown.amrf.me","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amirfakhrullah.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}},"created_at":"2022-06-03T10:35:51.000Z","updated_at":"2023-04-07T04:54:47.000Z","dependencies_parsed_at":"2023-01-17T08:30:25.444Z","dependency_job_id":null,"html_url":"https://github.com/amirfakhrullah/bloqdown","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirfakhrullah%2Fbloqdown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirfakhrullah%2Fbloqdown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirfakhrullah%2Fbloqdown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirfakhrullah%2Fbloqdown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amirfakhrullah","download_url":"https://codeload.github.com/amirfakhrullah/bloqdown/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246741148,"owners_count":20826063,"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":["daisyui","next-auth","nextjs","planetscale","prisma","react-markdown","tailwindcss","trpc","typescript","upstash-redis"],"created_at":"2025-04-02T01:53:18.404Z","updated_at":"2025-04-02T01:53:19.036Z","avatar_url":"https://github.com/amirfakhrullah.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./public/logo-bd.png\" alt=\"BloqDown\" height=\"80\" /\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/amirfakhrullah/BloqDown/releases\"\u003eReleases\u003c/a\u003e •\n  \u003ca href=\"https://github.com/amirfakhrullah/BloqDown/blob/main/LICENSE\"\u003eLicense\u003c/a\u003e •\n  \u003ca href=\"https://github.com/amirfakhrullah/BloqDown/blob/main/CONTRIBUTING.md\"\u003eContributing\u003c/a\u003e •\n  \u003ca href=\"https://github.com/amirfakhrullah/BloqDown/blob/main/CODE_OF_CONDUCT.md\"\u003eCode of Conduct\u003c/a\u003e\n\u003c/p\u003e\n\n## Description\n\nSimple Markdown Forum/Blog site using `Next.js`, `NextAuth`, `TypeScript`, `tRPC`, `Prisma` and `PlanetScale`. The aim here is to learn how to properly use these techstacks.\n\n![bloqdown](./public/bloqdown-screen.JPG)\n\n## Quick Links\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://bloqdown.fakhrullah.com\"\u003eWebsite\u003c/a\u003e •\n  \u003ca href=\"https://github.com/amirfakhrullah/BloqDown/projects/1\"\u003eRoadmap\u003c/a\u003e •\n  \u003ca href=\"https://github.com/amirfakhrullah/BloqDown/issues\"\u003eIssues\u003c/a\u003e •\n  \u003ca href=\"https://github.com/amirfakhrullah/BloqDown/pulls\"\u003ePull Requests\u003c/a\u003e •\n  \u003ca href=\"https://github.com/amirfakhrullah/BloqDown/discussions\"\u003eDiscussions\u003c/a\u003e\n\u003c/p\u003e\n\n## Goals For This Project\n\nThe goals for this project are:\n\n- Creating fully typesafe APIs using `tRPC`\n- Using `Prisma` as `TypeScript ORM`\n- Setting up `PlanetScale` as `MySQL` db for the site\n- Set cookie for anonymous users thru `Next.js` middleware\n- Auth using `NextAuth` (Github Provider)\n- Render markdown content using `react-markdown` and `@tailwindcss/typography`\n- Display repository data using `GitHub API`\n\n## Project Features\n\n- **Users** - Can perform any activity anonymously or can login as GitHub user (via `NextAuth`)\n- **Homepage** - Users can find posts sorted by popularity or latest. They can also find posts via tags and search bar\n- **Base features of posts** - Creating, updating and deleting posts\n- **Liking** - Users can like any posts they want\n- **Comments** - Users can comments to any posts, the users and the post owners can delete comments\n- **Tags** - Users can add category tags to the posts, so that users can find the posts via tags in the homepage\n- **Views** - Total views of the post (not unique)\n- **Live Repository Stats** - Live repository data of this project fetched using `GitHub API`\n\n\n## Techstacks\n\n- [Next.js](https://nextjs.org/)\n- [TailwindCSS](https://tailwindcss.com/)\n- [DaisyUI](https://daisyui.com/)\n- [TailwindCSS-Typography](https://tailwindcss.com/docs/typography-plugin)\n- [React-Markdown](https://github.com/remarkjs/react-markdown)\n- [Next-Auth](https://next-auth.js.org/)\n- [TypeScript](https://www.typescriptlang.org/)\n- [tRPC](https://trpc.io/)\n- [Prisma](https://www.prisma.io/)\n- [PlanetScale](https://planetscale.com/)\n- [Vercel](https://vercel.com/)\n\n## Getting Started\n\n### Prerequisite\n\n- `MySQL` local database or Planetscale connection using `PScale CLI`\n- `npm`\n\n### Installations\n\nAfter cloning the repo, set up `.env` file with db url\n\n```bash\nDATABASE_URL=\"mysql://localhost:InsertPortHere/InsertDbNameHere\"\n```\n\nFor setting up `Next Auth` Github provider, insert Github Id and secrets in `.env.local`\n\n```bash\nGITHUB_ID=\nGITHUB_SECRET=\nGITHUB_ACCESS_TOKEN=\nNEXTAUTH_SECRET=\n```\n\nThen, proceed with installing:\n\n```bash\nnpm install\n```\n\n### Run locally\n\nRun the development server:\n\n```bash\npscale connect `InsertDbNameHere` #for connecting planetscale db\nnpm run dev\n```\n\n## License\n\nLicense under the [BSD-3-Clause](./LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famirfakhrullah%2Fbloqdown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famirfakhrullah%2Fbloqdown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famirfakhrullah%2Fbloqdown/lists"}