I love Ruby. I still maintain telegem, a Telegram bot framework used by real people. Ruby pays my bills and makes me happy.
But I also wanted speed. I wanted binaries. I wanted to stop debugging "undefined method for nil" at 3 AM.
So I tried Crystal.
It looked just like Ruby. I was confident. Then the compiler yelled at me. For days. For weeks. For 64 failed pipelines.
This guide is what I wish I had on day one.
The Complete Guide: Ruby to Crystal
I just published a comprehensive, free guide for Rubyists moving to Crystal. It covers:
- Quick Comparison - The "looks the same" trap
Side-by-side code examples showing where Ruby and Crystal diverge. Read →
- The &. Problem - Why your favorite operator will fight you
How safe navigation works (and doesn't work) in Crystal, and the reliable patterns that always compile. Read →
- Type System - Friend, not foe
Understanding union types, nil checking, and why the compiler is actually saving you. Read →
- Hashes & Collections - NamedTuples will surprise you
The three ways to store data in Crystal and when to use each. Read →
- Classes & Modules - Same but different
Instance variables, property shortcuts, and why self. sometimes saves the day. Read →
- Require Order - The dependency dance
Why order matters and how to structure your project to avoid headaches. Read →
- Common Errors Decoded - What the compiler is actually saying
A translator for those scary error messages. Read →
- Why Crystal - The case for switching
Performance, safety, and peace of mind. Read →
🛠 Projects Built While Learning
The guide is free, but if you want to see real Crystal code, check out:
- tg-auth - Telegram authentication for Crystal
- telecr - Telegram bot framework (the Crystal version of telegem)
📖 Read the Guide
GitHub Repo: slick-phantom/ruby-crystal
The guide is completely free, open source, and ready for contributions. If you find something confusing, open an issue. If you want to improve it, send a PR.
Ruby gave me joy. Crystal gives me peace
Top comments (0)