Quark.py | Build apps with HTML, CSS & JS banner

Quark.py | Build apps with HTML, CSS & JS

4 devlogs
3h 46m 43s

Quark.py is a lightweight Python framework for packaging HTML, CSS, and JS code into simple desktop apps. It is about 65% lighter than Electron in file size and does not bloat with Chromium. My framework was carefully crafted with optimization tec…

Quark.py is a lightweight Python framework for packaging HTML, CSS, and JS code into simple desktop apps. It is about 65% lighter than Electron in file size and does not bloat with Chromium. My framework was carefully crafted with optimization techniques like lazy loading, memory management etc.

Why use Quark.py instead of other frameworks like Electron?

  • HTML, CSS and JS packed into desktop apps.
  • Very light and uses Python.
  • Does not packs Chromium inside the apps.
  • Faster startup than other frameworks and quite optimized.
  • Caching strategies implemented for improved performance.
  • Easy distribution of apps.
This project uses AI

Used ChatGPT for debugging and fixing Python errors.

Demo Repository

Loading README...

Ahnaf

Shipped this project!

Hours: 2.48
Cookies: 🍪 22
Multiplier: 7.15 cookies/hr

PLS READ: Eventhough, the purpose of the app has been mentioned many users who are new to such projects get confused, so in simple words, my project is made using python and this project is used for building SIMPLE apps out of pure html css and js codes.
This is my second ship, here most of the work were related to optimization techniques since on last ship I was not able to achieve the optimization achievement due to lack of proof and real work done, So I hope I have fixed all my mistakes now. Thank You!

Ahnaf

I have updated the README.md with 2 major optimization techniques that I have used in the project, and also updated the repo with some codes, that help in further optimization, since in my last devlogs, ships and previous readme, real optimization and their proof were not shown. So this devlog is fully dedicated on adding lazy loading techniques and asset/app size minimization with proof (ive attached image of one proof here). Check the README for detailed info.

Attachment
0
Ahnaf

Updated Devlog: I actually found a way to clone the directories and files of the project through this package! Check the read me for updated instructions.

Old Devlog: After lots of errors once again we have accomplished another target, I reserved a PyPI package namespace for my project. It might not seem helpful for us right now, but when the project grows, we might need it. Fyi, It does pretty much nothing as of now other than holding the name, because later on we might not find the desired name for the package, so don’t try installing it.

Attachment
0
Ahnaf

After lots and lots of debugging from previous codes regarding compatibility issues across various versions of Windows 10/11, I have finally fixed it by simplifying the codes. Instead of using two Python files to manage, which were one for icons, libraries, etc., and another for creating the window. I have just kept the one for creating a window and handling the icon through the commands.
Here are the major fixes done:

  1. Optimization: Decreased the number of files.
  2. Compression: .exe is alone a single app now, does not depend on any directory like /.internal
  3. Fixed icon: Sometimes icons did not appear, patched that through commands.
  4. Compatibility issues: Fixed WebView2 errors.
0
Ahnaf

Shipped this project!

Hours: 1.3
Cookies: 🍪 10
Multiplier: 7.36 cookies/hr

Last time in summer of making I built a browser with electron, later on I thought. Why would someone use a browser that was made on a browser itself? It was basically a bloat house with file size going over 150MB! Then I thought why could’nt we use python, afterall that is a good old language that can be used to great project. Soon I learnt about the webview of python (pywebview) and that gave me and idea. So I used it to render html instead of flask and then package it as .exe (I’ll think of adding other platform support later on) with another library (pyinstaller). And BOOM. now a simple idea turned into an actual game changer for making simple apps. It did not require much effort thanks to those libraries and a fabulous brain that god gifted us all!

Ahnaf

This is a very simple frame project made only using pyinstaller for packaging of app and pywebview to show the html/css/js content.
What was done:

  • project created and worked with adding the required libraries. (added in requirements.txt)
  • used –onedir and –strip for optimization and many others.
  • debugged the project for common issues.
  • packed app was tested for any bugs
  • crafted readme.md
Attachment
0