Building a interactive portfolio site that will rely heavily on html5 canvas to provide "flash-like" experience with custom graphic elements, similar in ways to this site: http://www.big.dk/. Is it reasonable/appropriate to use drupal for this? Not that experienced with drupal or javascript, but know enough to get a through a project like this if I can get pointed in the right direction. So, would really REALLY appreciate some advice from experienced developer on: whether drupal is good framework for this, what other platforms (if any) I should consider, what my evaluation criteria should be. Seems like Drupal's "JavaScript approach" discourages using drupal as back-end (though not sure if strictly speaking that is how I should describe drupal's role):

All pages should be perfectly functional without scripts. JavaScript provides alternatives or supplements - not replacements - for standard elements.
No JavaScript is hard-coded into pages. Rather, actions are attached dynamically to page elements--and only if the needed JavaScript support is present.

Should i take this to mean, a site like the one linked too will be frowned apon by the drupal community on principle, or will drupal framework really make it difficult or at least harder than it has to be to build site like this? Perhaps drupal is overkill or simplifying not right for this?...

Thanks in adv.

Comments

bander2’s picture

Cool idea. I did something similar a long time ago with flash.

I would not worry about Drupal's javascript approach. I think this is a guideline for core and module development. If you are building a website that requires javascript and you are OK with that then that is your business.

I think whether Drupal is right for you depends on other factors than the front end. I don't think any framework or cms is going to give you much help on the front end.

Where Drupal can still help you is managing permissions, and making it easy for others to author content and managing the content. If it's just you authoring content, then you might be better off with a simpler framework, like Yii or Laravel.

- Brendan

parkerjdru’s picture

Thanks for suggestions. Looking into Laravel a bit. Worried a little about content management, but think lightweight framework might be better choice as you pointed out. cheers.

Jaypan’s picture

Seems like Drupal's "JavaScript approach" discourages using drupal as back-end (though not sure if strictly speaking that is how I should describe drupal's role):

All pages should be perfectly functional without scripts. JavaScript provides alternatives or supplements - not replacements - for standard elements.
No JavaScript is hard-coded into pages. Rather, actions are attached dynamically to page elements--and only if the needed JavaScript support is present.

Should i take this to mean, a site like the one linked too will be frowned apon by the drupal community on principle

Not at all. There is no 'frowned upon' for uses of Drupal - you are allowed to use it any way you want. The text in question is more of a 'best practice' for the internet - you should endeavor to always make your pages work whether javascript is enabled or not for two reasons:
1) Your site will work across a wider range of device type and configurations
2) If your javascript fails, your site will still work.

However, if you are creating a page/site that relies on the canvas tag, this tag must have javascript enabled to work, and cannot work without javascript. So in this case, it's impossible to have your page work without javascript, and therefore it's fine to ignore this best practice.

will drupal framework really make it difficult or at least harder than it has to be to build site like this?

Not at all. On the contrary, Drupal has an excellent JavaScript API built into it, and is quite ideal for types of sites like this.

boban_dj’s picture

Hi, it is quite possible with drupal to make a simular site as your example.
You can extend with quicksand module, also make a view which then adds js with context.
So when a certain contentype or node (content) is loaded you can add any .js file of choice.

add js or css in context of something: https://www.drupal.org/project/context_addassets
some context extra's: https://www.drupal.org/project/context_extras
simular to your example site: https://www.drupal.org/project/views_quicksand
example of quicksand: http://razorjack.net/quicksand/
Drupal is as powerfull as you can make it.
goodluck!

Boban_dj