Render HTML safely
Problem. You are rendering Bigodin output into an HTML document, possibly with user-controlled context values, and you need to escape `, &, ", and '` to prevent injection.
Cache parsed ASTs
Problem. You render the same templates many times, possibly across services, and parsing them on every request is wasted work. You want to parse once and run many times.
Bound execution time
Problem. You are rendering templates submitted by end users. A buggy or hostile template can spin in a helper, recurse pathologically, or allocate enough output to be a denial-of-service vector. You need a hard ceiling on render time and a way to stop early on business conditions.
Write async helpers
Problem. A template needs a value that requires I/O, a database query, an HTTP call, a file read. You want to keep the template readable and let the helper do the asynchronous work.
Handle helper errors without failing the render
Problem. A helper can fail: an HTTP call times out, a record is missing, an input is invalid. If the helper throws, the whole render rejects and the user gets nothing. You want the rest of the template to render, and you want the template to decide what to show in place of the failed value.
Migrate from Mustache
Problem. You have templates written for Mustache (or Handlebars) and want to render them with Bigodin.