{"id":46349712,"url":"https://github.com/0x4bs3nt/urlinks","last_synced_at":"2026-03-04T22:32:52.432Z","repository":{"id":332156076,"uuid":"1130714058","full_name":"0x4bs3nt/urlinks","owner":"0x4bs3nt","description":"Free and open-source Link-in-Bio tool, because nobody should pay to put five links in their bio.","archived":false,"fork":false,"pushed_at":"2026-02-17T15:04:55.000Z","size":2461,"stargazers_count":30,"open_issues_count":5,"forks_count":10,"subscribers_count":0,"default_branch":"dev","last_synced_at":"2026-02-17T19:52:01.165Z","etag":null,"topics":["django-rest-framework","free","link-in-bio","links","linktree-alternative","open-source","react","vite"],"latest_commit_sha":null,"homepage":"https://urlinks.app","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/0x4bs3nt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"0x4bs3nt","ko_fi":"4bs3nt"}},"created_at":"2026-01-08T22:45:39.000Z","updated_at":"2026-02-17T15:15:58.000Z","dependencies_parsed_at":"2026-02-17T17:02:37.469Z","dependency_job_id":null,"html_url":"https://github.com/0x4bs3nt/urlinks","commit_stats":null,"previous_names":["0x4bs3nt/freetree","0x4bs3nt/urlinks"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/0x4bs3nt/urlinks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0x4bs3nt%2Furlinks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0x4bs3nt%2Furlinks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0x4bs3nt%2Furlinks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0x4bs3nt%2Furlinks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0x4bs3nt","download_url":"https://codeload.github.com/0x4bs3nt/urlinks/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0x4bs3nt%2Furlinks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30096802,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T21:59:23.547Z","status":"ssl_error","status_checked_at":"2026-03-04T21:57:50.415Z","response_time":59,"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":["django-rest-framework","free","link-in-bio","links","linktree-alternative","open-source","react","vite"],"created_at":"2026-03-04T22:32:52.343Z","updated_at":"2026-03-04T22:32:52.418Z","avatar_url":"https://github.com/0x4bs3nt.png","language":"TypeScript","funding_links":["https://github.com/sponsors/0x4bs3nt","https://ko-fi.com/4bs3nt"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# urlinks\n\n![GitHub License](https://img.shields.io/github/license/0x4bs3nt/urlinks)\n\n\u003cimg width=\"1200\" height=\"400\" alt=\"Cover image\" src=\"https://github.com/user-attachments/assets/4ef50368-439d-4fac-b48d-74e36c561195\" /\u003e\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\nCompletely free and fully open source link-in-bio tool. Like other link-in-bio tools,\nbut everything is free and open source, cause nobody is paying to display 5 links on a website.\n\n\u003cbr /\u003e\n\n\u003e [!WARNING]\n\u003e This project is still under heavy development. Use in production at your own risk.\n\n## Contributing\n\nContributions are always welcome!\n\nSee [CONTRIBUTING.md](https://github.com/0x4bs3nt/urlinks/blob/dev/CONTRIBUTING.md) to get started.\n\nDon't forget to follow the [Code of Conduct](https://github.com/0x4bs3nt/urlinks/blob/dev/CODE_OF_CONDUCT.md)\n\n## Running locally\n\nThis is a Django Rest Framework and Vite project.\n\n### Using Nix (Recommended)\n\nIf you have [Nix](https://nixos.org/) installed with flakes enabled, this is the easiest way to get started:\n\n1. Clone the repository and `cd` into it\n2. Allow direnv (if you use it): `direnv allow`\n   - Or manually enter the shell: `nix develop --impure`\n3. Set up your environment files:\n   ```bash\n   cp backend/.env.example backend/.env\n   cp web/.env.example web/.env\n   ```\n4. Install dependencies:\n   ```bash\n   cd backend \u0026\u0026 uv sync \u0026\u0026 cd ..\n   cd web \u0026\u0026 bun install \u0026\u0026 cd ..\n   ```\n5. Start all services:\n   ```bash\n   pc-up\n   ```\n\nThis will automatically start PostgreSQL, run database initialization, and launch both the backend and frontend servers.\n\n**Available commands:**\n\n- `pc-up` - Start all services (PostgreSQL, Django, Vite)\n- `pc-down` - Stop all services\n- `db-psql` - Connect to the database\n- `db-reset` - Drop and recreate the database\n\n### Manual Setup\n\nIf you're not using Nix, you can set up the project manually:\n\n#### Django / Django Rest Framework\n\nUsing `uv` is recommended for this project.\n\n1. After pulling the project, head over to the `/backend/` directory, and run `uv sync`. This will initialize a virtual environment for the backend and install the dependencies.\n2. Create a PostgreSQL database locally for urlinks.\n3. Fill out the `.env` according to the `.env.example` file, the `.env` should be located at the same place and level as the example one.\n4. Migrate the tables by running `python manage.py migrate`.\n5. Make sure pre commit hooks are installed by running `pre-commit install`.\n6. Start the backend service with `python manage.py runserver`.\n\n#### React / Vite\n\nUsing `bun` is recommended for this project.\n\n1. After pulling the project, head over to the `web` directory and run `bun install`. This will install all dependencies for the project.\n2. Fill out the `.env` according to the `.env.example` file, the `.env` should be located at the same place and level as the example one.\n3. Start the frontend service with `bun dev`.\n\n## Useful URLs\n\nAfter running the project, you can navigate to `/admin` on the backend for the Django admin panel with all registered models.\nYou might need to have a superuser for this, you can create one using `python manage.py createsuperuser`.\n\nYou can also navigate to `/api/docs` on the backend for the automatically generated Swagger UI.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0x4bs3nt%2Furlinks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0x4bs3nt%2Furlinks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0x4bs3nt%2Furlinks/lists"}