{"id":23923643,"url":"https://github.com/ososuna/cliplink-rest","last_synced_at":"2026-04-11T10:35:57.759Z","repository":{"id":270136126,"uuid":"893589614","full_name":"ososuna/cliplink-rest","owner":"ososuna","description":"📎 ClipLink Rest API - URL Shortener","archived":false,"fork":false,"pushed_at":"2025-06-16T00:34:36.000Z","size":1080,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-24T19:46:00.145Z","etag":null,"topics":["clean-architecture","express","mongodb","nodejs","rest-api","typescript","url-shortener"],"latest_commit_sha":null,"homepage":"https://cliplink.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/ososuna.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,"zenodo":null}},"created_at":"2024-11-24T20:29:29.000Z","updated_at":"2025-06-16T00:34:40.000Z","dependencies_parsed_at":"2024-12-28T18:25:13.118Z","dependency_job_id":"15f48a5a-f2fd-4a0f-97ef-39c318f88109","html_url":"https://github.com/ososuna/cliplink-rest","commit_stats":null,"previous_names":["ososuna/cliplink-rest"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ososuna/cliplink-rest","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ososuna%2Fcliplink-rest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ososuna%2Fcliplink-rest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ososuna%2Fcliplink-rest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ososuna%2Fcliplink-rest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ososuna","download_url":"https://codeload.github.com/ososuna/cliplink-rest/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ososuna%2Fcliplink-rest/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279020043,"owners_count":26086806,"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-10-14T02:00:06.444Z","response_time":60,"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":["clean-architecture","express","mongodb","nodejs","rest-api","typescript","url-shortener"],"created_at":"2025-01-05T18:48:36.500Z","updated_at":"2025-10-14T17:47:12.382Z","avatar_url":"https://github.com/ososuna.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca id=\"readme-top\"\u003e\u003c/a\u003e\n\n![Unlicense License][license-shield]\n[![LinkedIn][linkedin-shield]][linkedin-url]\n\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://cliplink.app\" target=\"_blank\"\u003e\n    \u003cimg src=\"assets/img/cliplink-logo.jpg\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eClipLink - URL Shortener\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    The ultimate URL shortener for seamless link management. Shorten, customize, and track your links with ease. Boost your branding and analytics with a fast, reliable, and user-friendly solution. Try ClipLink today!\n    \u003cbr /\u003e\n    \u003ca href=\"https://cliplink.app\"\u003e\u003cstrong\u003eExplore the site »\u003c/strong\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\n\u003ca href=\"https://github.com/ososuna/cliplink-ui.git\" target=\"_blank\"\u003e\n  \u003cimg src=\"assets/img/cliplink-screenshot.png\" alt=\"Logo\" width=\"700\"\u003e\n\u003c/a\u003e\n\nClipLink is a minimalistic, high-performance URL shortener designed with usability at its core. Whether you're managing a large number of links or just need a quick way to create short, shareable URLs, ClipLink makes it simple and efficient.\n\n#### Key features:\n* Minimalistic Design: Clean and intuitive interface ensures an effortless user experience.\n* Third-party authentication: Google and Github authentication.\n* Blazing Fast Performance: Optimized backend and frontend deliver instant results.\n* Customizable Links: Personalize your short URLs to make them memorable.\n* Scalable Architecture: Built to handle growing demands without compromising speed.\n\n#### Why Choose ClipLink?\n\nClipLink was crafted with simplicity and performance in mind, making it the perfect tool for users who value ease of use and speed without unnecessary bloat.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### Built With\n* [![Astro][Astro]][Astro-url]\n* [![React][React.js]][React-url]\n* [![shadcn][shadcn]][shadcn-url]\n* [![TailwindCSS][TailwindCSS]][TailwindCSS-url]\n* [![Vercel][Vercel]][Vercel-url]\n* [![Render][Render]][Render-url]\n* [![Express.js][Express.js]][Express-url]\n* [![MongoDB][MongoDB]][MongoDB-url]\n\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\n\nFollow these steps to clone and set up the ClipLink URL Shortener on your local machine:\n\n### Prerequisites\n\nEnsure you have the following installed:\n1. [Node.js](https://nodejs.org/) (version 16 or higher recommended)  \n2. [pnpm](https://pnpm.io/), [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/) package manager\n\n\n### Installation\n\n1. Clone the repo\n   ```sh\n   git clone https://github.com/ososuna/cliplink-rest.git\n   ```\n2. Install NPM packages\n    #### Using pnpm\n    ```bash\n    pnpm install\n    ```\n    #### Using npm\n    ```bash\n    npm install\n    ```\n    #### Using yarn\n    ```bash\n    yarn\n    ```\n3. Create a .env file in the root of the project and enter your own environment variables\n   ```.env\n    PORT=\n    MONGO_URL=\n    MONGO_DB_NAME=\n    JWT_SEED=\n    JWT_ACCESS_EXPIRATION=\n    JWT_REFRESH_EXPIRATION=\n    GITHUB_CLIENT_ID=\n    GITHUB_CLIENT_SECRET=\n    GITHUB_CALLBACK_URL=\n    GOOGLE_CLIENT_ID=\n    GOOGLE_CLIENT_SECRET=\n    GOOGLE_CALLBACK_URL=\n    RESEND_API_KEY=\n    WEB_APP_URL=\n   ```\n4. Change git remote url to avoid accidental pushes to base project\n   ```sh\n   git remote set-url origin github_username/repo_name\n   git remote -v # confirm the changes\n   ```\n5. Start docker-compose to set up a MongoDB instance in your local\n   ```bash\n   docker-compose up\n   ```\n6. Start the Development server\n    #### Using pnpm\n    ```bash\n    pnpm run dev\n    ```\n    #### Using npm\n    ```bash\n    npm run dev\n    ```\n    #### Using yarn\n    ```bash\n    yarn dev\n    ```\n\n7. Start the ClipLink UI following the next instructions: [https://github.com/ososuna/cliplink-ui?tab=readme-ov-file#getting-started](https://github.com/ososuna/cliplink-ui?tab=readme-ov-file#getting-started)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- LICENSE --\u003e\n## License\n\nDistributed under the Unlicense License.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTACT --\u003e\n## Contact\n\n[Oswaldo Osuna](https://oswaldo-osuna.com) - oswaldo.adrian35@gmail.com\n\nProject Link: [https://github.com/ososuna/cliplink-rest.git](https://github.com/ososuna/cliplink-rest.git)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/othneildrew/Best-README-Template.svg?style=for-the-badge\n[contributors-url]: https://github.com/othneildrew/Best-README-Template/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/othneildrew/Best-README-Template.svg?style=for-the-badge\n[forks-url]: https://github.com/othneildrew/Best-README-Template/network/members\n[stars-shield]: https://img.shields.io/github/stars/othneildrew/Best-README-Template.svg?style=for-the-badge\n[stars-url]: https://github.com/othneildrew/Best-README-Template/stargazers\n[issues-shield]: https://img.shields.io/github/issues/othneildrew/Best-README-Template.svg?style=for-the-badge\n[issues-url]: https://github.com/othneildrew/Best-README-Template/issues\n[license-shield]: https://img.shields.io/github/license/othneildrew/Best-README-Template.svg?style=for-the-badge\n[license-url]: https://github.com/othneildrew/Best-README-Template/blob/master/LICENSE.txt\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026colorB=555\n[linkedin-url]: https://www.linkedin.com/in/ososuna/\n[product-screenshot]: images/screenshot.png\n[Next.js]: https://img.shields.io/badge/next.js-000000?style=for-the-badge\u0026logo=nextdotjs\u0026logoColor=white\n[Next-url]: https://nextjs.org/\n[React.js]: https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB\n[React-url]: https://reactjs.org/\n[Vue.js]: https://img.shields.io/badge/Vue.js-35495E?style=for-the-badge\u0026logo=vuedotjs\u0026logoColor=4FC08D\n[Vue-url]: https://vuejs.org/\n[Angular.io]: https://img.shields.io/badge/Angular-DD0031?style=for-the-badge\u0026logo=angular\u0026logoColor=white\n[Angular-url]: https://angular.io/\n[Svelte.dev]: https://img.shields.io/badge/Svelte-4A4A55?style=for-the-badge\u0026logo=svelte\u0026logoColor=FF3E00\n[Svelte-url]: https://svelte.dev/\n[Laravel.com]: https://img.shields.io/badge/Laravel-FF2D20?style=for-the-badge\u0026logo=laravel\u0026logoColor=white\n[Laravel-url]: https://laravel.com\n[Bootstrap.com]: https://img.shields.io/badge/Bootstrap-563D7C?style=for-the-badge\u0026logo=bootstrap\u0026logoColor=white\n[Bootstrap-url]: https://getbootstrap.com\n[JQuery.com]: https://img.shields.io/badge/jQuery-0769AD?style=for-the-badge\u0026logo=jquery\u0026logoColor=white\n[JQuery-url]: https://jquery.com \n[Astro]: https://img.shields.io/badge/Astro-FF5D01?style=for-the-badge\u0026logo=astro\u0026logoColor=white\n[Astro-url]: https://astro.build/\n[shadcn]: https://img.shields.io/badge/shadcn-0EA5E9?style=for-the-badge\u0026logo=tailwindcss\u0026logoColor=white\n[shadcn-url]: https://ui.shadcn.com\n[TailwindCSS]: https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge\u0026logo=tailwindcss\u0026logoColor=white\n[TailwindCSS-url]: https://tailwindcss.com/\n[Vercel]: https://img.shields.io/badge/Vercel-000000?style=for-the-badge\u0026logo=vercel\u0026logoColor=white\n[Vercel-url]: https://vercel.com/\n[Render]: https://img.shields.io/badge/Render-0095D5?style=for-the-badge\u0026logo=render\u0026logoColor=white\n[Render-url]: https://render.com/\n[MongoDB]: https://img.shields.io/badge/MongoDB-47A248?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white\n[MongoDB-url]: https://www.mongodb.com/\n[MongoDB]: https://img.shields.io/badge/MongoDB-47A248?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white\n[MongoDB-url]: https://www.mongodb.com/\n[Express.js]: https://img.shields.io/badge/Express.js-000000?style=for-the-badge\u0026logo=express\u0026logoColor=white\n[Express-url]: https://expressjs.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fososuna%2Fcliplink-rest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fososuna%2Fcliplink-rest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fososuna%2Fcliplink-rest/lists"}