One of the best exercises you can do in Ruby to expand your understanding of web development better is to try to build some small toy projects directly on top of Rack.

It may seem unapproachable at first, but you'd be surprised. Excellent practice for anyone at least comfortable at an intermediate level w. Rails or any other similar framework.

It reveals how much established patterns are not hard and fast rules or settled science, just the things we've gotten used to.

@skillstopractice Sidekiq::Web is built directly on Rack with a few handmade abstractions for i18n, routing and rendering, no dependencies except stdlib.

@getajobmike I have been building a rapid prototyping toolkit using a similar approach.

I do use hanami-router as a convenience but even that isn't truly necessary.

My little built-in dashboard for event-sourcing is a Rack app with a bunch of regexes :)

@ismaelcelis.com @getajobmike

Nice!

I am using Hanami router for top level routing for some known patterns, but then doing wildcard matches and passing the raw environment object into objects that handle different concerns in my system.

I use regexp there, but since the context is bounded they're not hard to follow.

@skillstopractice @ismaelcelis.com @getajobmike Yes, you kinda need a router and a way to write HTML, but that’s it. In the JS/TS world, Mastro is exactly that: https://mastrojs.github.io
Mastro: the simplest web framework and site generator

A minimal tool for people who care about their users and the web.