I am building something community oriented and Discourse looks perfect for it.
But my eventual plan is to port the community to a custom app later. Curious if anyone has done it before and how hard/easy would it be to do so. Don’t want to lock into the ecosystem.
It depends on what “port the community to a custom app later” means.
If you want to migrate away from Discourse to a custom-made database+backend+frontend+etc, a data migration is the way.
If you want to keep using the data and backend layers of Discourse, using it as a headless service and writing a new frontend consuming the existing APIs, that’s also possible and has been done before.
One thing to consider, though, is that Discourse is HUGE, like REALLY HUGE. The chat feature for example is a big undertake, and it’s just a tiny little fraction of what Discourse is.
Rewriting these UIs will certainly feel like reinventing the wheel, and once you have all these features taken for granted on your community it will be hard to migrate to a custom app missing them.
This is fantastic! Thank you so much for sharing these.
I’ve been browsing some discussions on people trying to build a full-blown social-network on discourse. If you have any examples of those, do let me know. I haven’t yet come across a serious implementation of discourse on the web that doesn’t look like a forum.
I’d also add the enormous non-technical challenges of gaining traction, attracting users, getting the word about, marketing … feature set - what are you offering which gives people something they can’t get from the mainstream apps? Oh and finance … time …
At least forums can fit into small niches to attract an audience … and don’t rely on a massive staff.
No harm in giving it a good go though: nothing ventured, nothing gained! (and probably nothing learned!)
Can you share some of your findings please? Do you have any clue about how difficult it is to develop simple and medium complexity features? I guess the developers need to have experience with the stack. But then they need to figure out the workings of the platform and then start puzzling and building? Apart from the examples give in the comments, is this done a lot? Why/why not?
Duplication followed by maintenance overhead including having to accommodate core breaking changes.
On top of that, leave the ecosystem and you can’t use plugins or theme components, doh!
So much easier to simply implement your entire community logic with Discourse as is? (for vast majority of use cases) and add customisations as required in themes and plugins.
For proof just look at the multitude of companies using discourse for handling community.