Logo
Published on

My First Ruby Project

Authors

Hello and Welcome

I took a week off from developing my game to focus on a side project and explore a new programming language in the process. Still actively seeking a job, I stumbled across a listing from 37signals for a Junior Rails Programmer position. It's been many years since I last dabbled in Rails, but I decided to revisit it and give it another shot, since it was relevant to the job description.

I was honestly shocked at how fast it was to get up and running incredibly quickly. Admittedly, there were some frustrating hours spent trying to install TailwindCSS, which is kinda crazy because you'd think it would be so easy to install a simple css package, but beyond that, the experience was smooth.

It took me an entire night to realize that TailwindCSS isn’t compatible with Importmap. I didn't even know what Importmap was but kept the default framework since I was (and still am for the most part) unfamiliar with Ruby at the time. Thankfully, I found a CLI command that enabled me to scaffold the project using ESBuild with TailwindCSS as the CSS package, and I was finally ready to dive in.

The scaffolding process in Rails is also very straightforward. Simple CLI commands allowed me to set up the app and get the core functionality working within an hour. Then, of course, I had to spend some time to improve the visual styling and add extra functionality, like exporting options for sessions and projects.

What I Built

I created a tool that I’m already using! It’s a DevLog application designed to help me document my projects, track my progress, and write about any challenges I encounter. I think this app will be particularly useful for reviewing issues and lessons learned over time.

On top of that, I’ve recorded my build process and shared it in a YouTube video! If you’re interested, you can check it out here.


How the App Works

  1. Create a Project: Start by creating a new project in the app.
  2. Start a Session: When you sit down to work on a project, initiate a session.
  3. Add Notes: You’ll be prompted to provide details about what you’ll be working on along with any opening notes.
  4. Progress Updates: As you work, periodically return to the app to document progress, obstacles, and their solutions.
  5. Close the Session: When you’re done, close the session and add any final notes if desired.

Additional Features:

  • Export sessions individually or compile all data from a project into a Markdown file for easy sharing or storage.

Challenges and Lessons Learned

  • TailwindCSS and Importmap: I ran into compatibility issues between TailwindCSS and Importmap. This issue took me an entire night to identify and resolve. However, switching to ESBuild as the JavaScript framework solved the problem.
  • Real-World Usage: It's pretty exciting to have built something functional and practical that I’ll be using regularly to document my projects.

This was a fun experience that gave me a quick intro and practice with Ruby on Rails and reignited my enthusiasm for learning new technologies.


Let me know if there are areas you’d like me to expand further or additional formatting you'd prefer!