npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

rbx-forge

v1.0.0-beta.8

Published

A roblox-ts and Luau CLI tool for fully-managed Rojo projects

Readme

rbx-forge

npm version npm downloads CI bundle JSDocs License

A roblox-ts and Luau project workflow tool for fully-managed Rojo projects

rbx-forge gives you simple commands (init, watch, build, open) that handle the full workflow: TypeScript compilation → Rojo builds → Studio integration -> sync changes back to the filesystem. No script boilerplate needed.

Requirements

  • Node.js >= 22.16.0
  • Rojo - Install from rojo.space or optionally via uplift-games/rojo
  • Task Runner (optional) - npm, pnpm, or mise for script generation

Installation

The recommended way to use rbx-forge is with npx, which automatically installs it to your project:

npx rbx-forge init

This runs you through a setup wizard that installs rbx-forge to your project, creates rbx-forge.config.ts, and generates task runner scripts.

Alternative: Global Installation

If you prefer to install globally:

pnpm add -g rbx-forge

Then run rbx-forge init in your project.

Quick Start

# Install and set up
npx rbx-forge init

# Start development server
rbx-forge start  # Builds your place file and opens Studio

# When you're done
rbx-forge stop

Commands

| Command | Description | | ---------- | ------------------------------------------------------------- | | init | Initialize a new rbx-forge project | | build | Build the Rojo project to an output file | | compile | Compile TypeScript to Luau (roblox-ts projects only) | | serve | Start the Rojo development server | | watch | Watch and rebuild on file changes | | start | Full workflow: compile, build, open Studio, optional syncback | | stop | Stop running Roblox Studio processes | | open | Open place file in Roblox Studio | | restart | Restart the current workflow | | syncback | Sync changes from place file back to source | | typegen | Generate TypeScript types from Rojo sourcemap |

Configuration

rbx-forge uses rbx-forge.config.ts (recommended), rbx-forge.config.json, or package.json for configuration. The init command creates a TypeScript config for you with full type safety.

Basic config

import { defineConfig } from "rbx-forge";

export default defineConfig({
	// Where Rojo builds to
	buildOutputPath: "game.rbxl",

	// Customize generated script names (optional)
	commandNames: {
		build: "forge:build",
		serve: "forge:serve",
	},

	// "rbxts" or "luau"
	projectType: "rbxts",
});

Advanced options

You can also configure:

  • roblox-ts compiler settings (rbxts.args, rbxts.command)
  • Syncback behavior (syncback.runOnStart, syncbackInputPath)
  • Type generation (typegen.include, typegen.exclude, typegen.maxDepth)

See docs/configuration.md for all options.

Script Generation

rbx-forge init creates scripts in your task runner:

package.json:

{
	"scripts": {
		"forge:build": "rbx-forge build",
		"forge:serve": "rbx-forge serve"
	}
}

mise (.mise.toml):

[tasks."forge:build"]
run = [ "rbx-forge build" ]

Customize these however you want - add pre/post hooks, chain commands, etc.:

{
	"scripts": {
		"forge:build": "echo 'Building...' && rbx-forge build",
		"forge:serve": "rbx-forge build && rbx-forge serve",
		"preforge:serve": "echo 'Preparing to serve...'"
	}
}

rbx-forge respects your runner context when chaining commands, so your hooks will execute.

Or skip scripts entirely and use the CLI: rbx-forge build

License

MIT - Copyright for portions of rbx-forge are held by osyrisrblx 2021, as part of rbxts-build. All other copyright for rbx-forge are held by Christopher Buss, 2025.

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

Acknowledgments