Posted on 01/03/2023 14:49:58
Hi Hans,
A disclaimer first. I've been cooperating on Swift so I'm bias, but I'll add to some of what Adrian said.
I agree with all of the Pros and Cons from Adrian. I myself have mixed feelings about Rapido Blocks, but Swift is by far a much better option, specially considering what we'de done (which I'll also explain).
The world has changed too, so you're likely competing with other No-Code / Low-Code tools. For that reason alone, Swift is built with that in mind from scratch; not to mention modern Bootstrap (meaning HTML framework), and modern JS approach, with SEO and Accessibility in mind (Rapido not so much - once you get a customer wanting to do good SEO or accessibility in Rapido, you'll run for the hill). And Performance on Swift is much much better as well.
Swift is much more granular, and not necessarily meant for developers, but rather tech-savvy users (Content editors). It's granularity is actually very freeing. We've moved much more work from Developers to other people in our company because of this too.
Constraints are not a bad thing. It just means we can deliver something much quicker (i.e. 10 min clicking around VS 2 days building). The price gap may come as a shock to a customer, but that's not because you guys would be slow or are bad doing custom work, it's just because a "checkbox" is much quicker than doing new code (not to mention QA, responsive behavior, accessibility when applicable, estimates, back and forth comunication,...)
We still do custom development... a lot of it. And we do it in 2 shapes:
- New Item Types, templates, assemblies,...
- Extend existing Item Types and templates
The first bullet needs no introduction. But comes at a cost, which is that you don't inherit any of the new features (if you create a copy of an item type when you need to add something); and depending on the bug fix, you may not inherit too.
The community may have mixed feelings from the 2nd bullet. We do it... a lot and all the time. But we also have a set of rules to do it; the way we leave hints in our code and the way we work with Git (Squash and Merge our Pull Requests). We are actually capable to getting the latest version from Swift and then re-apply (cherry-pick) all of our changes, so we get the best of both worlds. (Yes, there are some tricky parts and risk, but it works).
We've been doing this for over a year and successfully updated projects that started in Swift v1.4.0 all the way up to where we are now (1.19.0)
Hope this helps you too.
Best Regards,
Nuno Aguiar