{"id":13479445,"url":"https://github.com/debiki/talkyard","last_synced_at":"2025-12-16T21:03:17.496Z","repository":{"id":3152293,"uuid":"10563322","full_name":"debiki/talkyard","owner":"debiki","description":"A community discussion platform: Brings together the main features from StackOverflow, Slack, Discourse, Reddit, and Disqus blog comments.","archived":false,"fork":false,"pushed_at":"2025-09-28T10:38:20.000Z","size":53539,"stargazers_count":1788,"open_issues_count":144,"forks_count":129,"subscribers_count":29,"default_branch":"main","last_synced_at":"2025-09-28T12:29:29.960Z","etag":null,"topics":["answers-topics","blog-comments","chat","disqus","embedding-comments","forum","ideation","questions-and-answers","reactjs","reddit","scala","slack","stackoverflow","talkyard"],"latest_commit_sha":null,"homepage":"https://www.talkyard.io","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/debiki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.adoc","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security-tests-readme.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.txt","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-06-08T03:46:12.000Z","updated_at":"2025-09-28T10:38:29.000Z","dependencies_parsed_at":"2023-12-25T17:37:37.031Z","dependency_job_id":"d3c8fc4a-e351-49c8-9f6f-fc9a14957253","html_url":"https://github.com/debiki/talkyard","commit_stats":{"total_commits":3678,"total_committers":7,"mean_commits":525.4285714285714,"dds":0.1579662860250136,"last_synced_commit":"bf65b0ec075acaef620f20cffaf26cbeb8d5e5fe"},"previous_names":[],"tags_count":340,"template":false,"template_full_name":null,"purl":"pkg:github/debiki/talkyard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debiki%2Ftalkyard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debiki%2Ftalkyard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debiki%2Ftalkyard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debiki%2Ftalkyard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/debiki","download_url":"https://codeload.github.com/debiki/talkyard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debiki%2Ftalkyard/sbom","scorecard":{"id":331114,"data":{"date":"2025-08-11","repo":{"name":"github.com/debiki/talkyard","commit":"242b9a254d0a6fe2167532f563cd844c3e153653"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.8,"checks":[{"name":"Maintained","score":10,"reason":"28 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: GNU Affero General Public License v3.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: unclosed here-document 'EOF': images/backup/entrypoint.sh:18","Warn: containerImage not pinned by hash: images/app/Dockerfile.dev:5: pin your Docker image by updating eclipse-temurin:11.0.18_10-jdk-focal to eclipse-temurin:11.0.18_10-jdk-focal@sha256:509043cc38d37a5bd44720b471c38bef40fb34de67c03baaa67a5a9d8cda52a0","Warn: containerImage not pinned by hash: images/app/Dockerfile.prod:2: pin your Docker image by updating eclipse-temurin:11.0.18_10-jdk-focal to eclipse-temurin:11.0.18_10-jdk-focal@sha256:509043cc38d37a5bd44720b471c38bef40fb34de67c03baaa67a5a9d8cda52a0","Warn: containerImage not pinned by hash: images/cache/Dockerfile:5: pin your Docker image by updating redis:4.0.14-alpine to redis:4.0.14-alpine@sha256:aaf7c123077a5e45ab2328b5ef7e201b5720616efac498d55e65a7afbb96ae20","Warn: containerImage not pinned by hash: images/certgen/Dockerfile:6: pin your Docker image by updating alpine:3.7 to alpine:3.7@sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10","Warn: containerImage not pinned by hash: images/fakeweb/Dockerfile:1: pin your Docker image by updating denoland/deno:1.20.1 to denoland/deno:1.20.1@sha256:8ccd586578055cc4b84ba9be9ba8719c3c34c2b402f49ee3b25570ff2409599d","Warn: containerImage not pinned by hash: images/gulp/Dockerfile:15: pin your Docker image by updating node:14.15.1-buster-slim to node:14.15.1-buster-slim@sha256:9e22ef1f3a1bf2fc4d81a76be8d21edb6d504883513b79b340cdf1608a8fedd2","Warn: containerImage not pinned by hash: images/keycloak/Dockerfile:3: pin your Docker image by updating quay.io/keycloak/keycloak:11.0.0 to quay.io/keycloak/keycloak:11.0.0@sha256:5615984873a36b23852d867703ccb4b07bd907a2cdf991d1d7352872340739eb","Warn: containerImage not pinned by hash: images/rdb/Dockerfile:1: pin your Docker image by updating postgres:10.23-alpine to postgres:10.23-alpine@sha256:63cfb6eac6b362c7c994f22c3804c61b31898cf0cb52f8e7e86bd99a244f4366","Warn: containerImage not pinned by hash: images/search/Dockerfile:11: pin your Docker image by updating docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.23 to docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.23@sha256:740c3614289539e9782b8a3c4de5100599bbec669d6c56bc21a76eea661e80a5","Warn: containerImage not pinned by hash: images/web/old/Dockerfile-openresty-1.19.3.1-0-alpine-official:7","Warn: containerImage not pinned by hash: images/web/old/Dockerfile-openresty-1.19.9.1-alpine-3.14-official:7","Warn: containerImage not pinned by hash: images/web/old/Dockerfile.buster-apt-get-old:5: pin your Docker image by updating openresty/openresty:1.15.8.3-2-buster to openresty/openresty:1.15.8.3-2-buster@sha256:0ea8197b00393d91b378bb3ea9429fd55a2f28fa7cc6b50b198c4486cb809410","Warn: containerImage not pinned by hash: images/web/old/Dockerfile.nginx-old:34: pin your Docker image by updating alpine:3.9 to alpine:3.9@sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011","Warn: containerImage not pinned by hash: images/web/openresty.Dockerfile:11","Warn: npmCommand not pinned by hash: s/old/run-all-tests.sh:36","Warn: npmCommand not pinned by hash: s/run-e2e-tests.sh:229","Warn: npmCommand not pinned by hash: s/run-e2e-tests.sh:245","Info:   0 out of  14 containerImage dependencies pinned","Info:   0 out of   3 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":0,"reason":"95 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-wf5p-g6vw-rhxx","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-ghr5-ch3p-vcr6","Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-76p7-773f-r4q5","Warn: Project is vulnerable to: GHSA-pq67-2wwv-3xjx","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-7p7h-4mm5-852v","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-fwr7-v2mv-hh25","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-hm92-vgmw-qfmx","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-phwq-j96m-2c2q","Warn: Project is vulnerable to: GHSA-rv95-896h-c2vc","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j","Warn: Project is vulnerable to: GHSA-xvf7-4v9q-58w6","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-qrpm-p2h7-hrv2","Warn: Project is vulnerable to: GHSA-5rrq-pxf6-6jx5","Warn: Project is vulnerable to: GHSA-8fr3-hfg3-gpgp","Warn: Project is vulnerable to: GHSA-gf8q-jrpm-jvxq","Warn: Project is vulnerable to: GHSA-2r2c-g63r-vccr","Warn: Project is vulnerable to: GHSA-cfm4-qjh2-4765","Warn: Project is vulnerable to: GHSA-x4jg-mjrx-434g","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-fhg7-m89q-25r3","Warn: Project is vulnerable to: GHSA-6fc8-4gx4-v693","Warn: Project is vulnerable to: GHSA-776f-qx25-q3cc","Warn: Project is vulnerable to: GHSA-h6q6-9hqw-rwfv","Warn: Project is vulnerable to: GHSA-5fg8-2547-mr8q","Warn: Project is vulnerable to: GHSA-crh6-fp67-6883","Warn: Project is vulnerable to: GHSA-h452-7996-h45h","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-4q6p-r6v2-jvc5","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-4rq4-32rv-6wp6","Warn: Project is vulnerable to: GHSA-64g7-mvw6-v9qj","Warn: Project is vulnerable to: GHSA-hpx4-r86g-5jrg","Warn: Project is vulnerable to: GHSA-prr3-c3m5-p7q2","Warn: Project is vulnerable to: GHSA-3mgp-fx93-9xv5","Warn: Project is vulnerable to: GHSA-3wqf-4x89-9g79","Warn: Project is vulnerable to: GHSA-4p24-vmcr-4gqj","Warn: Project is vulnerable to: GHSA-7mvr-5x2g-wfc8","Warn: Project is vulnerable to: GHSA-ph58-4vrj-w6hr","Warn: Project is vulnerable to: GHSA-9v3m-8fp8-mj99","Warn: Project is vulnerable to: GHSA-vxmc-5x29-h64v","Warn: Project is vulnerable to: GHSA-9mvj-f7w8-pvh2","Warn: Project is vulnerable to: GHSA-2xv3-h762-ccxv","Warn: Project is vulnerable to: GHSA-897m-rjf5-jp39","Warn: Project is vulnerable to: GHSA-4gmj-3p3h-gm8h","Warn: Project is vulnerable to: GHSA-8r6j-v8pm-fqw3","Warn: Project is vulnerable to: MAL-2023-462","Warn: Project is vulnerable to: GHSA-ww39-953v-wcq6","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-4xc9-xhrj-v574","Warn: Project is vulnerable to: GHSA-x5rq-j2xg-h7qm","Warn: Project is vulnerable to: GHSA-jf85-cpcp-j695","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-8hfj-j24r-96c4","Warn: Project is vulnerable to: GHSA-wc69-rhjr-hc9g","Warn: Project is vulnerable to: GHSA-r683-j2x4-v87g","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-662x-fhqg-9p8v","Warn: Project is vulnerable to: GHSA-394c-5j6w-4xmx","Warn: Project is vulnerable to: GHSA-78cj-fxph-m83p","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T03:39:53.725Z","repository_id":3152293,"created_at":"2025-08-18T03:39:53.725Z","updated_at":"2025-08-18T03:39:53.725Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27771148,"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","status":"online","status_checked_at":"2025-12-16T02:00:10.477Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["answers-topics","blog-comments","chat","disqus","embedding-comments","forum","ideation","questions-and-answers","reactjs","reddit","scala","slack","stackoverflow","talkyard"],"created_at":"2024-07-31T16:02:16.216Z","updated_at":"2025-12-16T21:03:17.469Z","avatar_url":"https://github.com/debiki.png","language":"TypeScript","readme":"\u003c!--\nOld GitHub one-line description:\n- Discussion forums with Question \u0026 Answers and Team Chat features. Plus embedded comments for your blog.\n\nCurrent:\n- Open source StackOverflow, Slack, Discourse, Reddit, Disqus hybrid — for your online community.\n\nOther alternatives?:\n- Community software, brings together the best from StackOverflow + Slack + Reddit + Discourse.\n- Online community software. Find ideas and answers together, and pick the right things\nto do, to change society, or grow your startup.\n--\u003e\n\n\nTalkyard\n=============================\n\n\u003c!-- Community discussion platform, or Structured discussion platform? A/B test?\nOr \"Structured discussions, for your community — Talkyard brings together ...\" ? --\u003e\nA structured discussions platform — brings together the main features from\nStackOverflow, Slack, Discourse, Reddit/HackerNews, and Disqus blog comments.\n\n\u003c!--\nCreate a place to talk,\nwhere your audience find answers to their questions, and discuss ideas.\u003cbr\u003e\nPlace it at `talkyard.Your-Website.org`.\n\n - **Solve problems** step by step, in traditional flat forum topics.\n--\u003e\n\n - **Save time.** People find help \"instantly\", in Question \u0026 Answers topics.\n - **Crowdsource feedback and ideas.** Discuss, upvote, choose the right things to do.\n - **Collaborate,** in team chats.\n - **Talk with your blog readers,** in embedded comments.\n\nFor your co-workers / customers /\nstudents / volunteers /\ncontributors / users.\n\nYou can use Slack and Mattermost etc for day to day teamwork,\ncombined with Talkyard for the more important discussions\nthat you want to find in a nice-to-read format, months and years later.\n\nOr use Talkyard for customer support, or for schools and students helping each other.\n\nHow does Talkyard compare with\nStackOverflow for Teams, Discourse, Slack, Facebook Groups, Disqus?\n— \u003ca href=\"https://business.talkyard.io/compare/\"\u003eFind out here\u003c/a\u003e (\u003csmall\u003eoops, link now fixed. Was browken\u003c/small\u003e)\n\n\nUsing Talkyard\n-----------------------------\n\nThis repo is for **development** of Talkyard. To actually *use* Talkyard:\n\n- Install on your server, see: [talkyard-prod-one](https://github.com/debiki/talkyard-prod-one)\n\n- Use our hosting service: https://www.talkyard.io\n\n\u003c!--\nFor your students / volunteers / colleagues / customers / donors /\nopen source users / city / community. --\u003e\n\n\n\u003c!--\n - **Improve your API docs**, by embedding comments at the end of each docs page, to make it easy for people to ask and tell you if something is unclear.\n   --\u003e\n\n\u003c!-- (The staff configure the topic type just once, in a per category setting.) --\u003e\n\n\u003c!--\nUse Talkyard for your workplace, as a self building FAQ. Or for customer support.\nOr for your teachers and students, to help each other. Or your non-profit volunteers.\nOr an open source project and its users.\nWe'd like to build a tool tha *people who change the world or their neighborhood* can use\nto solve problems and pick the right things to do. That's why we have\nfind-solutions Question-Answers topics, and HackerNews \u0026 Reddit type topics\nwhere good ideas rise to the top.\u003c! - — And you can use this tool,\nfor your workplace and your colleagues \u0026 customers,\nor your non-profit and its volunteers,\nor an open source project and its users,\nor a school and its students, etc.  --\u003e\n\n\u003c!--\nTalkyard (formerly EffectiveDiscussions) is discussion forum software, with chat and question-answers features.\nAnd embedded comments for static websites / blogs.\nInspired by Discourse, Slack, StackOverflow, Reddit and Hacker News, Disqus. --\u003e\n\n\n\u003c!--\n### Project size\n\nIt's sort of possible for one person to understand all of Talkyard —\nas May 2021, `https://github.com/boyter/scc` says\nTalkyard is 140 000  (111 359 + 32 653 = 144 012) lines of code and comments\n(excluding blank lines).   **and** that was with some other changes, different branch.\nPlus about 60 000 (59 425) lines test code.\nServer side code complexity: 5538, client side (a React.js web app): 8478.\n\nscc modules/ed-core/src  modules/ty-dao-rdb/src/ client/app-* client/embedded-comments/  client/serviceworker/  client/*.ts  app/  s/  Makefile to-talkyard/src/  gulpfile.js images/web/ty-lua/  images/web/*.conf  images/app/Dockerfile.*  images/rdb/\n\nscc tests/\n\n--\u003e\n\n\n\u003c!-- Some Features -----------\n- Avoid mistakes: See if people disagree.\n- Anonymous questions: So people dare to ask embarassing questions, or post crazy creative ideas.\n- \n- \n--\u003e\n\n\nDeveloping Talkyard\n-----------------------------\n\nRead about how to start a development build of Talkyard:\n[docs/starting-talkyard.md](docs/starting-talkyard.md).\n\nAnd how to edit the source code and see the changes:\n[docs/developing-talkyard.md](docs/developing-talkyard.md)\n\nYou'll find **Docker image** build files in: \u003ccode\u003e./images/\u003ci\u003eimage-name\u003c/i\u003e/\u003c/code\u003e\n\nYou can build your own images:\n[docs/building-images.md](docs/building-images.md)\n\n\n\nGetting help\n-----------------------------\n\n[**Support forum here**](https://www.talkyard.io/forum/latest/support) (\u0026 live \"demo\"), at Talkyard\u003ci\u003e\u003c/i\u003e.io — and report bugs there too.\n\nAlso see these troubleshooting [tips.md](./docs/tips.md).\n\n\n\nContributing\n-----------------------------\n\nSee: [CONTRIBUTING.adoc](./CONTRIBUTING.adoc). There's a CLA (Contributor License Agreement) to sign.\n\n\n\nTechnology\n-----------------------------\n\n- Client: React.js, TypeScript, Webdriver.io.\n- Server: Scala and Play Framework. OpenResty, some Lua. React.js in Java's Nashorn Javascript engine.\n- Databases: PostgreSQL, Redis, ElasticSearch.\n\n\n\u003chr\u003e\n\nScreenshots\n-----------\n\n### Question-Answers:\n\nThe good answers surface to the top.\n\n![Question and Answers](https://raw.githubusercontent.com/debiki/talkyard-media/bf78d26ec3f4da976d9c694a660d40b718d86043/for-docs/2018-08-19-question-ex.jpeg \"Question-Answers\")\n\u003c!--\n![Question and Answers](/images/web/ty-media/for-docs/2018-08-19-question-ex.jpeg?raw=true \"Question-Answers\") --\u003e\n\n\u003c!--\n![how-work-from-home-vpn-broken-borders](https://user-images.githubusercontent.com/7477359/44306101-0041eb80-a388-11e8-92e8-b8d417c47139.jpg)\n--\u003e\n\n### Avoid mistakes\n\nSee if others disagree with something, so you can avoid following the wrong advice.\n\n\u003cbr\u003e\n\n![Avoid mistakes](https://tyw-49f8.kxcdn.com/-/u/e7ef490a72/2/m/nu/zecljq7vwtuyxqfabsjwqzg6bfmyvr.jpg)\n\n\u003cbr\u003e\n\n\n### Recent replies — find them:\n\nYou leave for lunch, or go home over the night — and return to a Question-Answers topic the next day. Did someone post more replies, when you were away? You want to find and read?\n\nYou can directly find the most recent answers and replies: Open the sidebar, click the Recent tab, and find the most recent replies, click to scroll.\n\n(But at StackOverflow, Reddit, HackerNews etc, it's hard to find them (since the discussions are threaded). You need to carefully scan the whole discussion from top to bottom.)\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n![Recent replies](https://raw.githubusercontent.com/debiki/talkyard-media/bf78d26ec3f4da976d9c694a660d40b718d86043/for-docs/2019-08-10-recent-replies-ex-anon-arw.jpg \"Recent replies\")\n\n\u003c!--\n![Recent replies](/images/web/ty-media/for-docs/2019-08-10--recent-replies-ex-anon-arw.jpg?raw=true \"Recent replies\") --\u003e\n\n\u003cbr\u003e\n\n### Topic list:\n\n\u003c!--\n![topic-list-borders](https://user-images.githubusercontent.com/7477359/44306130-a3930080-a388-11e8-9cbc-e569f5ddb7a1.jpg)\n the old demo forum looks better? so use instead.  --\u003e\n\n![ideas-topics](https://raw.githubusercontent.com/debiki/talkyard-media/bf78d26ec3f4da976d9c694a660d40b718d86043/for-docs/2019-08-10-idea-topics-list-ex.jpg \"Topics list\")\n\u003c!--\n![ideas-topics](/images/web/ty-media/for-docs/2019-08-10-idea-topics-list-ex.jpg?raw=true \"Topics list\")\n\n![ed-demo-forum-index](https://cloud.githubusercontent.com/assets/7477359/19650764/bb3a1450-9a0a-11e6-884d-d23c93476db3.jpg) --\u003e\n\n\u003cbr\u003e\n\n### Chat:\n\nNotifications via email, as of now. Some time later, there'll be a PWA mobile app with push notifications.\n\n\u003cbr\u003e\n\n\u003c!--\nCurrently, Talkyard is a mobile friendly web app.\nWithin half a year or a year (today is August 2018),\nthe plan is that there'll be a white labelled mobile app.\nMeaning, people will be able to install your community, on their mobile phones,\nas a separate app with your custom icon.\nPush notifications for Android\n(however, initially not for iPhone — iPhone currently cannot do PWA mobile app push notifications).\n--\u003e\n\n![chat-topic](https://raw.githubusercontent.com/debiki/talkyard-media/bf78d26ec3f4da976d9c694a660d40b718d86043/for-docs/2017-09-12-chat-ex.jpeg \"A chat channel\")\n\n\u003c!--\n![chat-topic](/images/web/ty-media/for-docs/2017-09-12-chat-ex.jpeg?raw=true \"A chat channel\")\n--\u003e\n\n\u003c!--\n![ed-e2e-chat-owen-maria](https://cloud.githubusercontent.com/assets/7477359/19674424/608c49aa-9a88-11e6-8ccd-c2e7ceebd0c2.jpg)\n--\u003e\n\n\u003cbr\u003e\n\u003c!--\n![Q\u0026A about how to wake up on time](https://user-images.githubusercontent.com/7477359/39368115-0549fad0-4a39-11e8-9bba-703d595d2b96.jpg)\n--\u003e\n\u003c!--\nHacker News / Reddit style discussion:\n![ed-discussion-semantics-of-upvote-2013](https://cloud.githubusercontent.com/assets/7477359/19650769/bea906aa-9a0a-11e6-8ea2-9ad771981f46.jpg)\n--\u003e\n\n\u003c!--\n**Admin-getting-started guide:**\n\n![ed-admin-intro-guide](https://cloud.githubusercontent.com/assets/7477359/19679591/99a12098-9aa2-11e6-8b65-705c2548cbea.jpg)\n\u003cbr\u003e\n\n### Users online:\n\n![ed-online-users](https://cloud.githubusercontent.com/assets/7477359/19680424/f0353f86-9aa5-11e6-84d9-94d46f228b93.jpg)\n\n\u003cbr\u003e\n--\u003e\n\n### Blog comments:\n\nLike Disqus — but lightweight, no ads, no tracking. Configure in the Admin Area, the Settings tab, the Embedded Comments sub tab. — Read more about blog comments, and an optional hosting service, here: https://www.talkyard.io/blog-comments\n\nThere's a Disqus importer — talk with us [in the forum](https://www.talkyard.io/forum/) if you want to migrate from Disqus to Talkyard.\n\n\u003cbr\u003e\n\n![blog comments](https://raw.githubusercontent.com/debiki/talkyard-media/bf78d26ec3f4da976d9c694a660d40b718d86043/for-docs/2019-02-21-blog-comments-ex-anon.jpg \"Blog comments\")\n\u003c!--\n![blog comments](/images/web/ty-media/for-docs/2019-02-21-blog-comments-ex-anon.jpg?raw=true \"Blog comments\")\n--\u003e\n\u003cbr\u003e\n\n### Embarrassing questions, creative ideas:\n\nLet your students ask anonymous questions. Maybe they feel ashamed for not knowing?\n— Or let your co-workers submit ideas and feedback, anonymously.\nMaybe they feel worried their ideas has crossed the border from Creative to Crazy?\nThey can un-anonymize themselves later if they want to (per page).\n(Anonymous posting first needs to be enabled, by admins.\nHere you can read more: https://www.talkyard.io/-239/is-there-anonymous-messages-support-for-the-full-talkyard )\n\nAnonymous posts has been implemented, but not code reviewed and merged.\n\n\u003cbr\u003e\n\n![Post anonymously](https://raw.githubusercontent.com/debiki/talkyard-media/bf78d26ec3f4da976d9c694a660d40b718d86043/for-docs/2019-08-10-editor-post-anonymously-ex-arw.jpg \"Post anonymously\")\n\n\u003chr\u003e\n\u003cbr\u003e\n\n\n\nOld Code\n-----------------------------\n\nOld code from before January 2015 is available here:\nhttps://github.com/debiki/debiki-server-old.\nThat repo, squashed, is in this repo.\n\n\n\nLicense\n-----------------------------\n\nCopyright (c) 2010-2025 Kaj Magnus Lindberg and contributors.\n\nTalkyard is licensed under AGPLv3 or later, see LICENSE.txt.\n\n\u003c!-- Later, add this, but first ask someone if the wording is ok:\nStarting on 2032-01-01, this specific version of Talkyard (see ./version.txt)\nis also licensed under GPLv2 or later. That is, AGPLv3+ until year 2032, thereafter\ndual licensed under AGPLv3+ and GPLv2+.\n\nNote:\n  - We try to bump the above GPLv2 date each year, so it's 6–7 years in the future.\n  - After the above GPLv2+ date, you can *not* redistribute Talkyard under GPLv2\n    — Talkyard includes Apache2 software and Apache2 is incompatible with GPLv2.\n    You can, however, after the GPLv2+ date, redistribute Talkyard under GPLv3+.\n--\u003e\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nabove-mentioned licence texts for more details.\n\n\nvim: list et ts=2 sw=2 tw=0 fo=r\n","funding_links":[],"categories":["TypeScript","scala","Apps"],"sub_categories":["Communication"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebiki%2Ftalkyard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdebiki%2Ftalkyard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebiki%2Ftalkyard/lists"}