Lets take the typical web development process:

typical web development process

A sketch is created for some idea. A designer may transform this into PSD's for the app/site. Development starts by splitting the design into HTML, CSS and JavaScript layers which are further developed as three separate, but very inter-connected subprojects.

Stark changes this process: you build the app or site out of small components that encapsulate HTML/template, CSS and JavaScript parts. The components depend on each other. Stark does the rest.

Stark way of building sites

Building a web project this way reduces complexity: the number of interconnected layers / dependency trees a developer has to keep in mind. The components (although consisting of parts in different languages) have very high cohesion and reduce coupling. They visually map to what one sees on the screen in the final result.

You may notice that the idea is very similar to Web Components. However there are some differences:

How Multi-Part Components work

Components from files with the same extension

MPC file contents look like this:

--- html ---
 
<!-- Note: empty lines between part content and header are mandatory. -->
 
--- css ---
 
/* You can add as many minuses at the end of header as you like: */
 
--- js --------------------------------------------------------
 
/// Tip: use comments to further structure your code. ---------

Components can depend on each other. This is expressed in their requirement part:

--- requirements ---
 
jquery/dist/jquery
Widget2:    ./widget2

Stark builds a single dependency graph from these requirements (starting from index.mpc file) and generates HTML, CSS, JavaScript files for your app or site.

Stark builds from component requirements.