A Simple Forum

Recently added assetic to ASF to handle CSS and JS minification and compilation. Users can choose which form of compression to use, from YUI, Google Closure or basic minification. The former 2 will require Java and the relevant Jar file.

Also big thanks to @kiwiheretic for all the help so far.

If anyone wants to help it would be a great help. I still need unit tests writing, documented code and several basic features still left to do. I have also setup a github page where developer documentation will go.

One of the lessons I think we can learn from wordpress is their excellent developer documentation. I wonder if this is the reason why they have such a large array of plugins and themes. I also consider it a factor in their success.

Even though I do alot of mobile browsing these days I think a distinct advantage of this forum is that it has considered javascript functionality at the start. That’s probably why vanillaforums hasn’t taken off the way that discourse has. Also, if not more significantly, is that Jeff Atwood is a well known brand in the programming blogging world. However branding can only go so far and eventually a forum platform has to stand on its own merits.

One of the things that seems to be being touted for Discourse’s success is that it’s written in Ruby on Rails. I think that has the least to do with it. I think the fact they are using Ember.js with all its “eye candy” is much more significant.

Anyway, what I am saying, I believe it’s getting the front end right is much more significant in its success than what language the back end is written in.

I believe that, with enough vision and time, that ASimpleforum can be better than Discourse.

Ok, I asked another question here about Javascript frameworks:

Several of them came to the forefront: AngularJS, EmberJS, CanJS and BackboneJS. In the interest of DRY (Don’t Repeat Yourself) do you think any of these could be helpful in producing a competitive user experience? Or is it better to go for a completely custom solution in this case?

Most javascript frameworks handle page rendering too and are designed for heavy JS apps. Although A Simple Forum uses a lot of JS it is mainly a PHP orientated site. I use twig and twig JS to render templates which would lash with other JS frameworks (Ember uses handlebars for example).

Yeah, I have mixed feelings on heavy JS myself. Especially a factor when considering the mobile market I think. I’ll look inro Twig JS and study up on that.

I have started to add some development documentation which can be found on the guthub page http://cjmarkham.github.io/asimpleforum/

I really need to commit these things when I change them :stuck_out_tongue:

Looks like you’ve been busy

Hopefully I’ll get a chance to checkout your changes tomorrow.

Hopefully I will push them all by tomorrow :stuck_out_tongue: Currently working on a mention system which is nearly done.

I discovered something interesting while evaluating VanillaForums. Apparently it doesn’t have user selectable themes, only admin selectable themes for everyone. (I believe phpBB has this feature.) I see that on VanillaForums own support forum there are requests for this feature but it doesn’t seem to be forthcoming.

I wonder if this is because Vanilla is an embeddable forum and it would make sense to “lock down” user theme switching in an embedded context. However I don’t see why it can’t be an option in the admin panel that can’t be turned on or off.

Also, been looking at Vanilla’s SSO (single sign on) plugin which allows vanilla to authenticate via 3rd party systems (for instance Wordpress). However they also have SSO for Google and Facebook accounts as well. Might be useful to have. There are some pitfalls of course, for instance if you make your forum authenticate to wordpress and then delete your wordpress site then you’ve effectively DoS yourself. So I will keep thinking about that one.

Do you think you will be able to avoid ruling out these options with your forum? Just a thought.

I will be having selectable themes for both admins and users and there will also be an option for the admin theme to override any user selected themes.
I’ve also looked at SSO and have implemented it in other projects. I am thinking that A Simple Forum will allow admins to add any service they want such as twitter, facebook, github login etc. Not sure how I am going to go about this yet but it is on the road map.

Did some work on the layout today. Mobile devices and other small/medium size devices should not display properly.

This hasn’t been deployed yet as I have reworked some of the database and haven’t gotten around to changing the production database yet. Will let you know when that happens.

I also added notifications so when you like someones post or mention them in a post they will be notified.

I have been thinking recently (today :P). I originally built A Simple Forum to be an innovator and bring forums into the modern age. Unfortunately I don’t think that is going to happen with the current state of the forum.

So I have decided to recode it and use NodeJS. This, coupled with tech such as Socket.io, would update the current forum trend and offer a real time experience.

What do you think?

What are the perceived benefits of using NodeJS for server side as opposed to Symphony/PHP? What problems does it solve? I don’t know much about NodeJS nor Socket.IO but what does Socket.IO offer that ajax does not?

I had some reservations about PHP myself but I know its ubiquitous and puts fairly low demand on server side resources. What is the availability of libraries and plugins for NodeJS?

Going the NodeJS route may limit market penetration as I don’t think that many of the basic shared hosts don’t offer it. How much would a NodeJS enabled server cost on, say, Hostgator or GoDaddy?

In terms of solving things it probably doesn’t. I chose Node and Socket.io so I could build a forum with real time aspects such as notification popups as they happen, realtime chat modules etc. Sure I could achieve this with PHP and Ajax but I would have to resort to server polling which would be a bigger strain on the server.

In terms of shared hosting I’m not too concerned about it. I want A Simple Forum to use alot of modern tech (You will even need IE10 just to view the forum :P). Besides, you can pick up a good VPS for $5 a month these days.

Hello again. I know I have been gone for a while but I would like to show you all the new version of the forum. I have kept the old website (and repository) online as a backup and the new site can be found at http://162.243.173.39/ (No proper URL yet).

It uses NodeJS and Socket.IO to provide a real time experience. As you navigate around (some pages are still missing compared to the PHP version) you will notice there are no page refreshes. This was an important thing for me especially when creating a real time application.

When you visit the site you are automatically subscribed to certain events (only 2 so far). These are new topics, and user logins. When a user logs in their name will appear in the online user list automatically. If you happen to be viewing a forum and someone makes a new topic, the topic will also pop in automatically.

A new feature I have introduced is the way that new topics and posts are created. When you click the “new topic” button you don’t get the usual modal popup. Instead you are taken to a page that resembles the topic. Simply click on the default name and default post body to change it and then click save. I feel this little feature will help with the flow of the site so let me know your thoughts.

It is still quite basic and you can’t do a lot besides create topics and posts (and login/register) but the core framework is shaping up nicely.

I have a lot of new ideas which implement the real time aspect. For example when I implement a friend/follower system. When you login your friends will receive a popup to say that you have logged in, or when you create a new post they will get an instant popup. Or when you mention someone in a post (yup they will get a popup!). These options will of course be configurable for the specific user.

Just out of curiousity, have you had a look at NodeBB?