{"id":25047746,"url":"https://github.com/gabsedits/lynx","last_synced_at":"2026-02-15T05:31:35.143Z","repository":{"id":275222440,"uuid":"925338110","full_name":"GabsEdits/lynx","owner":"GabsEdits","description":"Create short links, fast, and simple!","archived":false,"fork":false,"pushed_at":"2025-02-01T11:28:59.000Z","size":30,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-04T06:53:47.534Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GabsEdits.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2025-01-31T17:29:24.000Z","updated_at":"2025-02-01T11:29:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"9e2321da-31c1-47e4-9ff2-adbffb051c86","html_url":"https://github.com/GabsEdits/lynx","commit_stats":null,"previous_names":["gabsedits/lynx"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GabsEdits/lynx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabsEdits%2Flynx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabsEdits%2Flynx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabsEdits%2Flynx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabsEdits%2Flynx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GabsEdits","download_url":"https://codeload.github.com/GabsEdits/lynx/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabsEdits%2Flynx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29470607,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T05:26:30.465Z","status":"ssl_error","status_checked_at":"2026-02-15T05:26:21.858Z","response_time":118,"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":[],"created_at":"2025-02-06T07:18:16.119Z","updated_at":"2026-02-15T05:31:35.119Z","avatar_url":"https://github.com/GabsEdits.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003ch1\u003eLynx\u003c/h1\u003e\n\u003cp\u003eCreate short links with ease.\u003c/p\u003e\n\u003cp\u003eAPI \u0026 Web App\u003c/p\u003e\n\u003c/div\u003e\n\n## API\n\nThe API is available at `/api/create`.\n\n### How it works\n\nFirst, you will need to provide a URL to shorten. As an example, let's use:\n\n```\nhttps://example.org\n```\n\nNow, you can make a post request to the API. I'll use `curl` for this example:\n\n```bash\ncurl -X POST http://lynx.gxbs.dev/api/create   -H \"Content-Type: application/json\"   -d '{\"originalUrl\": \"https://example.org\"}'\n```\n\nThe response will be a JSON object with the shortened URL:\n\n```json\n{\n  \"shortUrl\": \"http://lynx.gxbs.dev/N7uf\"\n}\n```\n\nThe `N7uf` part is the unique identifier for the URL. It's generated randomly, and it's always 4 characters long.\n\nWith that, you can now access the original URL by visiting the shortened URL.\n\n#### How it stores the data\n\nThis is the fun part, it creates an entry in a JSON file, where the API stores the original URL and the unique identifier. The JSON file is only available for the API, and it's not accessible from the web. That way, the data is securly stored.\n\n### Development\n\nTo run the API locally, you will need to have Deno installed, and the repository cloned.\n\nThe API will automatically start, when you run the following command:\n\n```bash\ndeno task start\n```\n\nThe API will be available at `https://lynx.gxbs.dev`.\n\n## Web App\n\nThe web app is available at `/`.\n\n### How it works\n\nThe web app is a simple form-like style where you can input the URL you want to shorten.\n\nFirst, you will see a welcome screen, where it will tell you about the project, and the first step to shorten a URL.\n\nAfter you input the URL, you will click \"Next\" and it will get you to the next screen, the \"My Short Links\" screen.\n\nThe \"My Short Links\" screen provides a list of all the URLs you have shortened. It will show the original URL, the shortened URL, and a button to remove the URL from the list.\n\nYou will also have the option to shorten another URL, by clicking the \"Add Short Link\" button.\n\nAll the Webapp does is use the API, and save the shortened URLs in the local storage of your browser.\n\n### Development\n\nTo run the web app locally, you will need to have Deno installed, and the repository cloned.\n\nThe web app will automatically start, when you run the following command:\n\n```bash\ndeno task start\n```\n\n### License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE.txt) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabsedits%2Flynx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabsedits%2Flynx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabsedits%2Flynx/lists"}