
Jeff Atwood on growing Discourse - ChanningAllen
https://www.indiehackers.com/businesses/discourse
======
gue5t
For anyone who has to deal with the pain of reading Discourse message threads,
you can append ?_escaped_fragment_ to the URI to get a JS-free page that loads
completely immediately and doesn't unload when you scroll.

I have no idea why this user-hostile functionality is present by default. It
breaks ctrl+F, ctrl+S, the scrollbar, and loads of other browser
functionality.

~~~
dfabulich
All forums with large threads have to paginate for performance, including HN.
Discourse's infini-scroll feature is best understood as "automatic page
turning."

In a paginated thread, you can only Ctrl-F for stuff on the current page, and
Discourse is no different; it's no more "broken" than a traditional paginated
forum with manual page turning. Similarly, you can only Ctrl-S to save the
current page, not the whole thread.

Many forums have a "search in this thread" feature, and Discourse does, too.
In fact, if you click in the page and press Ctrl-F, it intercepts the
keystroke and shows Discourse's "search in thread" search box; some forums
with manual page turning do the same thing.

Some people seem to get really pissed off at automatic page turning; I kinda
understand why, but there are clear arguments for automatic page turning. Why
make the user click "Next Page" when the software could do it for you? You'll
notice that all of the most popular feed-based sites (Facebook, Twitter,
Pinterest, Instagram) use automatic page turning, too, and that's because
experiments show that people engage more when automatic page turning is
enabled.

None of this will make you any happier with APT, but hopefully it will annoy
you slightly less to know that this is a data-driven decision and not done
specifically to annoy you.

~~~
gue5t
The tone of your message feels rather condescending, which is frustrating in
the face of software usability issues. I think that in general it's a good
idea to treat people's complaints as well-founded, even if they don't know
exactly how to describe the underlying problem.

I don't think it's the case that I and other users don't know what we want. I
do believe that "people engage more" on infinite-scroll-style pages, but I
have no reason to believe this makes them happier or more productive. On the
other hand, the jerkiness/glitches, breakage of common navigational tools, and
slowness of Discourse pages are very annoying.

I should have been more descriptive than simply saying "broken", but I figured
I was probably preaching to the choir and so I didn't go into details. In
particular, it becomes much harder to use tools like ctrl+F and ctrl+S because
the page content is dynamic and after scrolling down a little there's no way
to easily tell which bits of the page are still loaded and which aren't.
ctrl+F is useful not just for initially locating a key phrase, but also for
jumping between bits of the page you've already read for comparison. In a
manually-paginated thread this works fine, and I know for sure whether posts
are on the same page (where I can use ctrl+F) or different pages (which I can
open in separate tabs).

Basically, it becomes very difficult for a user to maintain an accurate mental
model of the page content that they're using a browser to interact with. This
is quite different from static pagination systems, where scrolling never
changes page contents.

The scrollbar really is _broken_ , because users expect its size to show the
length of the page, which no longer holds for Discourse or other infinite-
scroll pages. The fact that Discourse unloads earlier content makes this even
worse, as you can't even remember an old scrollbar position to scroll to
something you just saw or scroll halfway to the top to go halfway to the start
of the page. Yes, Discourse does provide an alternative way to see some of
this information, but user interface changes (having to move from the native
scrollbar to the Discourse summary box) are frustrating for users: they break
muscle memory and require learning a new interface, since they never work
quite the same as the other one.

It makes me no less upset to hear that data was involved in the decision to
ignore users' needs. I don't think it's _intentional_ to annoy users, but
hearing that there was some level of analysis involved rather than mere
accident is upsetting because it shows the slight to be _willful_. I don't
think websites should push worsened usability on their users in the name of
driving up engagement metrics.

I think the arguments about automatic vs. manual page turning mostly come down
to questions of control and implementation quality: users want to be in
control (because the computer is a tool, and tools must be predictable), and
it's difficult to avoid bugs when implementing automatic page turning on the
Web. I'm not sure exactly why the latter is the case, but I've never seen a
system without glitches in the history list, visual glitches, or slowness.

~~~
dvt
Not sure why you're getting downvoted. Infinite-scroll pages are pretty well-
documented to be shit. Even Facebook crashes or slows down to a crawl if I
scroll enough (lol?). There might be a good idea somewhere in there, but
current implementations fall short.

~~~
jrochkind1
You know what just occured to me -- Slack is effectively 'inifinite scroll'
too (no pagination), of quite a bitof content sometimes... and I don't think
people complain much about this aspect of Slack. Wonder how they managed to
get it right.

~~~
naiyt
Because Slack is a chat system and you typically just care about the most
recent messages (which are always displayed). I find scrolling back in Slack
to actually be very irritating, when I have to do it. It's slow and the view
jumps around whenever the next page loads in. (The UX on the search
functionality is also fairly lacking.)

~~~
codinghorror
Yeah, people basically don't care at all about chat history. Chat is short-
term memory; forgetting is a feature.

------
shubhamjain
I have been following Jeff's blog since a little after I started programming.
I have seen his articles—especially those having strong opinions—criticised
vehemently. Jeff even wrote post about people who email him how they hate his
blog. But, I find it delightfully amazing that he stuck to his programming
roots and found two successful ventures nonetheless.

I think he's a great example of power of doing things. He didn't start a blog
with any objective other than just to write. And he wrote prolifically. If you
follow his blog posts, you'll realise that he's rarely more than a person who
loves computers. But, because he _did_ things without dissuasion, he kept
improving, until the success started building on his efforts.

~~~
Clanan
There's a great early SO podcast with Jeff A. and Joel Spolsky (Fogcreek)
where they argue about whether developers should know C and/or C++. Joel is
rigidly in favor of it, whereas Jeff thinks it's pointless. It's a great back-
and-forth, hearing these two successful guys scratching their heads at each
other's comments and stubbornness.

~~~
kamikaz1k
Is this the one you were referring to?
[https://stackoverflow.fogbugz.com/default.asp?W87857](https://stackoverflow.fogbugz.com/default.asp?W87857)

------
fiatjaf
Discourse is so heavy and error-prone for the simple task it executes that I
imagine anyone wanting to run it reliably must hire the Discourse team for a
ton of money.

So probably what this article is saying is that the key to make money is to
build yourself a name, then use it to sell crappy software and sell the
support.

~~~
markplindsay
I had a lot of trouble keeping Discourse running on my own. There are a lot of
moving parts and a ton of configuration to keep track of. Making changes or
even updating the instance were tasks I dreaded because of the likelihood
something would break. It requires a lot of system resources. I like Docker a
lot in many situations, but with Discourse it only seemed to reduce visibility
into the problems I was having.

I have to say the folks on meta.discourse were helpful though.

In the end, the users decided—I ended up integrating a Mailman 3 server with
the website, and we're in the process of switching over to it. The users
preferred the simplicity of LISTSERV-style mailing lists over a web forum.
This probably would've happened no matter the choice of forum software, but I
can't help but think Discourse's unpleasant UX played a part in them reaching
that consensus.

~~~
Macha
You must have a fairly techie and older audience. I have to say as harsh as
I've been on Discourse in this thread, I'd still take it over listserv.

~~~
markplindsay
Yes, academics who (generally) started their careers in the 1990s and are used
to listserv-style communication. They kept wanting to interact with Discourse
through email, but it wasn't the experience they were looking for.

------
gsylvie
The developer community area of Atlassian switched to Discourse recently. I
really like it!

[https://community.developer.atlassian.com/](https://community.developer.atlassian.com/)

I didn't really quite grasp the full picture of what was going on before.
Seemed to be a mix of google groups and confluence. This is much better. Also
interesting to see Atlassian walking away from their dog food in this case.

~~~
CM30
A cynic will say that if Atlassian walking away from their 'dog food' made
their online community easier to use, maybe they should also take a few
lessons for the likes of JIRA as well. Because as someone who's used the
latter... well, they seem pretty bad at making their software easy to
understand or use.

------
xenihn
I really dislike using Discourse for some reason. The concept seems really
good, but using it just makes me unhappy. I just don't find it to be a good
user experience.

~~~
Kenji
There is no reason why such a simple interface cannot be native. The fact that
you drag along the entire browser engine with HTML and CSS just boggles my
mind. If a message cannot be sent because of minor latency problems, the
discord client acts up as if a solar storm destroyed much of today's
electronics.

EDIT: Oh, how awkward. Yes, I was thinking of Discord.

~~~
pkd
You are probably confusing Discord with Discourse.

------
klinskyc
Doesn't raising seed-funding stop you from being an "Indie Hacker"?

~~~
csallen
It doesn't. I know it's broad, but my definition[0] of an "indie hacker" is
anyone who's making money from customers rather than an employer. I've never
discriminated based on funding, which is why I've had the "bootstrapped vs
raised money" filter[1] on the homepage from the beginning.

Personally, I'm partial to early-stage tech bootstrappers, which is one reason
why I've interviewed so many people from that niche. It's just a lot more near
and dear to my heart, and those are the people who tend to struggle to get
coverage elsewhere.

But it's worth branching out, because other entrepreneurs have valuable
experiences to share, too. And to the extent that we can get even well-funded
companies to share their revenue numbers and behind-the-scenes strategies,
that's a good thing for all of us imo.

[0] [https://www.indiehackers.com/about](https://www.indiehackers.com/about)

[1]
[https://media.giphy.com/media/l4FGycUhVUpsBuoqQ/source.mp4](https://media.giphy.com/media/l4FGycUhVUpsBuoqQ/source.mp4)

~~~
jrochkind1
> It doesn't. I know it's broad, but my definition[0] of an "indie hacker" is
> anyone who's making money from customers rather than an employer.

So... once you hire your first employee and the staff is no longer exclusively
founders/owners... the founders/bosses are still 'indie hackers', but the
employee is not? Or none of them are anymore, you can only be an 'indie
hacker' if the entire staff is founder/owners with no employees?

When only bosses can be 'indie', hmm. I guess that is a pretty good synecdoche
of a certain kind of bay area techno-capitalist-hipsterist ideology.

~~~
csallen
There are many more blurry lines than that. For example, is a contractor an
indie hacker? Technically they get paid by clients, not employers. But they're
also directly trading hours for dollars, and rarely make for good
interviewees. Etc.

At the end of the day, we can spend a lot of time bike shedding about
semantics and the name "Indie Hackers," but what's more important is the
overall purpose behind the site — a place for entrepreneurs to learn from each
other and share their experiences transparently. Sometimes those entrepreneurs
will be the Jeff Atwoods and Bezoses of the world, and that's just fine.

------
the_common_man
Discourse is really a pain to self-host :/ I hate the whole Dockerized install
thing. Why not just provide simple instructions on how to deploy and we can
use Docker if we want to? Don't get me wrong, I like Docker but the way
discourse does it is totally over-engineered.

~~~
trustfundbaby
That's just one way to run it. I actually run it on heroku without docker with
no problems at all ... had to make a few edits here and there, but once I got
it up I haven't had to touch it and its been humming along just fine for
months now.

------
joshmanders
> Don't target the low end market if you can avoid it.

Disagree with this statement. There is money to be made in the low end market,
and it's not as bad as you expect it to be.

~~~
accountyaccount
It's easier to start high-end and open up the low-end than it is to start at
the low-end. There's a clearer method of prioritization (working on features
for paying customers first) and you can spend more time making high paying
customers happy rather than trying to retain hundreds.

~~~
joshmanders
Depends on what you're doing. For example my business is built on catering to
the lower end of a service who can't justify the high end prices.

~~~
accountyaccount
Right, that's totally reasonable — but it's harder because you by default have
to attain and retain more customers.

------
blinkingled
Has he complained about Android JavaScript performance yet?! :)

------
karussell
I'm not sure about all the negative comments.

I have the exact opposite experience. I really like discourse. We run it now
since two years with exactly one issue when I did an update, but that was more
or less my fault being not on 'stable' but on 'beta'. Self-hosting is not
complex although I wouldn't want to do this without the docker they offer.

What I like about discourse

* discuss in real time (!)

* if you prefer email then you can get it, ask questions via email or get answers there if you are not online

* mute specific topics or subscribe only to a few categories

* you can like answers without having to say '+1'

* simple to self-host IMO

* open source

* our community likes it too ('it is simple to use and does what it should')

* the inbuild search is good

There are parts that work better than with Github:

* The email response is bundled over 10 minutes before sending, reducing emails a lot and allows for fast edits!

* you see in your notification where you get likes (you don't get emails because of this of course)

What I don't like:

* performance feels not that great for longer threads (similar problem on github IMO)

------
jarjoura
I think anyone paying attention knows the world went from lots of phpBB
community websites straight over to Reddit. Reddit is hideous, but man, it's
easy to use, and accessible.

I don't think I ever saw a successful community run on top of discourse.

~~~
Macha
Funnily enough, the phpBB (old, static, boring but predictable) vs Discourse
(new, fancy, JS-laden) debate is literally going on on Reddit right now as
they told the mods they're going to take away custom subreddit CSS for the new
design since it's a fundamental rewrite (and replace it with theming tools
which they have denied are going to be as limited as colour pickers, but we'll
see), which judging by the mobile site will be a card-based, infinite
scrolling, React app.

------
kinkrtyavimoodh
> Don't target the low end market if you can avoid it.

But make sure you never mention it explicitly or else millions of angry users
from a country will give a 1-star rating to a totally different app that
happens to sound a bit like yours.

------
sytelus
TLDR;

I'm interested in how to grow community. They started with press release, got
3 customers by offering them everything free + full "white glove" support,
court more paying customers, scale infrastructure.

------
fiatjaf
"Sell to people who have money!" is the sole recommendation from these
bootstrapper-idols in the startup community, like Patrick McKenzie and
related.

Still, if you want peace of mind, try selling to people who don't have money,
but who will also not require you to give them support night and day, to write
complex contracts and have a lawyer, to have a dedicated helpdesk and to write
custom code for.

If you want money, money and money, ok, this is probably fine advice, but not
all people want that. Many people, I believe, want to write software they
enjoy.

~~~
Ralfp
> I believe, want to write software they enjoy.

Which is pretty tricky if you don't have money.

~~~
fiatjaf
Wow, you are so smart!

------
amelius
> "Sell to people who have money!"

As opposed to optimizing your product so that poor people can enjoy it too.

~~~
accountyaccount
>And of course we have the open source version for people with low or no
budget, and our free GitHub program for popular open source communities.

It's free software.

------
webninja
Enjoyable article. If you liked this article, then you might also like some of
Jeff's other articles like this one about _Why Do Computers Suck at Math_ :
[https://blog.codinghorror.com/why-do-computers-suck-at-
math/](https://blog.codinghorror.com/why-do-computers-suck-at-math/)

~~~
YCode
This Atwood fellow seems to know his CS. He should set up some kind of support
forum that devs can use to get help with their coding problems.

~~~
webninja
Hmm what should it be named?

