{"id":30445034,"url":"https://github.com/grayzing/lemma","last_synced_at":"2026-05-15T20:31:31.400Z","repository":{"id":250505411,"uuid":"834649448","full_name":"grayzing/lemma","owner":"grayzing","description":"A federated alternative to Facebook Marketplace.","archived":false,"fork":false,"pushed_at":"2024-08-17T20:51:58.000Z","size":413,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-19T17:30:54.367Z","etag":null,"topics":["activitypub","federated","fediverse","foss","marketplace","svelte","sveltekit"],"latest_commit_sha":null,"homepage":"https://lemma-swart.vercel.app/","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grayzing.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}},"created_at":"2024-07-27T23:32:41.000Z","updated_at":"2024-08-17T20:52:00.000Z","dependencies_parsed_at":"2024-08-17T21:52:57.415Z","dependency_job_id":null,"html_url":"https://github.com/grayzing/lemma","commit_stats":{"total_commits":39,"total_committers":2,"mean_commits":19.5,"dds":0.05128205128205132,"last_synced_commit":"caad70f8ed98930662645359884fff5b77aea995"},"previous_names":["letlovewin/lemma","eskaliert680/lemma","graylikeblackandwhite/lemma","grayzing/lemma"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/grayzing/lemma","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grayzing%2Flemma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grayzing%2Flemma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grayzing%2Flemma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grayzing%2Flemma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grayzing","download_url":"https://codeload.github.com/grayzing/lemma/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grayzing%2Flemma/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33078898,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T20:25:35.270Z","status":"ssl_error","status_checked_at":"2026-05-15T20:25:34.732Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["activitypub","federated","fediverse","foss","marketplace","svelte","sveltekit"],"created_at":"2025-08-23T11:00:38.583Z","updated_at":"2026-05-15T20:31:31.394Z","avatar_url":"https://github.com/grayzing.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n![Logo](https://github.com/letlovewin/lemma/blob/main/static/favicon.png?raw=true)\n\n\n# lemma\n\nA federated alternative to Facebook Marketplace.\n\n\n## Deployment (Work In Progress)\n\nFirst, clone the repository\n\n```bash\ngit clone https://github.com/letlovewin/lemma.git\ncd lemma\n```\n\nNext, install all dependencies\n```bash\nnpm install\n```\n\nNext, you have to set up a [Supabase](https://supabase.com) account, and create a new project. From here, you should have a `SUPABASE_URL`, a `SUPABASE_KEY`, and a `SERVICE_ROLE_KEY`. If you don't see `SERVICE_ROLE_KEY`, go to your project settings -\u003e API, and copy the `service_role` field.\n\nYou have to set up your Supabase database as well. First, run\n\n```SQL\ncreate table public.profiles (\n  id uuid not null references auth.users on delete cascade,\n  display_name text,\n  bio text,\n\n  primary key (id)\n);\n\nalter table public.profiles enable row level security;\n```\n\nin the SQL editor. After that's finished, run\n\n```SQL\n-- inserts a row into public.profiles\ncreate function public.handle_new_user()\nreturns trigger\nlanguage plpgsql\nsecurity definer set search_path = ''\nas $$\nbegin\n  insert into public.profiles (id, display_name, bio)\n  values (new.id, new.raw_user_meta_data -\u003e\u003e 'display_name', new.raw_app_meta_data -\u003e\u003e 'bio');\n  return new;\nend;\n$$;\n\n-- trigger the function every time a user is created\ncreate trigger on_auth_user_created\n  after insert on auth.users\n  for each row execute procedure public.handle_new_user();\n```\nNow, back to our `lemma/` directory. Create a .env.local file, and populate it with your `SUPABASE_URL` and `SUPABASE_KEY`:\n\n```bash\ntouch .env.local\necho VITE_SUPABASE_URL=\"your SUPABASE_URL here\" \u003e\u003e .env.local\necho VITE_SUPABASE_KEY=\"your SUPABASE_KEY here\" \u003e\u003e .env.local\necho SERVICE_ROLE_KEY=\"your SERVICE_ROLE_KEY here\" \u003e\u003e .env.local\n```\n\nFrom here, there are two options: hosting the website using your own machinery, or deploying the website using [Vercel](https://vercel.com). I'll give a tutorial for both.\n\n### Vercel\nCreate an account on [Vercel](https://vercel.com). Then go back to your `lemma/` directory, and run \n\n```bash\nnpm install vercel-cli\nvercel login\n```\n\nand follow the prompt.\n\nNext, create a new Vercel project, and name it however you want. Create two new environment variables in the project.\n\n`VITE_SUPABASE_URL` should be your actual Supabase URL. `VITE_SUPABASE_KEY` should be your actual Supabase key. `SERVICE_ROLE_KEY` should be your service_role key.\n\nNow that that's finished, run\n\n```bash\nvercel link\n```\nand follow the instructions to link `lemma/` to your project on Vercel.\n\nAfter you've finished that, run\n\n```bash\nvercel deploy\n```\n\nto deploy your instance. \n\n**NOTE**: This is NOT complete. I am writing this tutorial alongside whatever development I'm doing. At this point, this is what you have to do if you want to host a clone of this website, sans the ability to post, interact with other users, or even be connected to the Fediverse. Once I implement those features in this repo, I'll add more instructions for that.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrayzing%2Flemma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrayzing%2Flemma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrayzing%2Flemma/lists"}