No internet connection
  1. Home
  2. Development

Developer Diary, 2019

By KajMagnus @KajMagnus2019-02-21 04:01:31.756Z2019-02-21 04:28:59.731Z

I'm starting a developer diary, inspired by Flarum and their Dev Diary ( — I feel I've been working and working and working without telling people what I'm working with. And things take longer than expected, which have resulted in large slices of silence. I have in mind to update this diary every week or 2nd week.

Feel free to reply to me here. Maybe you have ideas about how things can be done in better ways? or some status update related question?

The most recent status update will be at (or close to) the bottom of the page — you can click "Scroll" (at the lower window border) and then "Bottom" to go there.

  • 14 replies
  1. Progress
  2. KajMagnus @KajMagnus2019-02-21 04:03:49.469Z2019-02-21 04:16:24.959Z

    So here' what I'm doing now: (February 2019)

    • Fixing UX problem: Currently, mainly people used to computers, understand the forum topic list buttons and how they work. I'm making the design less confusing for non-technical people.

    • Fixing onboarding problem: When someone logs in as admin to his/her new Talkyard site, for the first time, s/he tend to not know what to do next. So I've created admin intro tours. A bit like an in-game intro tutorial, if you start playing a new computer strategy game. (There was already an admin intro guide, in text, which people almost never read.)

    • Making Talkyard more contributor friendly: Improved the assets build system: Now Gulp watch no longer errors out and stops working, on certain compilation errors. And some other things.

    • Started using React 16.8 Hooks. Feels great :- )

    1. KajMagnus @KajMagnus2019-03-22 09:09:53.319Z

      Apparently this will be a monthly diary. What I'm doing now, Mars 2019:

      • Still improving the onboarding steps: there're many small different UX problems to fix.
      • Writing code for exporting a JSON dump of one's Talkyard site, and importing to another Talkyard server (e.g. self hosted).
      • Started working on adding custom groups.
      1. KajMagnus @KajMagnus2019-05-13 05:26:53.644Z

        And now, May 2019:

        • Improved the user interface. Previously, people were confused about what were topics, and what were categories. Now, instead, when I do UX testing, people intuitively seem to understand topics vs categories and how to navigate between categories (and even wonder what others got confused about, in the past).
        • Added a nice (I think) "Change" button so changing topic statuses and categories, becomes a quick & UI-discoverable thing to do.
        • Various other UX improvements, plus bug fixes.
        • Continuing with custom groups.
        • Made embedded blog comments login work, also with 3rd party cookies blocked, and macOS and iOS Safari ITP.
        • Seem to have solved a problem with too-many-connections, if one opens many browser tabs.
        1. Thomas Jensen @thomasjsn2019-05-23 06:17:37.880Zreplies toKajMagnus:

          Writing code for exporting a JSON dump of one's Talkyard site, and importing to another Talkyard server (e.g. self hosted).

          Is this implemented? I'm planning on using Talkyard for comments on my webside, but I want to avoid vendor lock-in.

          1. KajMagnus @KajMagnus2019-05-24 13:25:25.326Zreplies tothomasjsn:

            It's implemented however not yet well tested, so it's also disabled currently. I can probably find time to add some tests and rate limits and enable this, so it'll be working & enabled in ... 3 weeks I'd guess.

            1. KajMagnus @KajMagnus2019-06-11 15:21:48.631Zreplies tothomasjsn:

              @thomasjsn Now I'm working with importing & exporting one's site. So one can import Disqus dumps, and export one's comments, for example to avoid lock-in. Here's a tracking issue for that: 3 weeks wasn't a good guess, ... more like 1 or 2 months from now.

              1. S
                @sanford2019-07-21 19:39:45.143Zreplies toKajMagnus:

                Great to hear this is under development. I just switched to (hosted) Talkyard after SolidOpinion “rebranded” and (without warning) deleted all comments.

                Like @thomasjsn I think the ability to restore to a self-hosted install in an emergency is the comfort level we need.

                P.S. To me, lock-in itself is okay – I wouldn’t expect to map TY’s db schema to any arbitrary alternative – Just don’t want to be locked-in to hosted only.

                1. KajMagnus @KajMagnus2019-07-22 10:57:34.195Zreplies tosanford:

                  Hi @sanford, that SolidOpinion thing is surprising. I websearched for "SolidOpinion rebrand" and found your blog post (right?) about that: — So: New funding, wipe user data and rebrand? Why didn't they skip the middle step  o.O

                  The import and export one's Talkyard site (e.g. blog comments), + upserting categories via API, is almost done now. Maybe 1 more week for finishing some "minor" things, and 1 more week for code review. (It's in a Git work-in-progress branch, which I will squash, not in the master branch: as of today, 22 July 2019)

                  1. S
                    @sanford2019-07-22 16:51:33.515Zreplies toKajMagnus:

                    Yep, that’s my blog. I just unpubbed the post for now b/c the SO CTO not-so-mysteriously reached out to me, saying he could get me a copy of my data. Guess complaining really does help sometimes. :)

                    This should be a good real-world workout for the import feature.

                    1. KajMagnus @KajMagnus2019-07-24 13:31:42.080Zreplies tosanford:

                      Ok. Yes this sounds like a good use case for the import feature. I can send you a link to the Disqus importer (after I'm done code reviewing) so you can see how it works. It converts from Disqus XML, to Talkyard JSON — and you'd need to somehow convert from SO's export format (whatever that is?) to Talkyard JSON too. It's a Node.js app.

                      1. KajMagnus @KajMagnus2019-09-10 06:53:54.914Z

                        To do now: (week 37, Sept 2019)

                        • Less friction in "No-login" dialog.
                        • Auto-redirect to SSO page, if login required.
                        • Add "Page to go to after logout" SSO setting.
                        • Disqus import: do consider <id>something</id>.
                        • Experiment with RTL & Hebrew.
                        • Did the [embed-in-iframe + SSO at the same time] fix work?
                        1. T
                          @tobiasBora2019-09-20 00:58:23.146Zreplies toKajMagnus:

                          First, thanks for this great software, I'm discovering it right now and it looks awesome. I'm very interested by the SSO stuff in order to integrate it with other tools easily (what do you plan to support, SAML, CAS...? And does it include LDAP based login as well?), but I'm a bit affraid as I saw somewhere that SSO would be a paid feature. Is it then a closed-source feature (that would be a really sad story), or is it a paid feature only if we host it on your website, but still free of charge if we choose to deplay talkyard on our own servers?
                          Thanks again!

                          1. KajMagnus @KajMagnus2019-09-22 02:13:51.230Zreplies totobiasBora:

                            Hi Tobias, thanks for the kind words. Probably all of SAML, CAS, LDAP / ActiveDirectory. And probably this won't happen the nearest time, like, not in half a year. — Maybe these things would be Business Source licensed (meaning, initially, Source-Available, and then some years later automatically changes to GPL). Likely would be a paid feature, for companies deploying to their own servers. With some kind of exceptions / discounts for not-for-profit organisations and schools, who have unpaid volunteers / students in their SSO systems.

                            1. T
                              @tobiasBora2019-09-24 10:05:46.745Zreplies toKajMagnus:

                              Ok, thanks for your answer. I like this idea of "source-Available moving automatically to GPL" (even if of course I prefer full GPL, but I understand you need to eat ;-) ).