Forem looks sensational. Before I set up our instance, *I'm keen to understand to what extent you can customise the visual elements of Forem.
*
Specifically:
- Can you change the font type, size and colour of the text?
- Can you change the size of the elements (e.g. make the post boxes or buttons smaller)?
- Can you change the layout of Forem pages (e.g. move the topic navigation menu from the left hand column to the right hand column)?
If these customisations are not available 'off the shelf', I'd be interested to know whether - given Forem is open source - it would be possible for me to customise these elements myself (if my engineering skills are up to it) or whether there'd be any meaningful blockers to that.
Top comments (6)
Short answer: yes.
Long answer: You can customize anything you want, but there are a few things you may want to consider before you dig too deep.
@pp wanted to add that this could get messy over time, as you'll need to be sure that any functional updates we add to the Forem code won't conflict with your custom changes. You won't necessarily need to worry about automatic conflicts (because your modifications will then require you to pull in upstream changes manually, which will allow you to review the updated code before deploying it) but there is a sustained commitment to maintaining this for every update (and the way that we're developing Forem right now means there are fairly frequent updates happening).
I would add that, from a community perspective, we optimize our UI/UX for accessibility. This means that we do our best to build a platform that can be used by people across devices and assistive technologies. We would encourage anyone wanting to make UI changes to the platform to consider a11y as part of any planned changes.
We were talking about this internally today, and someone reminded me of Andrew Brown's great series of posts about self-hosting.
forem.dev/andrewbrown/how-to-creat... might be a useful guide (the rest of the series he wrote is good, but this specific post covers separating out the template/view changes you'd like to make from the underlying forem code).
Building your own image, and putting it in an accessible repository, like dockerhub or quay.io, are required steps before you call
foremimg
andforemctl update
to load the modified code - that's covered a bit in forem.dev/andrewbrown/how-to-keep-... but the default forem latest image is downloaded there (you'd need to point at your images, instead of forem:latest).Thanks a lot Dan - those posts are very instructive, and we'll dig into them/test as we work out what route to take forward. Really appreciate it.
Thanks so much for this Ella - really appreciate such a swift response, and this is super helpful and clear. Some meaningful points to mull over there (mainly around the ongoing maintenance) .Will ponder hard :) Thank you again.
You can do it with cloudflare, change css styles
Thanks a lot Varhal - that's very helpful to know.