On Monday, April 2, 2012 10:47:00 PM UTC+2, Sean Tilley wrote:
I wanted to open up a discussion about branding, and the possibility of making customizing a pod a bit easier. There were some ideas raised in the last discussion for the Branding Pack, and I think it merits bringing up again with some of the experienced Rails developers that work on our platform. :) This may fall a little beyond the scope of the current branding stuff, but I think it merits some discussion and thoughts.
I think one of the points raised there, was a script that is capable of changing the "Diaspora Alpha" wording in the logo. To me this is a nice feature-idea. But since I am enthusiastic about everything that is not an image on webpages, my first thought for that is to provide a config option or something in the admin area where the admin could specify the pod name and it is then rendered on the page with CSS @font-face instead of an image and the name can also be used in footers and in the notification emails.
Steven kicked around the idea a little while back about the possibility of using Engines for customizing the default experience of Diaspora pods, and I think this might make for a novel way to customize theme templates, as well as possibly offering additional functionalities as "extensions", rather than actually touching the core codebase. This could resolve some of the problems forkers have had in the past: rather than just forking the entire platform, they could wrap up the features they want into a Rails engine and offer it as an installable extension that could sit atop the main branch codebase.
My personal rails experience is not the most comprehensive, but this seems like a good way to do it. In the long run it will be mandatory (well, not mandatory, but I guess it's almost stupid, if it wouldn't) for D* to provide extensibility without modification of the core code. And for Beta and beyond these facilities should be as forward-compatible as possible.
Additionally, one gem that might be worth looking into would be the Deface gem, which is used by the Spree open commerce platform. It allows for overrides to existing templates, so a podmin could easily drop in their customized HAML templates (This discussion seems to indicate that HAML is in fact supported now), and customize their output of how their particular pod looks. I'm not sure of the current limitations to Deface, but I think it might be worth considering for sake of future flexibility.
What I think most "regular-joe" users (probably) wouldn't use would be the possibility to customize the look on a per-user basis. But for power-users an additional js snippet here or a few lines css there could make all the difference. So, per-pod modifications are definitely a good start, and that would cover a lot of user-stories, but for later we should also keep per-user modifications in mind as a bonus-feature.