To all #ruby and #rubyonrails folks: I recently forked ComfrotableMexicanSofa CMS and fully moved it to #turbo and all other goodies to be able to use it for my personal portfolio website. I'm planning a lot of features and improvements (including ActivityPub support) so stay tuned for more!

I'm gonna name it Comfy CMS and you can follow it here: https://github.com/mbajur/comfy

Let me know if you have any questions or ideas!

GitHub - mbajur/comfy: Comfortable Media Surfer is a powerful Ruby on Rails 7.0+ CMS (Content Management System) Engine

Comfortable Media Surfer is a powerful Ruby on Rails 7.0+ CMS (Content Management System) Engine - mbajur/comfy

GitHub

@tvdeyen I've been using Alchemy for last couple of days to try to port my portfolio from comfy and...I have to tell I'm 100% sold. This thing is brilliant. Is there anything you could use help with? We can chat on some more private channel if you prefer that.

Thank you for all your work, it's really mind blowing what you've managed to achieve.

@mbajur @tvdeyen Thanks for the kind works. This means a lot.
@mbajur ComfortableMexicanSofa never convinced me and I always returned to @alchemy_cms to be honest 馃槀
@alexanderadam yeah i know what you mean, for me though is that i always come back from alchemy to plain rails 馃槄 i gave cmsofa a proper try recently and discovered it鈥檚 actually a super capable yet simple tool that deserves some modern touch like turbo, importmaps etc

@mbajur my problem is that the #Rails ecosystem already has a lot of simple #CMS.
#AlchemyCMS has features that my customers know from other professional CMS and therefore expect them to be included as well.

However, a #hotwire revamp for #alchemy would be pretty cool as well as the backend is functional but #hotwirejs would clearly be a modern addition.
Or a migration to #ActiveStorage from #dragonfly.

@alexanderadam for a professional grade solutions, Alchemy is probably a way to go. For people with programming skills that juts wants to run a simple website - i don't think there is any better option than cmsofa. My personal requirements forces me to implement a lot of very specific backend features for my website (a photography portfolio with AP integration) and hacking around Alchemy would be just too much struggle for me :)
@alexanderadam oh, and Alchemy could definitely use some refactoring and redesign but from what i recall - I didn't liked how author approached a guy who was proposing some really good redesign changes when they did a major redesign couple of years ago. No previous nor current design fits me well sadly which always pushes me off that project...not that cmsofa is better in this regard haha

@mbajur really?
I'm curious about that because I only had helpful and productive exchanges with @tvdeyen so far.

However, in the projects of my customers, I always simply overwrote the CSS so that it matched the corporate design of my customers anyway to give it a professional touch.

@alexanderadam it was so long ago that i can't even properly remember that and if that's even how it went exactly back then. Anyway, just to make it clear - i have absolutely nothing against Alchemy, i think it's a great project with some super interesting solutions. It's just too big and complex for my simple needs ;) But if i were about to create a big website for someone, i would probably go with Alchemy
@mbajur @alexanderadam would be very much interested in what you dont like about the current UI/UX. Is it the colors?

@tvdeyen @mbajur I'm happy to hear about these changes! That sounds pretty cool tbh!

But the current backend looks a bit dated.
Not terrible but not catchy either 馃槈

Btw, thank you so much for your work! 馃檹馃徎

@tvdeyen It's very tough to pinpoint as i don't have it installed anywhere to click through but if you're interested in that, i can set it up ;)

I'm pretty sure that, just like @alexanderadam said, "backend looks dated, not terrible but not catchy either" - exactly that. That's a bigger writeup so i have to split that into separate toots. These are not ALL my points but major ones (and forgive if I'm spreading misinformation, it was a long time since i last used it):

@tvdeyen 1. From what i recall, website was a bit hard to work with but i can see you moved to this classic theme/tool for app documentation and i love that move.

Even though it's a bit generic, it makes looking at docs a pleasure so thanks for that. Super happy to see that!

@mbajur @tvdeyen Yes. Happy to work on improving it. The site is open source as well.
@tvdeyen 2. The colors - yeah, there is indeed something about the colors that pushes me off but that's absolutely personal and I'm not gonna push for changing that unless i have any absolutely stunning colors to offer haha, so forget about it

@mbajur @tvdeyen Haha. Yeah. Luckily Alchemy uses custom properties to style the admin. The colors are easy to change.

I am actually currently working on a dark mode. So, please check it out and help adjusting the colors.

https://github.com/AlchemyCMS/alchemy_cms/pull/3251

/cc @alexanderadam

WIP: Add Dark theme by tvdeyen 路 Pull Request #3251 路 AlchemyCMS/alchemy_cms

What is this pull request for? Describe you pull request here... Closes # (Remove if not related to any issue) Notable changes (remove if none) Explain any changes (maybe breaking?) that have been ...

GitHub
@tvdeyen @mbajur I think my changes usually also involve sizes and margins.
But overriding all of this was a piece of cake. 馃槈

@alexanderadam @tvdeyen @mbajur Yes. I can see that people want to widen up the dense UI alchemy has. It is on purpose though. I carefully try to not be in the way of the actual website you are building and want to provide as much as information possible even on small screens.

Maybe we could provide a density toggle? 馃

@tvdeyen @alexanderadam I believe there is a possibility to make the interface feel less dense without actually taking more space.

I would say https://polarisviewcomponents.org/ is a good example of a "tiny" UI without this dense feeling (based on shopify design system)

Polaris ViewComponents :: Polaris ViewComponents

@mbajur @tvdeyen @alexanderadam Oh. Nice. Buttons that actually look like buttons. Will take a look. Thanks.

@tvdeyen 3. This one is a bit controversial - you're using a custom CSS instead of a well known framework which is completely understandable but here is a catch - when one wants to extend the core, he needs to write his own custom CSS as well or at least decipher the classes you're currently using for the core.

That was also pushing me off because if i were about to add some module to the backend or create a plugin, styling it from scratch would be involved.

@tvdeyen and that's probably one of the biggest pros of Comfy - it might look like the most generic bootstrap website but fact it's a bootstrap makes our lives a lot easier - because 99% of people knows it's syntax (or can quickly go through docs for whatever is needed) and can make a decent looking backend screen without touching any css. I'm not trying to convince you to migrate towards bootstrap but just leaving it here for discussion
@mbajur @tvdeyen Yes. I totally get that point. It should be better for contributions as well. If I would be about to pick a CSS framework today, it would probably be Tailwind, not because I like it or I wouldn't know its drawbacks, but it's wildly known and fits very much into Alchemys view component based UI system.

@mbajur @tvdeyen Alchemy has its own Admin Component UI system. You can use its building blocks to quickly built CRUD interfaces. So, if you do not plan to do any crazy with it, you shouldn't need to touch any CSS.

Most of the time you simply inherit from the Admin Resources controller and are good to go.

@tvdeyen 4. Backend JS extendability? I'm not sure how it's done right now in alchemy but when i forked comfy, i moved everything to importmaps which made it possible to register new JS modules from engines (or parent apps) - so the backend JS layer became easily extendable.

How is that part planned to be handled? I would also love to see stimulus being used with it's controllers and all the goodies

@mbajur @tvdeyen JS is handled via importmaps and a configuration to extend the admin JS from engines and Apps

https://github.com/AlchemyCMS/alchemy_cms/blob/17ca3e5f93848424bd78ed249def2874151f0a3b/lib/alchemy.rb#L92

alchemy_cms/lib/alchemy.rb at 17ca3e5f93848424bd78ed249def2874151f0a3b 路 AlchemyCMS/alchemy_cms

Alchemy is the Open Source Rails CMS framework for the component based web that can be used as classic server side rendered or headless CMS. - AlchemyCMS/alchemy_cms

GitHub
@mbajur @tvdeyen You can use Stimulus if you like, but we do not plan to use it. We like to be as close as web platform as possible and stimulus does not provide much in top of custom elements (WebComponents). Have a look at how we built most of Alchemy's UI with them and you will see why. It's amazing what you can achieve with modern JS.

@mbajur @tvdeyen The problem with Stimulus is that it is soon-to-be-legacy tech. It won't survive long. The web browser will continue to work with vanilla JS. Stimulus won't (as all other JS frameworks). So, we will stay with the amazing tools the browser provides us today.

Give custom-elements a try. You would be amazed how great they are.

@tvdeyen My problem with JS is that i never know what's currently the best/recommended way of implementing things (it's impossible to follow at times) so i tend to rely on libs i can delegate that dillema to. I wanted to get into custom elements some time ago but one dev told me it's the future, other dev told it's obsolete technology and that's how my usual experience with JS goes hah. But sure, your point makes sense.

@mbajur @tvdeyen That are valid points and lots of people experience that JS fatigue. Me included. This IS actually the reason to NOT use any framework at all.

Vanilla JS can always be trusted on. So instead of learning Framework X, just learn the platform. It will always work.

@tvdeyen 5. I care deeply how apps look and feel and i put a lot of effort in that part of apps I'm producing so if you need my observations or even help with any sort of redesign or refactoring/redesigning the frontend layer - let me know!
@mbajur @tvdeyen Definitely will get to you on this one! All our sites (marketing, demo, guides) are open source. If you have any ideas on improving it, we are happy to accept contributions.

@tvdeyen @alexanderadam Actually, you know what...I decided there is much more potential value in me trying to contribute to Alchemy rather than reviving comfy from the dead therefore i will try to port my comfy website to it and see how it goes this time.

Is the ActiveStorage support anywhere close?

@mbajur @tvdeyen @alexanderadam Unfortunately no. There is only a work in progress PR, that recently have been closed automatically. I re-opened it, so folks can have a look what is needed (there is a lot, because Alchemy has very sophisticated image manipulation built in)

https://github.com/AlchemyCMS/alchemy_cms/pull/2968

Happy to get some help with this. And even if this is guidance and ideas that I am happy to discuss.

Use Active Storage for Picture and File attachments by tvdeyen 路 Pull Request #2968 路 AlchemyCMS/alchemy_cms

What is this pull request for? Reworks Use Active Storage for Picture and File attachments #2544 Needs fix PictureEditor defaultCropSize #2987 Use ActiveStorage instead of Dragonfly for picture a...

GitHub
@tvdeyen so, if i can see well, only image cropping is left to be ported?

@mbajur @tvdeyen Not sure. Need to go through that PR once again to be able to answer that.

Most importantly we need a way to migrate existing sites. Since we have installations with hundreds of thousands of images, we probably want something that provides an adapter, so they can still use Dragonfly and migrate their site bit by bit.

@mbajur @tvdeyen My current plan is to extract the existing Dragonfly code into an adapter and write a ActiveStorage adapter. For that the current code needs to be updated to allow such an adapter.

@mbajur @tvdeyen @alexanderadam https://demo.alchemy-cms.com/ is a fully functional demo that you can uee to click around.

The github repo is also ipen source and can be used as a template repo.

Let me know if you need any help with setting it up locally.

Intro

@alexanderadam @mbajur We are actually working on these. Alchemy uses Turbo, TurboFrames and TurboStreams as well ViewComponent and lots and lots of custom-elements. CSS vars over Sass etc. pp. Not quite done yet, but pretty close. Please check out the current main branch.

@alexanderadam @mbajur Regarding migrating from Dragonfly. That is a number one priority right now. The tricky part is migrations for existing sites. We plan on adding a active storage adapter in 8.0, provide a migration path and remove it in 9.0.

Any help is very much appreciated