Lucee In The Sky With Diamonds

Debt Decimator is a debt payoff assistant that tells you what to pay and when, ensuring the fastest path to debt freedom. It is proudly built atop the Lucee scripting language. Here's why.

Building web applications is getting easier every day. Yet with all the various options available, this open-source CFML engine was hard to ignore. And, much to the chagrin of CF's critics, the reports of its <CFDEMISE> have been greatly exaggerated.

For Debt Decimator, our needs were straightforward. We wanted to:

  • scaffold and develop with ease,
  • support a PostgreSQL back-end,
  • provide REST services (for an Angular front-end),
  • interchangeably develop and deploy on Win64 / Linux,
  • Optionally have access to a CLI for quick-and-dirty testing & debugging,
  • Work within an established and supportive developer ecosystem, and
  • Have a cost-effective option.

Lucee stepped up to the challenge and did not disappoint.

A cfscript snippet that powers Debt Decimator's ability to balance your cards' payments evenly across a month
A cfscript snippet that powers Debt Decimator's ability to balance your cards' payments evenly across a month

Writing in cfscript is a breeze as it closely mirrors the ECMAScript style of JavaScript (which also plays a role in Debt Decimator). Naysayers have long criticized CF's tag-based language -- a silly argument to make, considering the brunt of the middle-tier lives almost exclusively in cfscript (something our friends in the Node.js community would appreciate). Much of contemporary web development leverages some flavor of semantic-templating to expedite development (eg. Handlebars), so perhaps those old tag-based conventions weren't so <CFCRAZY> after all!

We were pleasantly surprised to find that Lucee supported contemporary CLI style debugging and package management (via CommandBox). Immediate feedback from inlining code snippets in a REPL is (in our HUMBLE opinion) one of the biggest boosts to productivity around. We're also huge fans of the ability to scaffold entire web projects in a single line of code; CommandBox conveniently provides an interface to spin up Lucee projects -- this, in turn, assists in setting up testing frameworks. Time saved = time earned (much like credit)!

Perhaps the biggest key in our decision fell simply to cost: much like Debt Decimator's customers, we're also riding on a finely tuned budget. To get the maximum amount of functionality for the minimal up-front investment, we looked no further than Lucee -- there's no need for Enterprise Sidekiq licensing when an enhanced job system is built in! But more importantly, we wished to keep a close eye on those hidden, intangible costs associated with:

  • a lack of tools,
  • the challenges of debugging complex or poorly documented functionality, and
  • an absence of support from a developer community.

As with any technical obstacle, how quickly we overcome a programming hurdle is a line-item on our own budgeting spreadsheet -- the smoother, the better. Thanks to Lucee, that journey is smooth enough to be described as tangerine dreams and marmalade skies.

Unnecessary spending on credit cards accrues financial debt. In the technical world, we have a similar analogy: wasteful, poorly-written code adds to technical debt. And as with credit cards, that technical debt eventually comes due: maintenance costs rise, misbehaving servers crash, and customers walk away. By choosing to run atop Lucee, Debt Decimator plans to keep its debt in that our customers do the same.

Originally published at