Hacker News new | ask | show | jobs
by toxmeister 2022 days ago
Thanks for the feedback - very much confirms some of my own issues, but it's also clear that I still have to find a better solution to emphasize some key points of differentiation:

1. thi.ng is definitely not a framework - it is a collection of 260 largely independent libraries & projects built around them 2. Because of #1, there cannot be a single "start here". I was hoping that the interactive tag cloud would make this obvious and also fulfil that "start here" role: Users choose a tag/topic of interest and get a list of relevant projects, each with a readme (and often a list of examples)

To give an example of the problem: Say you're interested in building UIs. There're currently ~20 different projects related to that (of which only a few are related to each other, the rest independent), some are DOM based, some use canvas, others are for OpenGL, Java, Clojure, even others are for baremetal ARM devices. Where's the "start here"? An even larger number of packages are dealing with/providing data structures? What funnel should/could these have?

140 of the ~260 projects are part of the thi.ng/umbrella monorepo and written in TypeScript. These are somewhat more cohesive (in terms of style, approach & infrastructure), but still definitely not a framework. Then, there's also the issue that "monorepo" has multiple interpretations too by now:

1. a large (more or less) single-purpose project consisting of multiple packages/sub-projects 2. a google-style monolithic repository providing a common source of truth for thousands of projects (not all related)

thi.ng/umbrella is somewhere between #1 & #2. thi.ng at large is definitely a #2...

I'd really be interested in hearing how others would approach this from an UX POV, since it is seemingly different to the vast majority of open source offerings, especially in that wider field of "creative computing" (which itself IMHO is a too limiting term for thi.ng - there's a much stronger focus on topics outside what's covered by P5, OF, Cinder, OPENRNDR etc.)

1 comments

Well, I'd start with assuming the majority of visitors will expect a framework, and countering that with explicitly saying THIS IS NOT A FRAMEWORK! very early on on the website. Expectation management will go a long way.

Maybe a search box with "what topic would you like to play around with?", with some optional checkboxes to refine the search query (for example, maybe I want to work in the browser and limit my results to TypeScript and ClojureScript. That would also help a bit with getting the "toolbox" aspect across.

Another idea is to have example projects made with thing (the portfolio part) that also clearly demonstrate which of the libraries were used.

Ok, I think the issue is that people really just don't read anymore :)

First paragraph, second sentence:

"Not a framework, nor bound to any specific use case, environment or even language, it's a vast and mature set of complementing code libraries, which has organically grown to approx. 250 sub-projects"

As for the topic search: The search box says "search by topic" (fuzzy search) - the tags in the tag cloud are all clickable. Is that really not obvious (even though it's also mentioned in the text)? Click on "typescript" to only show typescript projects etc.

As for the example projects. This is also explained in the text. This work is ongoing. There're another 150 or so projects to be added (just my own). For community submissions there is & will be: http://awesome.thi.ng/ (currently just linking to the submission form)

> Ok, I think the issue is that people really just don't read anymore :)

The willingness to invest in reading many paragraphs of fine print (and really, as presented it is fine print) comes after a successful sales-pitch, not before it.

(Also, blaming bad UX on the user won't help in the long run)

> As for the topic search: The search box says "search by topic" (fuzzy search) - the tags in the tag cloud are all clickable. Is that really not obvious (even though it's also mentioned in the text)? Click on "typescript" to only show typescript projects etc.

It's not obvious in terms of telling anyone how this helps them get started. Sure I can search, but what am I searching through?

I didn't mean to imply that your comments are invalid, they're fair enough. Though, this is NOT a sales website, it's a springboard/archive of a body of work, spanning 15-20 years (eventually)...

My sense from some of your above argumentation and issues re: word choices, is that there's somewhat of an implicit expectation of the uniform format of SV-stylee startup landing pages and JS libraries: snappy big letter bullet list of selling points, 5-line code examples and a big fat get started button...

People with such expectations really haven't been the audience so far and likely never will be. Can I/we do a better job to demonstrate use cases and help guiding people discovering relevant projects for their use cases? Yes, definitely, but bandwidth issue, function over time. Though, it's very likely the following will remain an unmovable truth (as explained on the thi.ng/umbrella readme):

> This project is NOT a framework, provides no turn-key, one-size-fits-all approach and instead encourages a mix & match philosophy for various key aspects of application design.

There're many (likely experienced) developers who do very much appreciate such an approach, just as there will be developers for which this means a no-go zone. I think this is fine.

(...and again, I sincerely thank you for your feedback - food for thought!)

> there's somewhat of an implicit expectation of the uniform format of SV-stylee startup landing pages and JS libraries: snappy big letter bullet list of selling points, 5-line code examples and a big fat get started button...

Oh I absolutely do not wish the main take-away from my comments to be that your website should be that! Apologies if that was what it felt like

My point is that even when you do not want to give people what they expect (and you have good reasons for not doing so, as you sum up here), you still need to meet them where their expectations are and lead them out of it. Because that's the best way to make sure that they find their way to where you are coming from and where you want them to end up too.