Announcing Strange: A more powerful logger

I know what you're thinking, "why another logger?!" I'll tell you why. Nothing out there currently has the features that I'm looking for in a logger. It seems like every logger in the Crystal ecosystem is super opinionated and lacks support for custom formatting and transports, so I created Strange.

Strange is a logger for those who want to do more with logs than just print them to the console. It supports all of the levels outlined in RFC5424, custom transports that allow you to define exactly where your logs go (whether that be the console, a file, or an external service), and custom formatters that let you format the output exactly how you want.

Strange is inspired by Winston, a powerful logger for NodeJS.

Please check it out and make sure to visit the issue tracker if you have any questions, a feature request, or just want to tell me I suck 😝

Dead simple HTML form builder with built-in support for many popular UI libraries such as Bootstrap

https://github.com/westonganger/form_builder.cr

Dead simple HTML form builder for Crystal with built-in support for many popular UI libraries such as Bootstrap. Works well with your favourite Crystal web framework such as Kemal, Amber, or Lucky.

form_html_str = FormBuilder.form(theme: :bootstrap_4_vertical, action: "/products", method: :post, form_html: {style: "margin-top: 20px;", "data-foo" => "bar"}) do |f|
  f << f.field(name: "name", type: :text, label: "Name")
  f << f.field(name: "sku", type: :text, label: "SKU")
  f << "<strong>Hello World</strong>"
end