It is impressive how much logic you can fit into so few characters. Even other terse languages (e.g. Haskell) seem wordy in comparison. Of course this is especially true when the problem has a fairly natural array representation, and that might not be true for many real-world problems.
I haven't tried it, but I feel that a literate-programming style might work well for J. The code itself is very dense, so I think it might work well to have a long-ish, plain-text explanatory document with bits of J interspersed throughout it.
Of course, lots of documentation could also help. Maybe a style similar to R/Python notebooks would work.
It turns out that there is a Jupyter notebook implementation for J [1]. I might play with that! I suspect that you're right, notebooks would be a good fit for terse languages.
Most problems are also much simpler, and don't require any heavy one-liners.
I don't think Arthur is as passionate about it as he is k, and he barely has anything posted on it.
It's great in some ways but usually lags behind k for people familiar with array languages.