{"id":29104112,"url":"https://github.com/Nutlope/self.so","last_synced_at":"2025-06-29T00:04:10.175Z","repository":{"id":286008866,"uuid":"959352476","full_name":"Nutlope/self.so","owner":"Nutlope","description":"LinkedIn -\u003e personal site generator","archived":false,"fork":false,"pushed_at":"2025-05-27T14:05:03.000Z","size":1648,"stargazers_count":1539,"open_issues_count":14,"forks_count":170,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-06-28T20:05:35.038Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.self.so/","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/Nutlope.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-04-02T16:48:08.000Z","updated_at":"2025-06-28T19:26:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"c6888c6d-738f-4ea2-ba14-59b8e9c5a0bb","html_url":"https://github.com/Nutlope/self.so","commit_stats":null,"previous_names":["nutlope/self.so"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Nutlope/self.so","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nutlope%2Fself.so","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nutlope%2Fself.so/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nutlope%2Fself.so/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nutlope%2Fself.so/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nutlope","download_url":"https://codeload.github.com/Nutlope/self.so/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nutlope%2Fself.so/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262514197,"owners_count":23322696,"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":[],"created_at":"2025-06-29T00:02:06.099Z","updated_at":"2025-06-29T00:04:10.169Z","avatar_url":"https://github.com/Nutlope.png","language":"TypeScript","readme":"\u003ca href=\"https://www.self.so\"\u003e\n  \u003cimg alt=\"Self\" src=\"./public/og.png\"\u003e\n  \u003ch1 align=\"center\"\u003eSelf\u003c/h1\u003e\n\u003c/a\u003e\n\n\u003cp align=\"center\"\u003e\n  An open source personal site builder. Powered by Together.ai.\n\u003c/p\u003e\n\n## Tech stack\n\n- Together.ai for the LLM\n- Vercel's AI SDK as the LLM framework\n- Clerk for authentication\n- Next.js app router\n- Helicone for observability\n- S3 for object storage (PDFs)\n- Upstash redis for my DB\n- Vercel for hosting\n\n## How it works\n\n1. Create an account on the site with Clerk\n2. Upload a PDF which gets uploaded to S3 and does a safety check with Llama Guard\n3. Send the PDF as context to Qwen 2.5 72B to extract out relevant information with structured outputs (JSON mode)\n4. Get all the information \u0026 put it on a dynamic route for the user to be able to view \u0026 publish their site\n\n## Cloning \u0026 running\n\n1. Fork or clone the repo\n2. Create an account at [Together AI](https://togetherai.link) for the LLM\n3. Create an account at [Upstash](https://upstash.com/) for the Redis DB\n4. Create an account at [AWS](https://aws.amazon.com/) for the S3 bucket\n5. Create a `.env` (use the `.example.env` for reference) and replace the API keys\n6. Run `pnpm install` and `pnpm run dev` to install dependencies and run locally\n\n## Future tasks\n\n- [ ] Change llama 3.3 to Qwen 2.5 on the app\n- [ ] Add Helicone for observability\n- [ ] add error logging to make sure to fix any bugs\n- [ ] add ability to get to the \"preview\" page if you have a site already\n- [ ] ability to edit links in the site\n- [ ] ability to edit any section in the site\n- [ ] add themes that you can toggle on (start with ghibli)\n- [ ] Delete previously uploaded resume when we upload a new one\n","funding_links":[],"categories":["前端开发框架及项目","TypeScript"],"sub_categories":["多工具库支持或纯JS"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNutlope%2Fself.so","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNutlope%2Fself.so","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNutlope%2Fself.so/lists"}