# What is Quark ?

Quark is a general purpose software tool specifically designed to help you create projects written in HTML, CSS and JavaScript with native desktop app like capabilities. Quark apps run on Mac, Windows, and Linux from a single codebase.

Your browser does not support the video tag.

# How does it work? 🤯

Simply Said: Quark comes with an integrated development environment(IDE) and a JavaScript runtime. You write your code in the IDE and press a button to build your project. That's all!

The IDE automatically takes care of building your project and emits a single output file which you can "double-click" on to open and run your project. We call these output files, "sketches".

For detailed explaination, read our announcement post on Medium.com

See the process in action -

Your browser does not support the video tag.

# In the example above, we create a Quark project, built the project and run the project. All done under 15 seconds!.

# Quark Apps (or Sketches) 🎨

We call apps built with Quark, Sketches. Quark itself is built on top of the Electron framework . Your sketches provide you with all the capabilities of full fledged electron apps. The difference here is that they just weigh a few kilobytes instead of hundreds of megabytes.

We achieve this functionality by using a shared JavaScript runtime for all your sketches. This runtime, in most cases, accounts for almost 99% of the weight of an electron app. This leaves us with the actual application logic, which usually only weighs a few kilobytes.

The only caveat here is that because of this shared runtime, your sketches have a direct dependency on the Quark software itself to provide for the runtime. Hence we call these projects built with Quark "sketches" and not applications.

What this means for you is that you can potentially have hundreds of sketches on your machine providing the functionality as that of full fledged electron apps, while consuming the resources equivalent to only one app!

# Web Technologies

Quark apps are built using web technologies like HTML, CSS and Javascript. If you can build a website, you already know how to build a Quark app.

# Cross Platform 🧬

Another advantage of using web technologies is that your sketches are Compatible with Mac, Windows, and Linux and run on all three platforms. Write once, run everywhere!

# Power of Electron 💪

Behind the scenes, we use electron's renderer process as the runtime for your Quark apps. This means, that you have access to all of the Node.js and Electron's renderer process API's in your app.

Anything you like, any way you like, in any style. We have out-of-the-box support for modern JavaScript, React.js, Vue.js and Typescript. Take your pick!

# Powerful build system

Thanks to the powerful Quark IDE which makes transpiling, bundling and running a project as easy as pressing a button.

Quark releases frequently. We release when there are significant bug fixes, new APIs or are updating versions of Electron or Node.js.

Once Quark releases in beta phase, it will follow semver . Before that no gurantees are made that the API will be changed in a backwards compatible way.

# First Steps

To get the most out of Quark, start by reviewing a few introductory topics: