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

BoxLang v1.12.0 - Destructuring, Spread, Ranges, Watchers, Oh My!

BoxLang v1.12.0 - Destructuring, Spread, Ranges, Watchers, Oh My!

BoxLang 1.12.0 marks a meaningful turning point. After establishing a rock-solid foundation across runtime, compiler, CFML compatibility, and the module ecosystem, BoxLang has entered its innovation cycle. The language is mature, battle-tested, and production-deployed across the industry.

Luis Majano
Luis Majano
April 08, 2026
The Loneliness of CTO Leadership: How to Make Important Decisions with Confidence

The Loneliness of CTO Leadership: How to Make Important Decisions with Confidence

Being a CTO can be surprisingly isolated.

Not because of the title, but because of the decisions.

Every day, you’re expected to make calls that impact system stability, performance, security, team productivity, and long term costs. And often, you’re making those decisions with incomplete information, limited resources, and no real sounding board.

That’s where the real challenge begins.


It’s Not a Talent Problem, It’s a Context Problem

Most CTOs don’...

Cristobal Escobar
Cristobal Escobar
April 07, 2026
How to Develop AI Agents Using BoxLang AI: A Practical Guide

How to Develop AI Agents Using BoxLang AI: A Practical Guide

AI agents are transforming how we build software. Unlike traditional chatbots that just answer questions, agents can reason about what tools they need, decide when to use them, chain multiple actions together, and remember what happened earlier in a conversation.

Luis Majano
Luis Majano
April 03, 2026