{"id":20842756,"url":"https://github.com/rasben/forlang","last_synced_at":"2025-10-17T11:30:00.503Z","repository":{"id":153764450,"uuid":"627139830","full_name":"rasben/forlang","owner":"rasben","description":"Forlang mindre af for lange sider","archived":false,"fork":false,"pushed_at":"2023-04-27T20:20:19.000Z","size":191,"stargazers_count":0,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-12T10:31:49.457Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://forlang.dk","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/rasben.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}},"created_at":"2023-04-12T21:38:48.000Z","updated_at":"2023-04-27T15:57:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"72a81080-de56-4e92-970f-7da723823dbd","html_url":"https://github.com/rasben/forlang","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rasben/forlang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rasben%2Fforlang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rasben%2Fforlang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rasben%2Fforlang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rasben%2Fforlang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rasben","download_url":"https://codeload.github.com/rasben/forlang/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rasben%2Fforlang/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259860405,"owners_count":22922987,"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":"2024-11-18T01:25:23.416Z","updated_at":"2025-10-17T11:29:55.461Z","avatar_url":"https://github.com/rasben.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Forlang.dk / API\n\n## Getting started locally\n\nYou'll need a `.env` file, with these values (assuming you've set up your own Supabase project)\n\n```\nSUPABASE_URL=\nSUPABASE_ANON_KEY=\nFORM_SECRET=\n```\n\nThe `FORM_SECRET` is necessary if you want to locally test the password functionality.\nYou can leave it empty.\n\nAfter that, you should be able to just run `npm install \u0026\u0026 npm run dev`.\n\n## to-do\n\nThis is very much a work-in-progress.\n\nPull requests are always welcome :)\n\n[See GitHub issues](https://github.com/rasben/forlang/issues) to see the current to-dos and bugs.\n\n## Supabase APIs\n\nSupabase is used for creating API endpoints to create the summaries and AI calls.\n\nWe're doing the logic here, rather than in Svelte, as this opens up for using the service in other Apps too, [like this Zulip Chatbot.](https://github.com/rasben/openai-zulip/blob/main/supabase/functions/readerbot/index.ts)\n\nFor now, the API is not public, but you can deploy the edgefunctions yourself on Supabase. See [/supabase/functions](/supabase/functions) for the code.\n\n### \"reader\" - edge function\n\nUsing [mozilla/readability](https://github.com/mozilla/readability), we parse the supplied website and get a clean article.\n\n### \"enshorter\" - edge function\n\nUsing the output of `reader` we use AI summarization tools to create a summary, to be displayed to the user.\n\n## Forlang.dk website\n\n**Built with**\n\n- [SvelteKit](https://kit.svelte.dev/)\n- [Skeleton.dev](https://www.skeleton.dev/) - a UI kit, built ontop of **Svelte** and **TailwindCSS**\n- [Vercel](https://vercel.com/) for hosting the forlang.dk\n- [ViteJS](https://vitejs.dev/) - local development setup\n- [GitHub](https://media2.giphy.com/media/Ui84ztoe6yVEBZhvnt/giphy.gif?cid=ecf05e475p8dpoklcvda1achqi76fs34sflfzaokidp7eryp\u0026rid=giphy.gif\u0026ct=g) for code-hosting and basic tests using GitHub actions.\n\n## More docs\n\n[SvelteKit README](SVELTE-README.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frasben%2Fforlang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frasben%2Fforlang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frasben%2Fforlang/lists"}