"Creative Content System", also Glorious Trainwrecks rewrite

Danni's picture

During a Twitter conversation about the current state of Glorious Trainwrecks, an idea suddenly dawned on me: if the site, as it is, is badly designed, and this is hurting site participation, why not just go ahead and do a rewrite?

While we could just upgrade to the latest Drupal, there are several reasons why that is a terrible idea:

- Drupal is written in PHP. PHP is a terrible language.
- Drupal has too much complexity, and this bleeds into both the user experience and site maintenance. A lot of Drupal's abstractions are aimed at trying to be useful for many different configurations, but makes managing all of them more confusing.
- Despite these abstractions, Drupal doesn't provide what we need out of the box. There's already a significant amount of hackery in this place to incorporate a list of registered games, and it took multiple attempts to get it working with events. This would have to be done all over again if we were to upgrade to a newer Drupal, and this is made harder by the fact that, again, PHP is a terrible language.

Instead, I would like to focus on creating what I'd like to call a "creative content system". This will be a CMS-like system where everyone can participate by default. While typical CMSs like Drupal allow for this, it seems like they are primarily aimed at things like organizational websites rather than open participation communities. This will be software that anyone can install on their web server, especially since SpindleyQ has always wanted something in the form of a "Glorious Trainwrecks kit" for other gamedev groups to set up and host their own Klik of the Month Klubs or whatever. However, I would also like to design this around Glorious Trainwrecks and its needs.

Additionally, when I refer to "creating content", I mean all kinds of media, including art, music, games, or whatever. Hence when I talk of functionality you'll see me refer to "creations" rather than, say, "games". I want to make something that artists working in other mediums can use, too.

For the sake of ease of use and cleanliness, I am going for a simpler design. I can always add more bells and whistles later, but this way we can start off on a clean slate. Here is what I currently have in mind:

- The main page will be the Activity Stream, even when browsing as a guest. This will be similar in function to the "Recent changes" page already on this site (for those who prefer "Recent posts", I might add a "new content only" toggle or something to that effect). Only here, it would be much richer, since it would provide image previews and a synopsis of each post inline. In fact, think of it as a combination of "Recent changes" and the Newest Games list currently in GT's sidebar, or a combination of a community hub and a social network (except not really). You will be able to filter by different types of content, or switch to an index list view for archive viewing purposes.
- All content is created in the form of a "Post". A Post may either be a "Communication" (which I need a better name for) which serves as a blog/journal post, a "Creation", or an "Event".
- A "Creation" can be media of any type that the site provides. For example, a site might choose to support both "Music" and "Game" type Creations, and the user would select which one to use. While I am not aiming for a very pluggable/customizable system for version 1.0, I would at least like to make the Creation types customizable.
- Events are displayed at the top of the main page, above the Activity Stream, to draw attention to upcoming and current Events. In the case of lots of Events, the system will select a few at random, and provide an "All Events" link to view the rest.
- Site staff can "pin" posts to the top of the Activity Stream for site announcements and the likes.
- All Posts can be assigned to one or more tags/categories. The site configuration can define one or more "categories" for each post type, which are like "official" tags that are always presented to the user during post creation.
- Users get basic profiles including username, avatar, homepage link, and a list of all of their posts.
- Users can also send private messages to one another.

Because I am aiming for a relatively simple system, there are some features that won't appear. Namely:

- There is no wiki, or at least there probably won't be a wiki in the initial version. If at all. I just think a lot of CMSs try to do everything and end up only doing a few of these things well. This project is not like that. I'm not even sure how a wiki would fit in with the user experience I have in mind.
- There are no forums. If you think about it, Communication (blog) posts are basically the same thing: a user can post something to start a topic, and assign it to a tag/category and it will show up if filtering activity by tag/category. Users can comment on it like one would reply to a forum topic. So really, I think it makes all the sense in the world to not have forums. It would just be pointless duplication.

The project itself will be a webapp written in Python. I think I should be able to handle it - I'll be using a "microframework" with extensions for things like SQLAlchemy for DB access (I kind of doubt this project will see any deployment on sites large enough to need something as scalable as a NoSQL-type DB), and OAuth (so that users can log in with Twitter).

Also, I really enjoy designing things and I think this is a pretty good design so far, but I'm worried the UX might be too radically different from what GT currently has. Also, I might have missed a thing or two. Please provide some feedback, if you can. Again, I want to base a lot of the design off of GT's needs, so it's important that I get to hear some opinions from other GTers. I do not currently have any UI mockups, but I'd like to make some soon so that I can better illustrate the design I'm going for.

One last thing: Since this is software that I don't intend to be limited exclusively to Glorious Trainwrecks, we'll have to think about other sites as well. GT has a super great community full of nice people, but not all communities are like this. Much of the design revolves around assuming good faith instead of expecting people to misbehave. I have been thinking of adding in admin-configurable limitations (such as each user only being able to host three events at a time, etc.) as well as the ability to remove EG. posting permissions from problematic users. Right now I feel like I'm trying to straddle the line between creating something aimed at super nice communities like GT vs increased adoption elsewhere in not-so-happy climates. Thoughts?

Comments

Blueberry Soft's picture

This sounds terrific. A wiki

This sounds terrific. A wiki can easily be added later (and a proper Trainwrecks wiki could actually be really great, even apart from this site, if people contributed).

I really don't have a bad thing to say about this as you've outlined it. It seems 100 times better. I'll have a bigger think about this over the course of today. I guess if there was a accompanying wiki in the future it would be good to have a way to easily use GT posts as bases for wiki articles ('a send to wiki' button or something) and have both using the same markup.

I'm also available and happy to help with anything, though my skills are limited to HTML, CSS, and making graphics. Also able to help be a jerk bug tester when you get a demo going.

This is really exciting!

Danni's picture

The current GT has a lot of

The current GT has a lot of isolated sections that get little traffic (blogs, forums, wiki) and only really serve to make navigation more confusing, because there is no unified way of accessing all of their content. A "Send to wiki" button implies that there is still a separate "wiki" section.

I think a more elegant/integrated approach is that, rather than having an explicit "wiki" system, we add two features to Posts:

1. Posts can optionally be marked as "Publicly editable". By default, new Posts can only be edited by the owner and site staff. When a Post is made publicly editable, anyone with an account is allowed to make changes. To prevent users from being able to hijack and "privatize" "wiki" pages, making a Post publicly editable would be a non-reversible action that would remove ownership of the post (though site staff can override this and make the Post "privately editable" again by specifying an owner - this also means that you get protected wiki pages for free).
2. All new Posts automatically gain a "wiki title" which allows them to be easily linked to from other Posts. Additionally, using link syntax to refer to a non-existent page will allow the user to click on it to make a new post with that title.

As for having a Wiki homepage: there isn't really a hardened concept. However, I do plan on adding a feature to the Browse Posts page where site staff can make certain Posts "featured" so they appear near the top - this would be a good place to link to a hypothetical Wiki homepage.

To me it makes a lot of sense to merge blogs/forums/wiki together, though my main concern with this design is that some people will just find it too weird.

Edit: Now that I think about it, I think allowing site staff to add to the top level navigation links is perfectly fine. So having a link to the Wiki at the top of the page would probably be a more elegant solution.

Blueberry Soft's picture

Wiki and preservation thoughs.

I guess I was speaking more to the point that it's not so necessary to worry about the wiki part as it's quite easy to tack on later.

But, actually, thinking on it more I think there is value in separating some things (for example forums and wikis [I'm not being GT specific here]), but only if there is enough interest in contributing to them. I think there is value in the way a wiki are typically presented. Anyway, I'm pretty keen on the idea of wikis, and other public databases, and contribute to quite a few, and get pretty enthusiastic and one-eyed about them.

I'm not sure how the current plans address the over the other main goal (as I see it) of GT: preservation. I think, in fact, that could be highlighted more than it is now; I often forget about the great Geocities backup, for example. I think I see this best served by a dedicated, but attached, wiki. Though I do also see how it could already be included in what you have outlined. And, of course, going by the current participation, a dedicated wiki would probably end up pretty dead unless it attracted it own audience.

Danni's picture

Here's a mockup of the main

Here's a mockup of the main page I did last night. I got feedback from IRC and as a result the new design is slightly less radical but still somewhat radical:

The "Browse" pages are next on the list of things to do, but now I've sort of run into a small design problem: Should I design the navigation to have separate Submit/Browse pages, each where the user selects Creations/Posts/Events, or should the top level navigation be Creations/Posts/Events and have a "Submit" link inside each one? I think the former encourages more participation (one step to enter submission page) but makes it take two steps to go to the Posts or Events listings. With the latter, my main concern is duplicity: I already have Creations and Events headings on the main page, which don't really provide "all in one place" consistent navigation, yet they're kind of central to the main page design, and by adding the Creations/Posts/Events nav at the top the design will look like it repeats itself. Hmm.

AttachmentSize
CCLatestActivity4.png70 KB
sergiocornaga's picture

I'm not sure I understand

I'm not sure I understand the problem, so this response might end up being useless. For events, I would expect the 'submit' link to be a big button below the event description that defaults to the event clicked from, pretty similar to what we have now. If this method is one step, I think it matters less if the top navigation is always two step.

I'm concerned about the preservation of existing content at the moment. Would we be transferring all our games and posts over to this new system? Would the URLs we currently have still point to the right things? Am I thinking too far ahead?

Danni's picture

Mostly, yes. The new system

Mostly, yes.

The new system will not be backward compatible because it is explicitly trying not to be Drupal. A custom migration script would work, though. The data isn't going to be a 1:1 mapping between systems but should be similar enough that it can be migrated without glaring side effects.

On-site URLs would need to be converted to the new format. Old off-site URLs will most likely become linkrot unless we can find some way to forward them to the new location. Thinking about this, it should be pretty easy to implement as a customized version of the software that has an extra route for glorioustrainwrecks.com/node URLs acting as a redirect (since "node" is terminology that is never going to occur in this new system. It's not user-friendly and it's too Drupal-esque).

Blueberry Soft's picture

Nav menu.

Hmmm, actually I think I'd like a bit of both.

Having 'create' as the first button/link is important, I think. Game making is the site's top priority (right?). I also agree that each particular section / creation type could be more obvious.

So something like

CREATE | GAMES POSTS EVENTS

where 'create' goes to the submission form, and 'games posts events' all go to the browse page with the appropriate filter activated.

(The | is just a stand-in for some kind of minor separation between 'create' and 'games posts events')

(Still working on my other feedback)

Blueberry Soft's picture

Heck, there'll be a fair bit

Heck, there'll be a fair bit of free vertical space there, it could even be more explicit

CREATE: GAME POST EVENT
BROWSE: GAMES POSTS EVENTS 'search box'

I mean, that's a bit much (and a lot of double-up), but it's nice having all the potential site features/option right there and obvious for visitors.

Danni's picture

I thought about this for a

I thought about this for a bit, and I think it might be interesting to present Creations/Posts/Events as dual-buttons:

To browse, you click on the text button to the left, and to submit you click on the + button to the right. But it looks kind of complex and I'm not a fan of dual-purpose-joined-buttons-that-kind-of-look-like-one-button-but-are-really-two-buttons-that-do-different-things.

AttachmentSize
MainButtons.png9.03 KB
sergiocornaga's picture

I don't think this is an

I don't think this is an intuitive approach. I prefer the create / browse dichotomy, both could have drop down menus that allow for just as many options as this, or maybe even be clicked directly to reach either a landing page for create or a list of all things for browse.

Danni's picture

Hmm, here's a thought:

Hmm, here's a thought: Submit/Browse buttons with different colors that open the same pop-up menu when clicked, but change the menu's background color? For color-impaired folks I would add other indicators as well. It could either display horizontally inline or a vertical drop-down, haven't decided which.

Basically this way we'd have something that looks like a mode switch (browse/submit) for the same subitems without looking the part.

Blueberry Soft's picture

A thought about the browse page

Ugh, okay, another thought/tack:

Do the browse options even need to go to a separate page? Aren't they basically links to filters of the activity feed, so they should be down in that section? Or do you have grander ideas for how a dedicated browsing area would work/be presented? Or you just don't want to clutter the front page with too many nice sorting options/filters (that makes sense)?

I tend to think and brainstorm 'out loud' when involved with these types of things. I tihnk I answered my own question(s0, in the end :)

Danni's picture

I think it would be good to

I think it would be good to generalize browsing functionality inside the core as much as possible. In terms of presentation, I initially thought about going this route, but I worry that just sticking everything under filter options would make things unintuitive. I want some degree of flexibility and customization of the views by the user while still being approachable.

Edit: For the Creations view I'm thinking of presenting items like a gallery: medium to large screenshots with name and author beneath. This would be different (and IMHO more effective) than a simple list, though I'm not against adding a view option to toggle between both.

Danni's picture

New top navigation

New top navigation

AttachmentSize
CCMain.png69.47 KB
Danni's picture

WIP shot of the default site

WIP shot of the default site style (I couldn't help myself):

Danni's picture

Also the software is

Also the software is tentatively titled "Jamspace". I'm going to change the name before I release because it's about as creatively bankrupt as Microsoft's own product names. That, and if you switch the two words around you get "Space Jam".

SpindleyQ's picture

come on and slam

aaaah this looks great

sergiocornaga's picture

Personally, I'd view any

Personally, I'd view any resemblance to Space Jam as a positive rather than a negative. But if you're really in need of classier names, I suggest 'Jamzone', 'Jamniverse' or 'Jamzoniverse'.

Johny L.'s picture

Will this be the new

Will this be the new glorious trainwreck?
Or it is going to be a successor of it?
------------
Both 3 characters shown on my avatar are copyright Black Squirrel, Jonny Smeby and Nintendo.

Danni's picture

It's the same Glorious

It's the same Glorious Trainwrecks running on new software. We'll try to migrate over as much content as we can.

Johny L.'s picture

When it will be

When it will be ready?
------------
Both 3 characters shown on my avatar are copyright Black Squirrel, Jonny Smeby and Nintendo.

Danni's picture

It's really too early in

It's really too early in development to give a reasonable time estimate. I'll continue to make posts here as I make progress on this thing.

Johny L.'s picture

But how will you change the

But how will you change the site? You didn't gain admin access.
------------
Both 3 characters shown on my avatar are copyright Black Squirrel, Jonny Smeby and Nintendo.

Danni's picture

Deploying the software is

Deploying the software is SpindleyQ's job. During development I run a server on my own machine with a test database - this is typical for web dev stuff.

Johny L.'s picture

Oh good. I wanted glorious

Oh good. I wanted glorious trainwrecks to be new too, because this same system is being weak and boring soon.
------------
Both 3 characters shown on my avatar are copyright Black Squirrel, Jonny Smeby and Nintendo.

Understand About?

I'm not certain I comprehend the issue, so this reaction may wind up being pointless. For occasions, I would expect the "submit" connection to be an enormous catch underneath the occasion depiction that defaults to the occasion clicked from, really like what we have now. On the off chance that this technique is one stage, I think it matters less if the top route is constantly two stages.

I'm worried about the conservation of existing substance right now. Would we be exchanging all our recreations and presents over on this new framework? Would the Urls we right now have still indicated the right things? Am I supposing too a long ways ahead?
Movers Pune

snapman's picture

Understood exactly

You bring up a good point. The new system definitely needs a "preserve funny spam" button for moderators, that deletes all links posted by a user and then disables their account.

pensive-mosquitoes