Menu

Quick Start

Get up and running with Luna in under 5 minutes.

Create a New Project

TypeScript/JSX

npx @luna_ui/luna new myapp
cd myapp
npm install
npm run dev

MoonBit

npx @luna_ui/luna new myapp --mbt
cd myapp
moon update
npm install
npm run dev

What's Generated

TSX Project Structure

myapp/
โ”œโ”€โ”€ index.html
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ tsconfig.json
โ”œโ”€โ”€ vite.config.ts
โ””โ”€โ”€ src/
    โ”œโ”€โ”€ main.tsx
    โ””โ”€โ”€ App.tsx

MoonBit Project Structure

myapp/
โ”œโ”€โ”€ index.html
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ moon.mod.json
โ”œโ”€โ”€ vite.config.ts
โ”œโ”€โ”€ main.ts
โ””โ”€โ”€ src/
    โ”œโ”€โ”€ moon.pkg.json
    โ””โ”€โ”€ lib.mbt

Manual Setup

If you prefer to set up manually:

Install

npm install @luna_ui/luna

Configure TypeScript

tsconfig.json:

{
  "compilerOptions": {
    "jsxImportSource": "@luna_ui/luna"
  }
}

Configure Vite

vite.config.ts:

import { defineConfig } from 'vite';

export default defineConfig({
  esbuild: {
    jsx: 'automatic',
    jsxImportSource: '@luna_ui/luna',
  },
});

Next Steps