The idea of Quark started when I was pursuing my degree in Engineering and felt a need for a software tool that would help me do things like — plot charts, app prototyping, create dashboards/GUI’s for my personal projects etc. I just needed “some place” to write my code, build small projects or test new ideas. To much of my own surprise, I could not find an easy way to do so. Hence, I decided to create this project.
How does it work? 🤯
The IDE automatically takes care of transpiling and bundling your project behind the scenes and emits a single output file which you can “double-click” on to open and run your project. We call these output files, “sketches”.
See the process in action —
“Sketches” = Electron apps on a diet. 🍎
As you might have already guessed, Quark is built upon the Electron framework. Your sketches provide you with all the capabilities of full fledged electron apps. The only difference here is that they just weigh a few kilobytes instead of hundreds of megabytes.
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!
Code Editor 📝
Quark comes built in with a powerful code-editor. The same code editor that powers the VS Code (monaco-editor). This means you get out of the box support for Intellisense, code completion, “Go to Definition”, reference search and Quick navigation (Cmd+P).
Also the editor supports around 80 different settings that you can configure to customize your editing experience.
Module Bundler 🗳️
Integrated Terminal 💻
NPM Client 📦
We have a built-in npm client so you can install dependencies and packages that you need to develop your application.
In-memory File System 📁
A Quark project exists as a single file on your machine. That means all the code that you write and files you create inside the IDE are virtual files with no foot print on your real file system. This is done to make sharing a project as easy as sharing a single file.
Application Packager 🗳️
Module bundlers are good but they cannot always package your application assets (e.g. images, videos). Well, in that case we also support an archive format. This means that you still share only one single file, to share your entire project.
Power of Electron 💪
Behind the scenes, we use electron’s renderer process as the runtime for your sketches. This means, that you have access to all of the Node.js and Electron’s renderer process API’s in your sketch.
Following are some of the sketches built with Quark —
System Resource Monitor
Digital Control Systems
A control system for your Arduino projects. Built using node-serialport library.
A split-view and multi-tabbed web browser. To much of my own surprise, this sketch was built just under 200 lines of code !!
Plot Scientific Charts
Plot advanced charts using plotly.js library.
Stock analyzing app
Analyze real-time/historic stock data. Uses Alpha Vantage API.
More use cases
If you still don’t get the picture, here are some more ideas and use-cases that you can use Quark for.
- Replace the middleman “localhost” for all your existing node projects. Directly write your Node.js code in the DOM.
- Convert existing command line interfaces(CLI) to graphical user interfaces(GUI). e.g. build GUI client for Angular, Vue.js CLI.
- Build utility projects like image converter, video converter using existing node packages like imagemin, fluent-ffmpeg etc.
- Create graphical dashboards to consume vast amounts of numeric data from various API’s. e.g. create usage explorer dashboard for google-cloud usage metrics.
The future is bright 🌟
There are a ton of awesome features coming soon. One of the main things we want to accomplish is to create an open repository of sketches built with Quark.
Imagine an open library of utility applications like image converter, video converter, To-Do app, sticky-notes app etc. that you can download on your machine at the press of a button, all providing functionality as that of full fledged electron apps while consuming resources as that of only one. This means you can potentially have hundreds of utility applications downloaded on your machine at any given time. This could lead to a massive boost in users productivity.
We’re also rapidly working on open sourcing the core tech behind Quark. Meanwhile, you can contribute to the documentation and website which is already open-sourced on our GitHub repo.
I’ll leave you now with a few relevant links below. Hope it makes your life a little bit easier, just as it has made mine! 🤞