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

Open at the Core. Ready for Production: BoxLang

Open at the Core. Ready for Production: BoxLang

Open source should give developers freedom not push them into a corner when an application becomes successful.

That principle shaped one of the most important segments of the Into the Box 2026 Day 1 keynote: the continued evolution of BoxLang+, BoxLang++, and the growing ecosystem of professional modules surrounding the language.

Maria Jose Herrera
Maria Jose Herrera
August 20, 2026
BoxLang in Motion: Modern Web App Development

BoxLang in Motion: Modern Web App Development

The Day 1 keynote at Into the Box 2026 was not simply a list of new BoxLang features.

It showed what happens when a language, compiler, runtime, deployment model, and developer ecosystem evolve together around one goal: helping teams build modern applications without unnecessary complexity.

Victor Campos
Victor Campos
August 18, 2026
Introducing BoxLang AI Explorer: A Local Catalog for Every AI Pattern

Introducing BoxLang AI Explorer: A Local Catalog for Every AI Pattern

Learning a new AI API usually means jumping between scattered documentation pages, guessing at imports, and copy-pasting code that may or may not still work. We wanted something better for BoxLang AI, so we built the BoxLang AI Explorer: a local, browser-based catalog of runnable BoxLang AI examples, organized by category and difficulty, each with guidance, source code, and sample output.

Luis Majano
Luis Majano
August 14, 2026