# Overview
## 👋🏼 Introduction
[Canonic](https://www.canonic.com) is a free, open-source, browser based on and for Qt's [QML](https://doc.qt.io/qt-6/qmlapplications.html) UI language as well as various other file formats.

It is maintained by [haikü](https://www.deviantart.com/haikuo) and was originally built as a way to make deploying QML applications easier.

A live web app version of the browser is available to try at [www.canonic.com](https://app.canonic.com), possibly making Canonic **the worlds first browser within a browser** thanks to the power of [WebAssembly](https://webassembly.org/).


![Image](https://raw.githubusercontent.com/canonic/canonic/main/assets/images/canonic_themes_screenshot.png)

Alternatively you can clone the [GitHub repo](https://github.com/canonic/canonic) and build from source to use natively. 

> - **Important!**  Canonic does not yet fully sandbox content it loads from the internet so only use natively if you know what your doing. See Qt's own docs on QML's [Implications for Application Security](https://doc.qt.io/qt-6/qtqml-documents-networktransparency.html#implications-for-application-security) before building natively. If this means nothing to you stick with the web app.

> A few points to keep in mind:
> 
> 1. Canonic is currently a work in progress and should be considered pre-alpha, experimental software.
> 2. WebAssembly is a relatively new platform for Qt and there is still a lot of work the Qt company is doing to make it stable (just see [here](https://bugreports.qt.io/secure/RapidBoard.jspa?rapidView=258)).
> 3. As you can imagine, as a result of [1] and [2], there are and will continue to be bugs and lots of them for a while yet. Please feel free to report any issues you run into while using Canonic here https://github.com/canonic/canonic/issues and I'll be happy to forward Qt specific problems over to the [offical qt bug tracker](https://bugreports.qt.io).


## 🎯 Why build a browser for QML?

**Some of us prefer QML to HTML**. I say this despite having spent several years over in the React space before moving to Qt. 

React is awsome, typescript is great and I love the direction GraphQL is pushing things but **QML is just better for UI development**. So much better that I spent almost a year on Canonic just so I'd never have to worry HTML again.

Not convinced? Checkout the 2022 [QML > HTML](/qml-greater-than-html) blog post for a more detailed comparision of the two. TODO


## ❔ Should I use Canonic?

This depends on who you are and what interests you.

- If your a QML developer then yes! Absolutely! Make websites, internal wikis, QML games, this browser is literally designed for you.
- If your a developer looking to try out QML or if your interested in browsers, networking, or just tech in general then sure give it a try.
- If your reaction so far has been "Nevermind QML, whats a browser?" then Canonic is probably not the browser for you...

Regardless, if your **still curious** then here's what to expect from browsing the internet with Canonic:

- All the websites you know and use everyday like Facebook, Twitter and Reddit are gone. **HTML is not supported ❗**
- Theres also **no Google**, or any kind of search engine for that matter. You have to rely on website directories and links to find other QML sites.
- Most pages / sites are simple experiments and games, very few full fledged QML sites.
- A small community with a blank canvas. I'd imagine the vibe is similar to the pre-2000s era internet but with a better UI.


## 👉 Getting Started

Does the above sound good? Then checkout the following links to get started:

- [Try the Canonic web app 🌐](https://app.canonic.com)
- [Learn more about Canonic](/features)
- [Learn how to create your own QML website](/getting-started-with-qml)

## ❔ Have more questions ?
- [Ask the discord community](https://discord.com/invite/YcsEwdaNbR)
- [Checkout the FAQ](/faq)