{"id":28639540,"url":"https://github.com/2manoj1/link-previewer","last_synced_at":"2026-05-01T21:33:22.409Z","repository":{"id":51380990,"uuid":"520275342","full_name":"2manoj1/link-previewer","owner":"2manoj1","description":"Link Previewer - Remix Full stack web app. Using Meta Scrapper and Prisma","archived":false,"fork":false,"pushed_at":"2022-08-02T09:24:05.000Z","size":601,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-12T19:41:35.230Z","etag":null,"topics":["postgresql","prisma","remix-run","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"https://link-previewer-plum.vercel.app","language":"TypeScript","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/2manoj1.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}},"created_at":"2022-08-01T22:09:23.000Z","updated_at":"2023-05-20T21:29:03.000Z","dependencies_parsed_at":"2022-09-02T03:41:03.796Z","dependency_job_id":null,"html_url":"https://github.com/2manoj1/link-previewer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/2manoj1/link-previewer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2manoj1%2Flink-previewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2manoj1%2Flink-previewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2manoj1%2Flink-previewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2manoj1%2Flink-previewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/2manoj1","download_url":"https://codeload.github.com/2manoj1/link-previewer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2manoj1%2Flink-previewer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267977447,"owners_count":24175158,"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","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["postgresql","prisma","remix-run","tailwindcss","typescript"],"created_at":"2025-06-12T19:40:37.813Z","updated_at":"2025-10-16T20:11:41.079Z","avatar_url":"https://github.com/2manoj1.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Link Previewer\n\n[Link Previewer Demo App -\u003e Click here](https://link-previewer-sigma.vercel.app)\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003ePage 1\u003c/th\u003e\n    \u003cth\u003ePage 2\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg width=\"1512\" alt=\"Link Preview page 1\" src=\"https://user-images.githubusercontent.com/15128569/182340321-dbd6db9e-1535-4d8e-8658-5db7cf44ccba.png\"\u003e\u003c/td\u003e\n     \u003ctd\u003e\u003cimg width=\"1512\" alt=\"Link Preview Details page\" src=\"https://user-images.githubusercontent.com/15128569/182340417-ab327b8f-9939-477f-a5cf-e1034c259297.png\"\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\nDemo: \n\nhttps://user-images.githubusercontent.com/15128569/182339581-bc769602-37d5-46f8-92be-976944757791.mov\n\n\nBuild using [Remix Stacks](https://remix.run/stacks).\n\n```sh\nnpx create-remix --template remix-run/blues-stack\n```\n\n## What's in the stack\n\n- [Multi-region Fly app deployment](https://fly.io/docs/reference/scaling/) with [Docker](https://www.docker.com/)\n- [Multi-region Fly PostgreSQL Cluster](https://fly.io/docs/getting-started/multi-region-databases/)\n- Healthcheck endpoint for [Fly backups region fallbacks](https://fly.io/docs/reference/configuration/#services-http_checks)\n- [GitHub Actions](https://github.com/features/actions) for deploy on merge to production and staging environments\n- Email/Password Authentication with [cookie-based sessions](https://remix.run/docs/en/v1/api/remix#createcookiesessionstorage)\n- Database ORM with [Prisma](https://prisma.io)\n- Styling with [Tailwind](https://tailwindcss.com/)\n- End-to-end testing with [Cypress](https://cypress.io)\n- Local third party request mocking with [MSW](https://mswjs.io)\n- Unit testing with [Vitest](https://vitest.dev) and [Testing Library](https://testing-library.com)\n- Code formatting with [Prettier](https://prettier.io)\n- Linting with [ESLint](https://eslint.org)\n- Static Types with [TypeScript](https://typescriptlang.org)\n\n- Deployed vercel with Prisma cloud and Heroku PostgreSQL [Visit](https://link-previewer-sigma.vercel.app)\n\nNot a fan of bits of the stack? Fork it, change it, and use `npx create-remix --template your/repo`! Make it your own.\n\n## Quickstart\n\nClick this button to create a [Gitpod](https://gitpod.io) workspace with the project set up, Postgres started, and Fly pre-installed\n\n[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod)](https://gitpod.io/from-referrer/)\n\n## Development\n\n- This step only applies if you've opted out of having the CLI install dependencies for you:\n\n  ```sh\n  npx remix init\n  ```\n\n- Start the Postgres Database in [Docker](https://www.docker.com/get-started):\n\n  ```sh\n  yarn docker\n  ```\n\n  \u003e **Note:** The yarn script will complete while Docker sets up the container in the background. Ensure that Docker has finished and your container is running before proceeding.\n\n- Initial setup:\n  (Data proxy prisma)\n\n  ```sh\n    npx prisma generate --data-proxy\n  ```\n\n  or (If only local database)\n\n```sh\n    yarn setup\n```\n\n- Run the first build:\n\n  ```sh\n  yarn build\n  ```\n\n- Start dev server:\n\n  ```sh\n  yarn dev\n  ```\n\n### Vitest\n\nFor lower level tests of utilities and individual components, we use `vitest`. We have DOM-specific assertion helpers via [`@testing-library/jest-dom`](https://testing-library.com/jest-dom).\n\n### Type Checking\n\nThis project uses TypeScript. It's recommended to get TypeScript set up for your editor to get a really great in-editor experience with type checking and auto-complete. To run type checking across the whole project, run `yarn typecheck`.\n\n### Linting\n\nThis project uses ESLint for linting. That is configured in `.eslintrc.js`.\n\n### Formatting\n\nWe use [Prettier](https://prettier.io/) for auto-formatting in this project. It's recommended to install an editor plugin (like the [VSCode Prettier plugin](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)) to get auto-formatting on save. There's also a `yarn format` script you can run to format all files in the project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2manoj1%2Flink-previewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F2manoj1%2Flink-previewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2manoj1%2Flink-previewer/lists"}