โ— PHANTOM
๐Ÿ‡ฎ๐Ÿ‡ณ IN
โœ•
Skip to content

A centralized directory of featured applications, clients, tools, and integrations for LizardByte projects.

License

Notifications You must be signed in to change notification settings

LizardByte/app-directory

LizardByte App Directory

A centralized directory of featured applications, clients, tools, and integrations for LizardByte projects.

Repository Structure

app-directory/
โ”œโ”€โ”€ .github/workflows/
โ”‚   โ””โ”€โ”€ build.yml              # Auto-build and deploy
โ”œโ”€โ”€ apps/                      # App definitions
โ”‚   โ”œโ”€โ”€ moonlight/
โ”‚   โ”œโ”€โ”€ tools/
โ”‚   โ””โ”€โ”€ integrations/
โ”œโ”€โ”€ projects/                  # Project configurations
โ”‚   โ””โ”€โ”€ sunshine/
โ”‚       โ”œโ”€โ”€ project.json       # Project config
โ”‚       โ””โ”€โ”€ categories.json    # Project categories
โ”œโ”€โ”€ schemas/                   # JSON schemas
โ”‚   โ”œโ”€โ”€ app.schema.json        # App definition schema
โ”‚   โ”œโ”€โ”€ categories.schema.json
โ”‚   โ””โ”€โ”€ project.schema.json
โ”œโ”€โ”€ scripts/
โ”‚   โ”œโ”€โ”€ build-index.js
โ”‚   โ””โ”€โ”€ clean.js
โ”œโ”€โ”€ dist/                      # Generated (deployed to gh-pages)
โ”‚   โ”œโ”€โ”€ index.json
โ”‚   โ””โ”€โ”€ sunshine.json
โ”œโ”€โ”€ package.json
โ””โ”€โ”€ README.md

Quick Start

Installation

npm install

Build Indexes

npm run build        # Build all project indexes
npm run validate     # Validate all JSON files
npm run lint         # Lint JavaScript files
npm run lint:fix     # Auto-fix linting issues
npm test             # Validate + lint + build
npm run clean        # Remove dist directory

Usage

For Project Web UIs

Each project has its own generated index file:

// For Sunshine
const response = await fetch('https://lizardbyte.github.io/app-directory/sunshine.json');
const data = await response.json();

// For master index (all apps)
const response = await fetch('https://lizardbyte.github.io/app-directory/index.json');
const data = await response.json();

Adding a New App

  1. Create a JSON file in the appropriate apps/ subdirectory
  2. Follow the schema defined in schemas/app.schema.json
  3. Validate: npm run validate
  4. Submit a pull request
  5. Indexes will be automatically regenerated and deployed

Example: See the Moonlight app definitions:

Schema Fields

Required Fields

  • id: Unique identifier (kebab-case)
  • name: Display name
  • description: Full description
  • category: Category ID (must match a category in your project's categories.json)
  • platforms: Array of supported platforms (windows, macos, linux, android, ios, web)

Optional Fields

  • tagline: Short one-liner
  • icon: URL to app icon (512x512 PNG recommended)
  • screenshots: Array of screenshot URLs
  • links: Object with website, github, download, documentation URLs
  • tags: Array of searchable keywords
  • featured: Boolean to highlight the app
  • compatibility: Version requirements for host projects

Adding a New Project

  1. Create a project directory: projects/{project-name}/
  2. Create project configuration: projects/{project-name}/project.json
  3. Create project-specific categories: projects/{project-name}/categories.json

Example: See the Sunshine project configuration:

Automation & Deployment

GitHub Actions automatically:

  • โœ“ Validates all JSON files against schemas (apps, projects, categories)
  • โœ“ Lints JavaScript files with ESLint
  • โœ“ Builds project-specific indexes in dist/ directory
  • โœ“ Deploys to GitHub Pages (dist branch)
  • โœ“ Runs on every push and pull request

npm Scripts

npm run validate     # Validate all JSON files
npm run lint         # Lint JavaScript files
npm run lint:fix     # Auto-fix linting issues
npm run build        # Build all indexes
npm run build:all    # Validate + lint + build
npm test             # Same as build:all
npm run clean        # Remove dist/ directory

CDN & Access

The built indexes are deployed to GitHub Pages and accessible via:

GitHub Pages (Recommended)

https://lizardbyte.github.io/app-directory/{project}.json
https://lizardbyte.github.io/app-directory/index.json

jsDelivr CDN (Faster, Global)

https://cdn.jsdelivr.net/gh/LizardByte/app-directory@dist/{project}.json

Raw GitHub (Slower)

https://raw.githubusercontent.com/LizardByte/app-directory/dist/{project}.json

Contributing

  1. Fork the repository
  2. Add your app JSON file
  3. Ensure it validates against the schema
  4. Submit a pull request
  5. Maintainers will review and merge

License

Apps listed in this directory retain their original licenses. This directory structure and metadata is MIT licensed.

About

A centralized directory of featured applications, clients, tools, and integrations for LizardByte projects.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages