Skip to content
This repository has been archived by the owner on Apr 24, 2019. It is now read-only.

Project roadmap for version 2 #123

Open
8 of 10 tasks
drublic opened this issue Nov 17, 2014 · 9 comments
Open
8 of 10 tasks

Project roadmap for version 2 #123

drublic opened this issue Nov 17, 2014 · 9 comments

Comments

@drublic
Copy link
Member

drublic commented Nov 17, 2014

In general the project should maintain it's position as a starting point for website projects and web apps by providing a great default of tools and workflows for developers. These devs seem to be mostly @anselmh and myself.
Please let us know of any additions you think would be useful.

So here are the plans we have for version 2.

Remove Bower in favor of npm

Remove Sass in favor of Pleeease

  • Remove Sass in favor of Pleeease as a post-processor: Even though development with Sass got a lot faster with the shift to libsass it is still slow. Sass adds features to CSS which are not thought to be part of the descriptive language which CSS is. Thus they add more complexity to your project and the code you write. Sass has some awesome features as for example variables, nesting and color-functions which are currently not supported in CSS. But these features are on their way to land in browsers with standardized implementations. Pleeease enables us to use a couple of these features today and makes it easier to use CSS without thinking about vendor prefixes or problematic import rules. This also makes the sass-mixins package not necessary anymore and lets us switch to the default CSS implementation of normalize.css. (PR Remove Sass and replace with Pleeease #124)

Drop IE8 support

  • Dropping IE8: Most of our projects do not require a lot of IE8 support anymore and numbers of IE8 users in general are dropping. We believe we can use jQuery v2 now safely but we also know people's concerns about dropping IE8 support completely. You can always update the version of packages with npm very easy.

Static Page Generator

Note: The static site generator will be available as a plugin in v2.

  • Better static page generator: We want to add a some kind of post/blog engine which has overview pages and better integration of detail pages for people who want to manage their blog with INIT.
    • We need a proper URL structure for it and would need to let the user configure if a page is a folder or not (means it creates a about/index.html or about.html)
    • We need to get rid of the pages.json at least for articles and similar types of pages as it's not practical to add these manually to the JSON each time you add a new post.
    • Extend pages functionality with meta-information like a publishing date, author, state (draft, published, hiddencopy)
    • Use a more automated process to generate pages and use provided information instead of a separate config file (pages.json).

Cleanup

  • Rethink project structure: In order to make it more clear how we can work better there will be an improved file structure which is partly implemented in the branch v2.0 already.
  • Clean structure to integrate plugins (npm modules, maybe a copy via post install hook), detailed implementation to be discussed.
  • Analytics in separate JS file with implementation for sending events
  • Improved documentation

More

Also there are a couple of ideas which we haven't really found a final decision yet:

  • RequireJS: replace with ES6 module definition and use the ES6 transpiler for ES5 compatibility.
  • RequireJS replacement: Use browserify for use with CommonJS modules.
  • Optional Helpers for JS and CSS
@drublic drublic added this to the v2.0.0 milestone Nov 17, 2014
@arthurgouveia
Copy link
Contributor

Just wanna take some time to say that I'm eager to see where you guys are going. Seems promising.

@drublic
Copy link
Member Author

drublic commented Nov 18, 2014

Thanks, Arthur.

drublic added a commit that referenced this issue Nov 20, 2014
This commit removes Sass support from the project and adds Pleeease as a
CSS post-processor.

Preprocessors do have a couple of problems:
* CSS is meant to be declarative. Preprocessors add a lot of functions
to it that are not easy to understand and require higher level thinking.
Logicless-ness makes CSS simple.
* Specificity is often problematic (e.g. with deep nesting).
* People that are not used to one or the other preprocessor are left
behind. Everyone knows CSS.

Reference: #123.
drublic added a commit that referenced this issue Nov 20, 2014
This commit removes Sass support from the project and adds Pleeease as a
CSS post-processor.

Preprocessors do have a couple of problems:
* CSS is meant to be declarative. Preprocessors add a lot of functions
to it that are not easy to understand and require higher level thinking.
Logicless-ness makes CSS simple.
* Specificity is often problematic (e.g. with deep nesting).
* People that are not used to one or the other preprocessor are left
behind. Everyone knows CSS.

Reference: #123.
@arthurvr
Copy link
Contributor

Well, let me be the second Arthur saying this is all amazing stuff. Thanks for the awesome project by the way.

PS: A gulpy version of the project probably isn't anywhere on the roadmap?

@anselmh
Copy link
Member

anselmh commented Nov 20, 2014

Hey @arthurvr, we actually don’t consider gulp at the moment as for the structure we have on the grunt configuration (highly modularized) we currently don't have the same options for gulp. So no, no plans at the moment for this but we’ll surely re-consider if the same possibilities are given by another build tool.

@arthurvr
Copy link
Contributor

@anselmh okay! Thanks for the answer!

drublic added a commit that referenced this issue Nov 21, 2014
Bower will soon go away as can seen by the shift that's happening
inside npm. Bower's current development is nearly non-exisiting.
npm will soon be the leading Front-End package management system.
Apart from that we currently use two package managers which is overhead.

Reference #123.
drublic added a commit that referenced this issue Nov 26, 2014
Usually you want to develop components for your website or app which
should ideally be bundled into one directory. This commit adds a
directory `modules` for all these modules and updates according
configuration for Karma and the build process.

Reference: #123
drublic added a commit that referenced this issue Nov 29, 2014
Using a separate file for tracking and a function for tracking events on
elements makes it even easier to use Google Analytics Tracking properly.

Reference #123.
drublic added a commit that referenced this issue Nov 29, 2014
Using a separate file for tracking and a function for tracking events on
elements makes it even easier to use Google Analytics Tracking properly.

Reference #123
@drublic
Copy link
Member Author

drublic commented Dec 1, 2014

Optional Helpers for JS and CSS

We won't provide more than we currently have.

anselmh added a commit that referenced this issue Dec 3, 2014
This adds better docs to the static page builder and
therefore targets (#118).

It’s part of #123 (v2.0) though and closes #129 when
merged.
anselmh added a commit that referenced this issue Dec 3, 2014
This removes the `dest` key in the pages.json
and retrieves the filename automatically.

Unfortunately this adds another dependency as
we need to deep-extend the object but I think
this is worth it.

This is part of #131 and targets #123.
@anselmh
Copy link
Member

anselmh commented Jan 15, 2015

I’d go with grunt-generator for the static site builder. It has all the options at least I want to have and it even let me decide how to write the templates and options. What do you think @drublic?
I’ll see if I get an example branch running with it quickly.

anselmh added a commit that referenced this issue Jan 15, 2015
This is a WIP implementation and might not yet work as
expected. Please test, add configuration details while
still in the feature branch.

Targets #123.
anselmh added a commit that referenced this issue Jan 15, 2015
This is a sample implementation of a handlebar
template and page that gets generated as HTML
through the new static site generator used to
target #123.
@drublic
Copy link
Member Author

drublic commented Jan 22, 2015

The plugin looks quite nice. +1 on adding it.

@anselmh
Copy link
Member

anselmh commented Feb 6, 2015

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants