Blog

Luis Majano

April 08, 2026

Spread the word


Share your thoughts

We believe the best way to learn a programming language is by writing code — real code, with real feedback, and real tests. That's exactly why we built BoxLings.

Inspired by the beloved rustlings project, BoxLings is an interactive CLI tool that teaches you BoxLang through hands-on exercises. You read failing tests, fix broken code, and level up — one exercise at a time.

Oh, and the whole thing is written in BoxLang itself. 🥊 Dogfooding at its finest.


What Is BoxLings?

BoxLings gives you 129 progressive exercises across 28 topics — from the basics of variables and functions all the way to async programming, Java interop, destructuring, and CLI app development.

But here's what makes BoxLings different: we teach TDD/BDD as a first-class skill, not an afterthought, using TestBox; our BDD/TDD testing library.

From day one, you'll read TestBox specs before touching any implementation code. You'll learn to think in tests. By the time you hit the intermediate exercises, you'll be writing your own. By Phase 3, you'll be doing the full red-green-refactor cycle like a pro.


The Full Learning Path

BoxLings is organized into three progressive phases, with 28 topics and 129 exercises total.

🟢 Phase 1 — Core Fundamentals (50 Exercises)

Perfect for beginners and developers new to BoxLang:

#TopicExercisesWhat You Learn
1Introduction2Get started with BoxLings and BoxLang basics
2Variables6Dynamic typing, the var keyword, scoping basics
3Functions6UDFs, closures, lambdas
4Conditionals4if/else, ternary, switch
5Data Types8Strings, numbers, booleans, arrays, structs
6Arrays4Array operations and member functions
7Scopes5variables, local, this, arguments scopes
8Structs5Struct manipulation and operations
9Strings6Interpolation, multi-line strings, string operations
10Imports4Importing classes and the java: prefix

🟡 Phase 2 — Intermediate (40 Exercises)

Dive deeper into BoxLang's power features:

#TopicExercisesWhat You Learn
11Structs Advanced4Deep operations, merging, complex manipulation
12Null Handling4Elvis operator, safe navigation
13Error Handling6try/catch, throw, custom exceptions
14Interfaces4Implementing Java interfaces from BoxLang
15Testing5Write your own TestBox specs!
16Functional8map, filter, reduce, lambdas
17Async6Threads, futures, async programming
18Components3bx:http, bx:query, and more

🔴 Phase 3 — Advanced (48 Exercises)

Master BoxLang-specific and power-user features:

#TopicExercisesWhat You Learn
19Casting5castAs, javaCast, type conversions
20Quizzes3Comprehensive knowledge reviews
21Classes8OOP, properties, metadata
22BIFs6Built-in functions and member functions
23Templating4.bxm files and template syntax
24CLI Apps4Building real CLI tools with BoxLang
25Java Interop6Calling Java, the java: prefix in depth
26Destructuring4Struct and array destructuring, renaming, nesting
27Spread4Spread operator for arrays, structs, and function calls
28Range2The .. range operator and functional methods
29Assert2The assert statement with custom messages

The TDD/BDD Learning Journey

BoxLings teaches test-driven development alongside BoxLang in four progressive stages:

Step 1 — Reading Tests (Topics 1–10) Read TestBox specs to understand requirements. Tests are your documentation.

Step 2 — Understanding Patterns (Topics 11–14) Multiple assertions, setup/teardown with beforeEach/afterEach, edge cases, and error scenarios.

Step 3 — Writing Tests (Topic 15) Now you write the specs. Practice describe / it / expect from scratch.

Step 4 — Full TDD Cycle (Topics 16–29) Red → Green → Refactor. The real deal.


How It Works

git clone https://github.com/ortus-boxlang/boxlings.git
cd boxlings
boxlang BoxLings.bx

BoxLings drops you into watch mode — it monitors your exercise files and reruns them automatically every time you save. Fix the code, hit save, see the tests go green.

Keyboard shortcuts in watch mode:

KeyAction
nNext exercise
hShow hint
tShow test file
lList all exercises
rRerun current exercise
qQuit

Three exercise types are supported: scripts (.bxs), classes (.bx), and templates (.bxm), covering the full breadth of how BoxLang is used in practice.


Built for Learners, Classrooms & Workshops

BoxLings is self-contained and runs completely offline after the initial clone. Whether you're learning solo, teaching a workshop, or onboarding a new team member, BoxLings provides a structured, guided path with immediate feedback.

Estimated completion time:

  • 🆕 Beginners: ~15–20 hours
  • 💻 Experienced developers new to BoxLang: ~6–10 hours
  • 🔥 Java/CFML developers: ~4–6 hours

Get Started

You'll need BoxLang 1.12+. We recommend BVM to manage your BoxLang versions:

curl -fsSL https://install-bvm.boxlang.io/ | bash
bvm install 1.12.0
bvm use 1.12.0

Then clone and go:

git clone https://github.com/ortus-boxlang/boxlings.git
cd boxlings
boxlang BoxLings.bx init
boxlang BoxLings.bx

Join the Community

We'd love to hear what you think — and contributions are very welcome. New exercises, bug fixes, documentation — all of it.

👉 github.com/ortus-boxlang/boxlings

Now go fix some broken code. 🥊

Add Your Comment

Recent Entries

MatchBox Web Server: BoxLang Without the Full Server Stack

MatchBox Web Server: BoxLang Without the Full Server Stack

MatchBox includes a native web runtime for building small, fast BoxLang web applications without requiring a JVM or a traditional servlet container. You can follow the MatchBox open beta at https://github.com/ortus-boxlang/matchbox. There are two related pieces in the beta today: a webroot server for .bxm templates and static assets, and a routed app server built around web.server(). Both are early, but they show the direction clearly: BoxLang should be able to serve HTTP from a compact native runtime when the application does not need the full JVM stack.

Victor Campos
Victor Campos
July 07, 2026
Ortus & BoxLang June Recap 2026

Ortus & BoxLang June Recap 2026

July was packed with exciting advancements across the Ortus ecosystem, bringing new BoxLang releases, powerful developer tools, and continued innovation in AI and multi-runtime development.

Victor Campos
Victor Campos
July 06, 2026
Ortus Solutions and BoxLang at CFCamp 2026: Platinum Sponsor, Keynote Leaders, and a Full Lineup of Innovation

Ortus Solutions and BoxLang at CFCamp 2026: Platinum Sponsor, Keynote Leaders, and a Full Lineup of Innovation

CFCamp 2026 was an important milestone for the Ortus Solutions team and for the growing BoxLang ecosystem.

This year, Ortus Solutions participated as a Platinum Sponsor and had the honor of leading the official Keynote, where Luis Majano, Brad Wood, and Jacob Beers shared major updates around ColdBox, BoxLang, AI, and multi-runtime support.

The message was clear: the CFML ecosystem is not standing still. With BoxLang, ColdBox, C...

Cristobal Escobar
Cristobal Escobar
July 02, 2026