Hi everyone! If this post breaks any rules feel free to delete.
So I’ve never worked with a discourse freelancer before, but I’m considering doing so for some improvements to my community site. I have some questions before committing one way or the other and I thought this would be a good outlet to at least get an idea of some things before getting too invested.
Currently our site is pretty bare bones, has a custom layout and colors, but besides that it pretty much resembles the basic discourse forum set up. I’d ideally like to have some more advance improvements, but I’m unfortunately no developer and would love some advice to see if what I’m looking for would even be possible within discourse and if it is, how long would you see something like this taking?
Items I’m hoping to add to my site.
a feed of popular or hot topics
sign up field in the top banner if you aren’t currently logged in
additional analytics tools or maybe unique dashboard data
fixed sidebar navigation
more robust gamification system (a sidebar with a leaderboard and different amount of points awarded based on different actions)
I know it might be hard to give any sort of information based on just this list without digging into my site yourself, but any sort of timeline estimate (or if you had an idea of pricing estimated you can DM that if you have an idea) that you could gather from what I’ve mentioned above would be useful. I just need a starting point in my research.
Yes, those features are all possible. Generally speaking Discourse is highly extensible. It has server-side and client-side plugin apis and hooks, which make pretty much anything possible.
There are two types of customisations “Themes” (client-side only) and “Plugins” (server and client). If it’s possible to only make client-side changes it’s best to use a theme as they’re easier to modify and update and pose less of a stability risk. If you need to display new data, or want to change things like list algorithms, i.e. you need any server-side work, you’ll need a plugin.
In terms of hiring a developer to build stuff, the price ranges are quite variable and tend to depend on the familiarity the developer has with Discourse. Familiarity with the Discourse codebase is a significant benefit in terms:
basic ability to pull off new feature(s)
time it takes to build new feature(s)
stability of new feature(s) over time as Discourse changes
ability to integrate new feature(s) with existing or other new features
You could hire a developer on freelancer marketplace, but they would struggle with each of the above points. Which is why folks often spend a little bit more on a developer who has a history working with the Discourse codebase, and will continue to work with it in the future.
In terms of price you’re typically looking at between $100 to $200 USD per hour for a senior Discourse developer. Some give you a discount if you’re willing to open-source the resulting code. I give a 20% discount for open source work.
In terms of overall time, I tend to use this basic heuristic:
Simple stuff: I’ll get it done within a week
Complex stuff: I’ll get it done within a month.
I’ve given you some rough hour estimates below.
There’s a few pre-existing options here, including the standard Discourse ‘Top’ list and the Discourse Hot Topics plugin. Changing list sorting / filtering algorithms is relatively straightforward in a plugin. Maybe 3 to 4 hours of work for a simple algo change.
Are you thinking of having email and password inputs directly in the header, rather than having them in a modal (i.e. to reduce clicks)? Sure, this is also doable. Off the top of my head it would take roughly 6 hours.
Often folks use the Data Explorer Plugin to produce custom stats, but you can also add custom stats to the admin Dashboard in a plugin.
The best choice depends on what kind of navigation you want. If none of the out of the box solutions suit, personally I would suggest you make a widget that works with my Layouts Plugin.
For example, I recently built a custom navigation widget for someone for $250 USD. The price and time really depends on the detail of what you want.
There’s a fair amount of interest in this feature (and ways to use the existing Discourse feature set to achieve the desired outcome). I would initially suggest doing a search for “gamification” here on meta. In terms of getting it built, given the interest in this feature, one option would be to get a co-sponsorship going (i.e. getting multiple folks to sponsor a gamification plugin). We did something similar for a “Follow” plugin recently. You’d be looking at > $1k USD for this. It would take at least a couple of weeks, if not a month.