Using Roda in Bridgetown

63 views
Skip to first unread message

Jared White

unread,
Nov 14, 2021, 12:05:45 PM11/14/21
to Roda
Hi Jeremy & friends,

I just wanted to let you know about some developments in the Bridgetown project and how that pertains to Roda. Bridgetown is a static site generator...originally a fork of Jekyll but it's been in many respects rewritten at this point and has grown into more of a general-purpose web framework for the 1.0 release (still in alpha). Part of that is switching from Webrick to Rack for server infrastructure, and on top of that is adopting Roda. In a basic sense we're using Roda in a lightweight manner to help serve the static assets through Rack, but then it quickly expands outward into real dynamic routes and even a new file-based routing system we've designed which feels a lot like other "Jamstack" frameworks out there like Next.js, Gatsby, SvelteKit, etc.

Some introductory material on all this:


In addition to just letting you know about this news, I would also love to establish a more formal dialog so that (a) I can make sure the work I'm putting into integration of Roda into Bridgetown is efficient and uses established Roda best practices where feasible, and (b) any room for improvements or tweaks we find on our side we can recommend to Roda. For example, I had to monkey patch `public_path_segments` in the public plugin because it didn't quite go far enough to replicate how Webrick previously had handled all the static generated output.

I'd be happy to walk you through some of these points further, either here or 1:1 email or even hop on a video call.

I'm super excited about some of the new use cases and opportunities Bridgetown + Roda introduce…as someone who's worked quite a bit with Next.js on a client project and is pretty familiar with the "Jamstack" landscape out there, I feel like this offers a development mental model that will resonate with a lot of people who might give Ruby a try.

Cheers,
Jared

Jeremy Evans

unread,
Nov 14, 2021, 2:10:56 PM11/14/21
to ruby...@googlegroups.com
On Sun, Nov 14, 2021 at 9:05 AM Jared White <newtab...@gmail.com> wrote:
Hi Jeremy & friends,

I just wanted to let you know about some developments in the Bridgetown project and how that pertains to Roda. Bridgetown is a static site generator...originally a fork of Jekyll but it's been in many respects rewritten at this point and has grown into more of a general-purpose web framework for the 1.0 release (still in alpha). Part of that is switching from Webrick to Rack for server infrastructure, and on top of that is adopting Roda. In a basic sense we're using Roda in a lightweight manner to help serve the static assets through Rack, but then it quickly expands outward into real dynamic routes and even a new file-based routing system we've designed which feels a lot like other "Jamstack" frameworks out there like Next.js, Gatsby, SvelteKit, etc.

Some introductory material on all this:


In addition to just letting you know about this news, I would also love to establish a more formal dialog so that (a) I can make sure the work I'm putting into integration of Roda into Bridgetown is efficient and uses established Roda best practices where feasible, and (b) any room for improvements or tweaks we find on our side we can recommend to Roda. For example, I had to monkey patch `public_path_segments` in the public plugin because it didn't quite go far enough to replicate how Webrick previously had handled all the static generated output.

Jared,

I'm glad that it appears Roda is working well for Bridgetown.  I'm certainly open to accepting pull requests to Roda to make Bridgetown implementation easier.  So if you think there are backwards compatible changes that could be upstreamed (such as to the public plugin), please submit them.  Unfortunately, I don't think I'll have time to dig into Bridgetown source code.
 
I'd be happy to walk you through some of these points further, either here or 1:1 email or even hop on a video call.

I prefer to keep discussion here on the group so that everyone can benefit.

Thanks,
Jeremy

Jared White

unread,
Nov 19, 2021, 12:04:45 PM11/19/21
to Roda
Thanks Jeremy for the reply. I've upstreamed the changes to the public plugin here:


I'll keep an eye out for anything else we're doing that might benefit Roda directly. I also have some performance questions about how Roda is getting used within our Bridgetown integration, but I'll need to gather my thoughts and write up something for that.

Cheers,
Jared
Reply all
Reply to author
Forward
0 new messages