10 ms·
Talkyard: Open-Source forum software – a StackOverflow, Reddit, Disqus hybrid
- deleted 7y ago[deleted]
- tyingq 7y agoThe ability to function as either a standalone forum, or as a disqus style comment add on for an existing blog is neat. Is there documentation somewhere? I can see it has some kind of spam protection by skimming the source code, but I don't see any docs.
- jasonv 7y agoI'm in the market for something like this right now... a reddit/discourse hybrid. Will check this out.
- KajMagnus 7y agoThen maybe you'd find this interesting: https://www.talkyard.io/-32/how-hacker-news-can-be-improved-3-things https://www.talkyard.io/-32/how-hacker-news-can-be-improved-... "How Hacker News [or Reddit] can be improved" (If / when you find things that don't work like you want, I'd be happy for any feedback: https://www.talkyard.io/forum/ https://www.talkyard.io/forum/ )
- jasonv 7y agoThanks for the links. Will dig in more. I'm looking to build a forum/discussion for a non-technical audience with some of the policies that HN has implemented well... community will be non-monetized, but it'll be connected to a separate, sponsoring monetization channel. I've not actually spent a lot of time on a Discourse forum, but have liked some of the plug-ins they support, and the wiki topic element, the ability to theme it, and the ability to limit or lock categories based on karma and groups. FYI on where I'm coming from.
- KajMagnus 7y ago> forum/discussion for a non-technical audience How interesting — what would your community be about? (if I may ask) Non-tech people is a long term goal with Talkyard. As of now, though, I'm thinking none of Talkyard or Discourse or Flarum (did you know about Flarum? https://flarum.org https://flarum.org) or Nodebb are particularly easy to use, for non-tech people? E.g. Markdown for formatting text, and navigating between topics and categories, feel confusing to me. > Discourse [...] the plug-ins they support, and the wiki topic element, the ability to theme it, and the ability to limit or lock categories based on karma and groups Some of those things, but not all, work with Talkyard: 1) Wiki topics / categories — yes, by configuring category permissions (see this reply here: https://news.ycombinator.com/item?id=22704726 https://news.ycombinator.com/item?id=22704726 ). 2) Locking categories based on groups and trust levels — yes (see the same link). 3) Plugins: No, unfortunately not. I think there'll will be a WebAssembly based plugin system in the distant future. 4) Theming: Can be done but not so easy — one needs to write CSS code. A theme & colors editor is planned. > liked some of the plug-ins they support I'm curious about which plugins :- )
- vthriller 7y agoRe: finding new comments, I've seen another solution on one of the news site forums that I quite liked: messages are folding individually (i.e. only content is hidden but not the children), and when you enter the thread through the "new" link, only new messages are shown in an unfolded state.
- KajMagnus 7y agoIt'd be interesting to have a look at that news site forum (if you have a link?). > messages are folding individually (i.e. only content is hidden but not the children) Seems like a nice way to give a concise overview of the discussion (who replies to who, how long each thread is). I think it'd be nice to see the first rows of each message, so one knows what it is about (maybe one has forgotten). > only new messages are shown in an unfolded state (So that one directly sees the messages one hasn't read before, and can start reading them effortlessly, right) > only new messages are shown I wonder how they determine which messages are new. Maybe it's [new since one's last visit]? Or messages one hasn't read yet? Not that easy to know which messages the visitor has read, if many messages are visible on the screen at the same time :- )
- vthriller 7y ago> It'd be interesting to have a look at that news site forum (if you have a link?). I doubt that you will find it particularly useful (site in Russian, and I've no idea how reliably that feature works for unregistered users), but anyway: https://www.opennet.ru/forum/ https://www.opennet.ru/forum/ > I wonder how they determine which messages are new. Maybe it's [new since one's last visit]? It is. While not as powerful as status tracking for individual messages (can't skip some messages for future read as easily, can't mark message as unread etc.), it is enough for most users most of the time.
- KajMagnus 7y agoA bunch of interesting things going on at that forum, Opennet.ru/forum :- ) Nice to be able to "preview" a discussion directly on the topic list page, and interesting shortcuts the forum has: Открыть первые 10. — Open the first 10. (I used Google Translate) Открыть последние комментарии. — View recent comments. Раскрыть ответы 1 уровня. — Expand Level 1 Answers. Линейный вид. — Linear view. Sth like the expand-level-1-answers button is something people have suggested for Talkyard too. > It is [...] enough for most users most of the time Ok, thanks, interesting to know
- KajMagnus 7y agoSorry, there is barely any documentation yet. What things would you want me to focus on, when adding documentation? (How would you like to use it / maybe integrate with sth else?)
- tyingq 7y agoNo worries. I was just curious, having done some forum admin in the past...how you approached spam. I would guess a "getting started" doc would be the #1 priority. Especially since the server is Scala, and many may not have worked with a JVM.
- KajMagnus 7y agoGetting started, from the point of view of a site admin / moderator? (Rather than how to install the software? For that I hope the readme file works ok.) Hmm, you mentioned Scala and the JVM — I'm wondering if you have in mind "Getting started" with editing the source code (I'm curious about what forum software you used in the past, as an admin, and how did you like it?)
- AzzieElbab 7y agoPretty awesome, what about APIs? Also there is a problem/bug in creating test sites. "Site name has to start with e2e-test..." but no way to enter that prefix. Might temporarily intentional
- KajMagnus 7y agoI'm making a list of API things to document right now :- ) Any special API things / features you'd be interested in? E.g. API for doing X or integrating with Y? (I've fixed the "e2e-test-" prefix problem, will deploy in a few days. Was unintentional — I would have removed the "Create test site" link instead)
- mavsman 7y agoI believe Discourse can do this as well, as least they did something like it for a while on their blog posts.
- KajMagnus 7y agoYes, look here, CodingHorror's (Jeff Atwood) blog: https://blog.codinghorror.com/the-rise-of-the-electric-scooter/ https://blog.codinghorror.com/the-rise-of-the-electric-scoot... the comments in the comments section, are from Discourse. Here's that Discourse forum: https://discourse.codinghorror.com/t/the-rise-of-the-electric-scooter/7016/40 https://discourse.codinghorror.com/t/the-rise-of-the-electri... A difference between Talkyard and Discourse, for blog comments, is that Talkyard is threaded, like Disqus. So when people start talking about different things related to the blog post — start different "sub topics", then, with Talkyard, each such sub topic gets its own sub thread, ... Whilst with Discourse, all sub topics are mixed together into one single flat layout. And, with Talkyard and Disqus etc, the more interesting (more popular) sub topics are shown first, whilst with Discourse, it's whoever happened to type the first comment, who is shown first.
- bearjaws 7y agoLove the idea overall, at my job we have a total mess of Jira + Gitlab + Confluence + Confluence Questions + Sharepoint + Mattermost. I believe there are efficiency gains to be had from having a unified platform that is self hosted.
- pepemon 7y agoHave a look at JetBrains Space.
- apocalyptic0n3 7y agoSpace looks super promising, but I looked at the EAP in late January and it seemed far from ready for actual use. It seemed like it needed another year in development to flesh everything out. I really hope it comes together like they plan for it to. It'd be nice to switch from our stack of Redmine, 2 instances of GitLab, Slack, and a custom wiki solution.
- KajMagnus 7y agoAnd emails too? :- ) Looking at your list of tools, seems to me GitLab will stay "forever", and... Mattermost is probably always going to be a better chat, I'm thinking maybe a Mattermost + Talkyard (+ Gitlab?) integration somehow, could make sense What about Sharepoint, you use it for document management?
- einpoklum 7y agoThat's not a FOSS StackOverflow, it's a cross between several platforms. For those interested, There's already another initiative for a free, non-commercial, community-governed StackExchange alternative, called codidact: https://codidact.org/ https://codidact.org/ I don't know that it's good (or bad), I just know there's been planning work going on around it, following the recent upheavals and resignations on the StackExchange network.
- closeparen 7y agoMamute is a FOSS StackOverflow: https://www.mamute.org/ https://www.mamute.org/
- kossae 7y agoLooking at that homepage, I have zero idea about what it does or even looks like. It seems to be all mission statement fluff and no description of the actual tool.
- einpoklum 7y agoIt's still in a very early stage. But there's a forum with a bunch of activity, and it sounds like people are writing code.
- aklemm 7y agoAnyone know how the self-hosting experience is? Also whether it has Activity Pub support? If this reaches it's potential, it would be great if it were part of the Fediverse.
- KajMagnus 7y agoFrom what I've heard, people like the auto self-upgrade feature. No Activity Pub support, ... ... It'd be nice if some day in the future, Talkyard could pull in toots (tweets) from Mastodon and show as posts in a discussion forum topic, or as blog post comments (after having been approved by a moderator). What Fediverse software do you use the most? Like the most?
- akvadrako 7y agoIf only it was also a wiki.
- KajMagnus 7y agoIt can work as a wiki, if one edits the per category security settings, which look like so: These people: [All Members v] may do this: : [ ] Edit other people's topics [ ] Edit others' comments [x] Edit one's own stuff [ ] Delete others' topics : : This: ` [All Members v] ` is a choose-group dropdown. There're custom groups and trust level groups, e.g. Full Members and Trusted Members.
- structural 7y agoTwo important aspects of being a wiki replacement, especially at a larger scale: - Group ownership of particular topics or sections of topics. This allows for things like "anyone on the team responsible for project X can edit/moderate things regarding their project" - History of edits made to topics, linked to author. It's incredibly valuable organizationally to be able to see the evolution of knowledge, as well as provides protection from content deletion, both accidental and malicious.
- KajMagnus 7y agoThanks for the feedback! I've never edited a wiki as a member of a large organization. Talkyard does the things you mentioned, although it's not so discoverable: Most people don't think about clicking their way to the Category | Security settings, and looking at the checkboxes, and thinking about how to combine them to create a Wiki. Maybe Wiki features could be listed on the homepage, or at least in a feature matrix. And, when creating a new forum topics category, one could get a question about if it's going to be a Wiki topics category. * * * There's one Wiki feature that Talkyard lacks though: Easy linking between different pages. At Wikipedia, for example, one types: '[[Target page name#Target section|Link text]]' — there's nothing like that in Talkyard. A wiki main page shortcut link somewhere would be nice too (e.g. in the left hand sidebar). (I'm curious about if you use wikis where you are now, which Wiki software, and how do you like it?)
- sandGorgon 7y agowhy does the code use reactjs AND jquery ? https://github.com/debiki/talkyard/blob/master/package.json https://github.com/debiki/talkyard/blob/master/package.json
- alharith 7y agoWhat? Is this really controversial? Sometimes you need a UI library, sometimes you need really quick interactivity to toggle a menu. I use alpine.js on my marketing pages, and I use vue/svelte within sections of my app.
- dceddia 7y agoUsing them on separate pages is fine, but using React and jQuery on the same page is usually not a good idea since React needs to “own” its slice of the DOM and changing things in there with jQuery could cause weird bugs. But anyway, it’s impossible to tell from just the package.json file whether React and jQuery are being used on the same page, or just both used in different parts of the app.
- KajMagnus 7y agoNow jQuery is gone (see my other reply just nearby, in this same comments tree). Actually, when I was starting with React, then for a while Talkyard did use both jQuery and React on the same pages (not a good idea, I agree). I was careful to avoid the bugs you have in mind from happening, so that wasn't a problem, however, loading & using both libs wasn't good for performance — just parsing and executing the 30 kb min.js.gz jQuery bundle took maybe half a second? a second? on mobile phones, back at the time (2.5 years ago).
- alharith 7y agoI was a very early adopter of React at my company (fall 2013) and IIRC, using jQuery with React was still in the docs. edit: and it still is today, just a tad updated: https://reactjs.org/docs/integrating-with-other-libraries.html https://reactjs.org/docs/integrating-with-other-libraries.ht...
- miker64 7y agoGets points with me for honesty in the comparisions page (https://www.talkyard.io/compared-with https://www.talkyard.io/compared-with)
- KajMagnus 7y agoThanks. (I suppose it's still a bit biased — not so easy for me to be completely impartial.) (And also I'm less familiar with those other tools; there're good things about them that I don't know about)
- yamrzou 7y agoLooks great. Does it have multilingual support? A few remarks: - It would be nice to have a button to collapse replies for a given comment, but not the comment itself. - On mobile (andoid), it is bit laggy. Thank you for open-sourcing.
- KajMagnus 7y agoThere's multilingual support yes, and user contributed out-of-date translations to Brazilian Portuguese, Russian and Polish (I keep adding new buttons and labels, and renaming things, so the translations get out-of-date / fallback to English.) There's RTL support but no Arabic / Hebrew / etc translations yet. * * * > It would be nice to have a button to collapse replies for a given comment, but not the comment itself Yes :- ) Do you mean 1) for yourself only, or 2) for all site visitors (so those replies would be collapsed by default, for everyone) ? Actually there was a feature for 2, in the past, but it's disabled now though. The database fields are still there, plan to make that code work again some time in the future. (Then you could manually "curate" a discussion, by collapsing all replies to certain posts, to make the reading experience better for your site visitors.) * * * Can I ask which Android version and phone do you use? — I optimized Talkyard a while ago, by looking in Chrome Dev Tools, but this was on my laptop. What things lag the most? (Some specific button(s) or animation or scrolling or ... ?)
- yamrzou 7y ago> Yes :- ) Do you mean 1) for yourself only, or 2) for all site visitors (so those replies would be collapsed by default, for everyone) ? Rather for myself, but as an account setting so that I don't have to collapse them manually for each thread. Actually it stems from something that bothers me with HN: when there are a lot of nested replies, I lose track of the which comment corresponds to which parent. For example, try reading this thread : https://news.ycombinator.com/item?id=22705222 https://news.ycombinator.com/item?id=22705222, I find it difficult. If there are 5 comments (level 0), that each has 10 replies (level 1) and each one of them has 10 replies (level 2), I wish I was able to collapse level n>0 replies to read the comments first, then be able to unfold level 1 replies for the first comment, while keeping level 2 hidden, and so on. This might not be the ideal solution, maybe simply the way you added arrows to replies would make the above thread easier to read. > What things lag the most? (Some specific button(s) or animation or scrolling or ... ?) I just found it's not specific to android (I'm using Android 10 on a recent galaxy smartphone). Mostly animations. On the desktop version, If I click on the plus button near 'Chat Channels', the login window is show progressively, and the background is dimmed in way that 'feels' slow. Also when I unfold a collapsed reply, the page moves slowly (is there a reason it moves ?). When I click reply, a window is shown, 'loading draft...' appears then disappears quickly and then the preview is highlighted, it somehow feels slow.
- mavsman 7y agoHave you worked on Discourse as well or just borrowing heavily from their styles because you like them?
- KajMagnus 7y ago> Have you worked on Discourse No > because you like them? Yes (the software, ... and the company & founders & employees I like too, & their visions)
- shalabhc 7y agoI've been using the hosted version of this (https://www.talkyard.io https://www.talkyard.io) on a blog for a while and have been very satisfied. I like how the threaded discussion looks, and also like the live preview edit box which works well for long form comments.
- vthriller 7y agoI'm not a fan of the style that threaded discussions have (too much padding, and I'm not sure about arrows too), but I always wanted to experiment with that sort of arrangement of messages, where long chain of one-on-one replies does not get pushed to the right but instead have some sort of linear representation. Will definitely have a closer look on that software. Edit: what this implementation of threads lacks though is an ability to fold all sibling messages before the one that I'm interested in, so that I can have a quick look at the context and avoid a lot of manual scrolling and folding myself. Most implementations (like here on HN for instance) only do folding of child messages, which I personally find a bit less useful.
- KajMagnus 7y ago> too much padding I've been thinking about that — after all, Reddit with its concise design, is pretty nice. I'd want there to be an optional concise theme, so Talkyard could look more like HN or Reddit, for those who prefer that. > fold all sibling messages before the one that I'm interested in Where could be a good place to place a Fold-all-siblings button? There is a Fold-whole-thread button already at the top of each post, to the right of the author name (it looks like: ^ and to un-fold: v ), ... ... but if one has scrolled down a bit, and want to fold all siblings, when the parent post is a bit away, then, could be impractical to have to scroll up to it, and click a button up there? Maybe clicking the arrow could open a power user menu, with "Scroll to parent" as the default, and also a "Collapse siblings" button? Example: If you go here: https://insightful.demo.talkyard.io/-9#post-24 https://insightful.demo.talkyard.io/-9#post-24 and click the arrow to the left, maybe this poweruser popup menu could open? And / or you have other ideas? :- )
- 7y ago
- jimkleiber 7y agoI've been looking for a forum software that would let me have verified identities for my users, either restrict the forum only to verified users or even let users optionally verify themselves, and I haven't found one yet. Have you considered adding a feature like this?
- nerdbaggy 7y agoIf you can write some code discourse can do it. I’ve done it and it’s easy https://meta.discourse.org/t/official-single-sign-on-for-discourse-sso/13045 https://meta.discourse.org/t/official-single-sign-on-for-dis...
- jimkleiber 7y agoNice, I see the link talks about SSO with Discourse but not sure which service you use to do the identity verification. Could you say a little more about how you did it?
- KajMagnus 7y ago@jimkleiber, Discourse, and Talkyard too, also have settings for Require-manual-approval-of-new-users. And restricting signups to whitelisted email domains. How will / do-you-have-in-mind-to verify people's identities? Talkyard (like Discourse) has Single Sign-On via API — so you can have an external piece of software that somehow verifies people's identities, and Single Sign-On connects to Talkyard and upserts those verified users (like @nerdbaggy wrote). With Talkyard, the SSO API looks like this: Your own piece of software sends `POST talkyard-server/-/v0/sso-upsert-user-generate-login-secret` plus JSON for an external user. Then you get back a login secret, and you can redirect the end user's browser to `talkyard-server/-/v0/login-with-secret?oneTimeSecret=...` \* * * @jimkleiber you asked @nerdbaggy: > not sure which service you use to do the identity verification. Could you say a little more about how you did it? I'm thinking @nerdbaggy meant s/he Single Sign-On integrated with Discourse? But maybe didn't actually verify people's identities. Those are two different things, and I'm thinking likely you'll need to come up with your own way to verify people's identities (?)
- xvilka 7y ago> You need about 6 GB RAM for the development environment (whereas the production environment needs about 2 GB). And an internet connection — you'll download perhaps 1 GB Docker images and other files. Scala/JVM - a bit too heavy for something simple as this. The system requirements are ridiculous. Why not implement similar things in Go? Gitea vs GitLab performance and ease of deploy is the best showcase for these tasks.
- KajMagnus 7y ago> Why not implement similar things in Go? Yes that's what I would have done, if I were to start this project now. Well, not Go, but Rust.
- marqpdx 7y agoHave been running Talkyard as a sandbox for a month and it's great. Will you be bringing on other developers, opening up to other contributors? My only worry is the dependence on just you KajMagnus. Amazing job so far!!
- KajMagnus 7y agoThanks :- ) > bringing on other developers, opening up to other contributors? Yes that's the plan, definitely This far, some people have contributed translations. I think right now it's a bit complicated to get started with writing source code and running tests, and there are some refactorings and renames I started but didn't finish yet, making the source code directory structure a bit confusing. (If you have ideas about how / where to find people who might want to try to contribute, it'd be interesting to hear)
- marqpdx 7y agoWould it be possible for you to list out some of the easier tasks that you have on your to-do list, and solicit coders to work on those. i know that bringing in other devs is a huge step, but you've put together a very solid platform, and it'd be great to see it keep growing.
- KajMagnus 7y ago> list out some of the easier tasks that you have on your to-do list I think that's a good idea. Maybe the next steps for finding contributors, isn't to find a place on the Internet where many want-to-be-contibutor-to-something hangs out, but instead have better docs and to-do lists for those who find their way to Talkyard already somehow. > bringing in other devs is a huge step I think the first contribution tasks would be to just find out where they get stuck, when they try to get something done. And then I'll remove such "roadblocks" one at a time, until people can actually get things done. — Maybe this means many small steps :- )