Ludicord
Guide 02 · Start here

Installation

Requirements, generator choices, package managers, and your first local run.

Ludicord 3.1.0Public source 20c4889

The project generator is the supported way to start a Ludicord Activity. It creates the required conventions, pins compatible framework dependencies, and avoids manual runtime wiring.

#System requirements

RequirementSupported value
Node.js20.19 or newer
Operating systemsWindows, macOS, and Linux
React18.3 or 19; the generator uses React 19
Package managersnpm, pnpm, Yarn, and Bun
BrowserA modern Chromium, Firefox, or Safari browser for local preview

Use the current Node LTS release for new projects. Older Node versions can fail before Ludicord starts because the compiler and development dependencies use modern platform APIs.

#Interactive installation

Run the command without flags to answer two short prompts:

Terminalbash
1npx create-ludicord-app@latest
texttext
1Project name: my-activity
2Use Tailwind CSS? (Y/n) Y

The project directory must be empty. Ludicord stops instead of overwriting existing files.

#Generator options

Terminalbash
1npx create-ludicord-app@latest my-activity --tailwind --package-manager pnpm --git
OptionPurpose
--package-manager npm|pnpm|yarn|bunSelects the installer and prints matching next steps
--tailwindInstalls Tailwind CSS 4 and its Vite integration
--no-tailwindCreates the same Activity with plain global CSS
--gitInitializes a Git repository after files are written
--no-installWrites the project without installing dependencies
--helpPrints all supported options
--versionPrints the generator version

Do not pass both --tailwind and --no-tailwind. For scripts or agents where no terminal prompt is available, Tailwind remains the default.

#Tailwind CSS support

Choosing Tailwind installs tailwindcss and @tailwindcss/vite, then places the import in the global stylesheet:

csscss
1/* file: app/globals.css */
2@import "tailwindcss";
3
4:root {
5 --ludicord-safe-top: var(--sait, env(safe-area-inset-top, 0px));
6 --ludicord-safe-bottom: var(--saib, env(safe-area-inset-bottom, 0px));
7}

Ludicord detects the integration. You do not create or expose a Vite configuration file just to use Tailwind.

#Install an existing project

When cloning a Ludicord app, use the lockfile's package manager:

Terminalbash
1npm install
2npm run dev

The three application scripts should stay simple:

package.jsonjson
1{
2 "scripts": {
3 "dev": "ludicord dev",
4 "build": "ludicord build",
5 "start": "ludicord start"
6 }
7}

Additional maintenance commands may be documented separately, but the generated README keeps the main lifecycle focused on these three.

#Verify the installation

A correct local start prints the Ludicord version, local URL, and compile timing. The page should render the starter dashboard. If Discord data is unavailable in the browser, that is expected; complete the URL mapping and launch from Discord before debugging the hooks.

#Next step

Open Project structure to learn why each generated file exists before replacing the starter UI.