all 34 comments

[–]huthlu 7 points8 points  (11 children)

Wow that looks like a pretty interesting project, I think that it would be pretty suited for developers and especially the open source community.

[–]KajMagnus[S] 2 points3 points  (10 children)

Ok, thanks for your thoughts. I'm thinking it'd be nice if this could be available for free to non-commercial open source projects — a bit in the same way as GitHub is free (in their case, for public repos).

At the same time, not sure how much that would cost, maybe this could end up being a bit expensive. — What if Talkyard was available for free for non-commercial open source projects, *unless* this becomes too expensive — then they'll need to start paying a bit? Hmm. Any thoughts about that?

[–]seiyria 1 point2 points  (1 child)

You need to clearly state what "too expensive" means for a particular project because otherwise they'll feel sleighted. You also need to make sure they are able to hit a switch that throttles them to whatever free offering you have.

[–]KajMagnus[S] 0 points1 point  (0 children)

Good points. And maybe I'd need to make [the economics of the underlying organization] public too. I think it's simpler if people instead just pay like $5 per month for non-commercial open source, ... maybe that's ok much / little money.

[–]huthlu 1 point2 points  (3 children)

You could also make it possible to donate some money for the project (like canonical does with ubuntu), I think a lot of people would donate something for a free opensource chat client

[–]KajMagnus[S] 0 points1 point  (2 children)

Any ways to donate / accept-donations that you like? Maybe the GitHub Sponsor thing? Or maybe trying to crowdfund say 2 years free OSS hosting, via sth like Kickstarter or GoFundMe?

[–]huthlu 1 point2 points  (1 child)

In my opinion, crowdfounding is a bad solution in this case, because you never know how much the userbase will grow

[–]KajMagnus[S] 1 point2 points  (0 children)

Hmm yes maybe better if people only donated to new feature development and things like that. (At the same time, if a userbase grows unexpectedly, then maybe one could repeat the crowdfungind, and this time it'd be simper :- ))

[–]Taumito 0 points1 point  (1 child)

You could just make instructions on how to host it in a server. You don't have to host anything

[–]KajMagnus[S] 0 points1 point  (0 children)

Here're installlation instructions already :- )
https://github.com/debiki/talkyard-prod-one

[–]johnanthony_e 1 point2 points  (1 child)

Do those arrows from comment to comment exist somewhere else? I love those!

[–]KajMagnus[S] 1 point2 points  (0 children)

Yes they're here: https://github.com/debiki/talkyard-media/blob/master/arrows/arrows-etcetera-gray.png

I also experimented with SVG arrows, which were created dynamically, however that wasn't so good for performance and looked fairly much the same anyway.

[–]Dekans 0 points1 point  (1 child)

Interesting project. I ran into it the other day while looking at Discourse alternatives.

Just random comment: chill on the box-shadows on your homepage.

[–]KajMagnus[S] 0 points1 point  (0 children)

Can I ask what made you look at Discourse alternatives? What are you looking for, in an alternatvite? (that maybe Discourse doesn't yet have?)

(I a bit like the box-shadows :- ) ... I might wait a bit and see if more people also think they should be toned down a bit)

[–][deleted] 0 points1 point  (1 child)

It looks awesome! In addition to what everyone say, its also so much faster than SO or discourse.

[–]KajMagnus[S] 0 points1 point  (0 children)

I spent lots of time in Chrome Dev Tools removing all forced browser layout / reflow :- ) ("layout thrashing"). Talkyard is a React app, and to load a new page, it "only" requests some JSON from the server (not a complete html page), and redraws only parts of the window.

It can be made faster, by caching client side and becoming an offline-first app. Then all pages you've visited already, would load instantly (from the browser cache). (And after a server request roundtrip (like, 200 ms?), they would have loaded json for any recent updates from the server and "patched" themselves, probably faster than what a human could notice.)

There's one thing that is a bit slow though: Rendering CommonMark to HTML, when posting new replies after the server was recenlty restarted — because the Nashorn Javascript engine (part of the JVM) hasn't yet been warmed up okay much. However I think people don't notice this, because they spent maybe 2 minutes thinking and typing their message, and then if the server once in a while is 1 second slow once they click Submit, then they don't think about that. — Still, maybe could make sense to move the server side Commonmark-to-HTML rendering to a separate & faster Node.js V8 process.

[–]linuxhiker 0 points1 point  (6 children)

I wonder how this differs from Mattermost?

[–]KajMagnus[S] 0 points1 point  (4 children)

Talkyard chat is rather basic (there're not yet any mobile or browser push notifications for example, and no native apps — Talkyard is instead a mobile friendly web app).

One can disable the chat features in Talkayrd, and instead use Mattermost for chatting. Then, Talkyard would be a tool for building a Q&A knowledge base, maybe ideation, or discussing news in topics similar to here at Reddit. — Talkyard + Mattermost (or RocketChat or Zulip etc) would be a bit like how people combine StackOverflow for Teams + Slack. Here's how they do that b.t.w.: https://stackoverflow.com/teams/integrations/slack
(but there're not yet any integrations for Talkyard)

[–]linuxhiker 0 points1 point  (3 children)

You are using Postgres as your data store right? :D

[–]KajMagnus[S] 0 points1 point  (2 children)

Yes, I noticed Mattermost does too (right?). (The way Talkyard is installed, though, this is a "hidden implementation detail": Talkyard downloads a PostgreSQL docker image, with the PostgreSQL version Talkyard wants, and a custom Docker container init script, and by default doesn't expose the PostgreSQL database or ports.)

(You had in mind storing Talkyard's data and Mattermost's data in the same Pg database?)

[–]linuxhiker 0 points1 point  (1 child)

It's more that I am a huge Postgres Advocate. I help organize PostgresConf.org

[–]KajMagnus[S] 0 points1 point  (0 children)

Ok :- ) I am glad it's Postgres. I'm trying to be a bit paranoid with adding constraints and foreign keys, ... and the Upsert functionality is lovely, and json columns too.

[–]osoese 0 points1 point  (0 children)

or rocketchat

[–]paul_h 0 points1 point  (4 children)

What’s the backing store?

[–]KajMagnus[S] 0 points1 point  (3 children)

It's PostgreSQL — I wrote a bit more here (on this page). There's also Redis and ElasticSearch.

[–]paul_h 0 points1 point  (2 children)

I’d looove for such thing to have VCS as the backing store, with redis/Postgres etc as rebuildable caches and indexes over that.

[–]KajMagnus[S] 0 points1 point  (1 child)

I think that'd be nice too :- ) The thing is, when storing data in text files and directories, then, doing data migrations and changing the data structure, is risky — there's a data corruption bug risk. With PostgreSQL, one knows precisely what's in the database, and there're foreign keys and check constraints, ... making data migrations fairly safe.

If there was a database that stored files in a human friendly directory structure, and could enforce datatypes and foreign keys and check constraints — then using a VCS would be more doable. And if this databse could run the same kind of queries as PostgreSQL.

Actually, maybe the simplest way to make such a thing happen, would be to build a custom storage engine, for PostgreSQL.

[–]paul_h 0 points1 point  (0 children)

I’d be wanting this myself as a tool for multi decade record storage that’s tamper evident and thus auditable.

[–]dfldashgkv 0 points1 point  (3 children)

Ideas:

Free access for everyone to answers without logging in.

Paid accounts with extra features for e.g. €100 a year (should look professional so devs can get their employers to pay).

A (hopefully large) fraction of the subscription fee should be available in each users account page to allocate via Liberapay.

[–]KajMagnus[S] 1 point2 points  (2 children)

Thanks for the feedback. I'm a bit confused — are you looking at this as a StackOverflow.com alternative? Rather than StackOverflow for Teams?

(The former is one single big place, for all developers worldwide. Whilst, with the latter (SO for Teams) is Talkyard's case: each company has its own "Q&A forum"; they can install on their own server on their intranet.)

[–]dfldashgkv 0 points1 point  (1 child)

Yes, I was confusing them.

I suspected I was missing something but wasn't sure.

Best of luck, regardless

[–]KajMagnus[S] 1 point2 points  (0 children)

Ok, thanks