Blog

Brad Wood

December 25, 2017

Spread the word


Share your thoughts

We've talked about what packages are, how to create them and how to publish them on Forgebox.  Now that you have the basics down, we've got some special ninja kung foo magic that will let you crank out modules with almost no effort at all.  We obviously can't implement the module for you, but there is a lot of boilerplate around creating the Git repo, scaffolding out files, setting up tests, and publishing.  We can turn all that boilerplate into 2 commands. **

** Some one-time setup required

Module Template Module

The module template module is a module that helps you create modules. Whoa-- how meta, right?  This is a CommandBox module written by our very own Eric Peterson that you install into CommandBox.  It gives you some command line tools to whip a module in no time. 

install cb-module-template

https://www.forgebox.io/view/cb-module-template

The only requirements are that you have:

  • CommandBox and the module installed (duh!)
  • A free GitHub account
  • A free forgebox.io account

When you have a cool idea for a CommandBox module, ColdBox module, or ContentBox module, just create an empty directory and run this:

module scaffold myCoolModule "Short Module Description"

What did that just do?

The first time you run those commands, the module might ask you some questions, but it will remember the answers and be able to access your GitHub account automatically the next time.   That single command will:

  • scaffold out the basic files for a Box module
  • Sets up your box.json and ModuleConfig.cfc files with defaults
  • Configures a unit and integration test suite for you
  • Creates an actual GitHub repo under your account and ties it to your local folder
  • Configures a Travis-CI build for your repo and activates it, complete with a pass/fail banner in your default readme.md!

Ready to publish your work for all the world to see?  Just one command left.  (The version starts at 0.0.0 so use --major, --minor, or --patch based on what kind of version bump you want)

bump --major

That command (which is part of CommandBox proper) will:

  • Increment the version in your box.json
  • Tag your local git repo
  • Fire the inbuilt package scripts to:
    • Update your download location to point to the new tag
    • Push the new Git tag to GitHub
    • Publish the package to Forgebox

That's a lot of individual steps that just got boiled down to 2 simple commands.  Have fun playing around with this module and you use it to get some of your projects out there on ForgeBox.

 

Add Your Comment

Recent Entries

MatchBox and WebAssembly: Running BoxLang in the Browser and at the Edge

MatchBox and WebAssembly: Running BoxLang in the Browser and at the Edge

The MatchBox open beta is live at https://boxlang.ortusbooks.com/boxlang-framework/matchbox, and it brings something genuinely new to the BoxLang ecosystem: a path into WebAssembly.

That means BoxLang code can now move into browser applications, static-site deployments, edge runtimes, and WASI-style containers - without requiring a JVM. The feature is still beta, but the core direction is already useful: write BoxLang, compile it with MatchBox, and ship the generated WASM artifact to wherever a small portable runtime makes sense.

Jacob Beers
Jacob Beers
June 04, 2026
BoxLang 1.14.0 : BoxSet is Here: BoxLang's New First-Class Set Type

BoxLang 1.14.0 : BoxSet is Here: BoxLang's New First-Class Set Type

BoxLang 1.14.0 ships something that JVM developers have wanted for a long time: a true first-class Set type baked directly into the language. Not a wrapper you reach for manually, not a createObject( "java", "java.util.HashSet" ) incantation you paste from a Stack Overflow answer years ago. A real BoxSet with literal syntax, operator overloads, a full functional pipeline, change listeners, JSON serialization, and deep Java interop.

Luis Majano
Luis Majano
June 03, 2026
BoxLang 1.14.0 : Sets, Ranges, Inner Classes, and a Runtime That Talks Back

BoxLang 1.14.0 : Sets, Ranges, Inner Classes, and a Runtime That Talks Back

BoxLang has never stood still, but 1.14.0 is something different. This is the release where the language stops filling gaps and starts defining what a modern dynamic JVM language looks like on its own terms. Sixty-five issues closed. Four innovative language features. A formatter that has grown up. And a companion module - bx-mcp - that fundamentally changes how you operate a running BoxLang application with AI.

Luis Majano
Luis Majano
June 03, 2026