Project Structure
A TypeScript project keeps application code in app.tsx and development commands in package.json.
#Generated files
my-app/
├── resources/
│ └── icon.png
├── app.tsx
├── quickgui.config.ts
├── tsconfig.json
├── package.json
└── README.mdKeep reusable components in ordinary TypeScript modules. Build output lives in .quickgui; packaged apps live in dist.
#Application entry
Import app and Window from @quickgui/native. Import components and createRenderer from @quickgui/solid. Await app.whenReady() before opening windows. Each window has its own renderer, disposed when the window closes.
#Configuration
import { defineConfig } from "@quickgui/cli";
export default defineConfig({
language: "typescript",
name: "My App",
identifier: "com.example.my-app",
entry: "app.tsx",
fonts: ["assets/MyFont.ttf"],
});The application icon comes from resources/icon.png. Extra files can be listed in resources. See App Icon and Bundled Resources. TOML supports the same keys. In tsconfig.json, set jsx to "preserve" and jsxImportSource to "@quickgui/solid".
#Packages
Applications depend on @quickgui/native, @quickgui/solid, and solid-js. @quickgui/cli is a development dependency. Terminal and updater are optional packages — see Auto Updater and Authoring Extensions.
#Local development
quickgui check
quickgui test
quickgui fmt
quickgui dev
quickgui buildcheck typechecks the project. test runs tests with the same compiler as builds.
