{"id":16579433,"url":"https://github.com/brianpeiris/skewlup","last_synced_at":"2026-04-21T19:04:53.029Z","repository":{"id":153901646,"uuid":"628772919","full_name":"brianpeiris/skewlup","owner":"brianpeiris","description":"Skewlup is a GPT experiment that aims to provide a directory of local resources for cities around the world.","archived":false,"fork":false,"pushed_at":"2023-06-26T02:50:02.000Z","size":152,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-24T09:17:52.806Z","etag":null,"topics":["gpt","openai","social-good","social-impact","tech-for-good"],"latest_commit_sha":null,"homepage":"https://skewlup.org","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/brianpeiris.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}},"created_at":"2023-04-17T00:22:06.000Z","updated_at":"2023-12-28T12:33:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"7280511f-1b00-439b-afd6-267a5fe9b090","html_url":"https://github.com/brianpeiris/skewlup","commit_stats":{"total_commits":36,"total_committers":1,"mean_commits":36.0,"dds":0.0,"last_synced_commit":"2ba5e048ff1645c426ca403cafc2efd43dcdfb7f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianpeiris%2Fskewlup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianpeiris%2Fskewlup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianpeiris%2Fskewlup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianpeiris%2Fskewlup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brianpeiris","download_url":"https://codeload.github.com/brianpeiris/skewlup/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242117659,"owners_count":20074436,"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":["gpt","openai","social-good","social-impact","tech-for-good"],"created_at":"2024-10-11T22:17:59.582Z","updated_at":"2026-04-21T19:04:52.994Z","avatar_url":"https://github.com/brianpeiris.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Skewlup\n\n[Skewlup](https://skewlup.org) is a GPT experiment that aims to provide a directory of local resources for cities around the world.\n\n![Screenshot from 2023-04-21 13-46-17](https://user-images.githubusercontent.com/79419/233701758-883f7512-d3d9-4cdf-85db-f181b5ef17b2.png)\n\n## How it works\n\nContent for Skewlup is produced with the following workflow:\n\n1. A human chooses a topic of interest for a region. For example \"Math lessons located in Sao Paulo Brazil\".\n2. A conventional search engine is used to find results for the topic.\n3. GPT is prompted to confirm that the content of each result matches the intended query. The prompt is also used to filter out indirect results like news articles or \"top N\" lists. The result must be a direct provider of the resource.\n4. For the valid results, GPT is prompted to summarize the content, and categorize it using tags. GPT is instructed to answer with a specific JSON structure.\n5. The summaries, tags and links are stored. A thumbnail is captured for the result, and the results are presented to visitors in an organized directory.\n\n## Development\n\nA docker-compose configuration encapsulates the application's dev and prod environments, including postgres and redis dependencies.\nThe application is implemented using next.js and sequelize. A job and worker system is implemented with bullmq. Web content is scraped and captured with puppeteer.\n\nRequired OpenAI and Bing API keys and configurations are specified in the `.env` file. `.env.sample` should be used as a template.\n\n```console\ndocker compose up\n./scripts/docker-compose-dev.sh\n./scripts/run.sh init-db\n./scripts/run.sh add-place brazil sao-paulo\n./scripts/run.sh job-runner brazil sao-paulo math lessons\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianpeiris%2Fskewlup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrianpeiris%2Fskewlup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianpeiris%2Fskewlup/lists"}