Trix test helpers
Using Trix in system tests can be a bit tricky. We've added new system test helpers to make it easy to find and fill in Trix rich text fields in system tests. You can find these in the test/support/system folder. 👍
Shout out to Clement C and Hans Lemuet for the new translation of Jumpstart Pro into French. 🙏
Ruby 2.7.2 & Rails 188.8.131.52
We've updated the template to use the latest Ruby, Rails, and other dependencies. 💪
Optional Brakeman check in CI
GitHub Actions and GitLab CI have been updated to include Brakeman security checks. These checks can produce false positives easily, so they're disabled by default but we encourage you to use them to keep an eye on security in your Rails app. Simply uncomment this to run Brakeman security checks on your application during CI.
Switch to TailwindCSS' built-in PurgeCSS configuration
Jumpstart Pro previously shipped with PurgeCSS to remove styles. The trouble was that it can be overzealous and remove CSS we need that it can't find (like Trix). Now that TailwindCSS comes with PurgeCSS integration, we no longer have to manage whitelist exceptions to PurgeCSS. 🎉
All kinds of notifications!
Notifications are here finally! This is a big feature. We support delivering notifications to the database, email, ActionCable, twilio, vonage, and Slack. You'll notice the new notifications bell in the navbar where notifications will be delivered via ActionCable as configured. To learn more, check out the docs here: https://jumpstartrails.com/docs/notifications
Jumpstart Pro is now fully internationalized! We've extracted all strings into their relevant translation keys so you can easily translate your app into other languages if you'd like. Find out how it all works in the I18n docs: https://jumpstartrails.com/docs/i18n
We've just updated to the latest Rails version which should fix the warnings and deprecations ahead of Ruby 3. 👍
Flatpickr all the things
We've added Stimulus Flatpickr to make adding date and time selects to forms much easier. Scaffolds have been updated as well to automatically enable flatpickr when generating date and time fields.
You can now use title("Dashboard") in your layouts to easily set the title tag in each page. Just a bit easier to remember than the content_for method, but you an still use that if you need to. Thanks Ugurcan!
Auth API endpoint
Sometimes you might need to authenticate from a mobile or desktop app to the API using an email and password without having an API key. We've introduced /api/v1/auth to allow your users to login through the API with email and password now. 🔥
Guard & LiveReload
Thanks to Julian Rubisch, you can now enable Guard LiveReload in your Jumpstart Pro applications through the configuration wizard. 🙏 This is super handy for automatically reloading your app when files change so you can iterate quickly in development.
Multitenancy & Accounts
We now officially support multitenancy through custom domains, subdomains, URL paths (like Basecamp does), and session cookies. You can also enable acts_as_tenant on your models to have them automatically scoped to the current account. This update also introduces Current which is a request store backed by Rails' CurrentAttributes. This gives you access to the current account and other request details that you can use throughout your application. We've also renamed Teams to Accounts to make it more flexible for its use in various applications. It's less confusing naming and you can introduce your own Team model inside accounts if you need them now.
Upgrade to Pay version 2.1
We've upgraded the Pay gem to version 2.1 which introduces the ability to have multiple Billable models. You can now have Accounts make payments as well as any other model you would like. This is useful as we work towards building support for marketplaces.
Now when you generate a scaffold, the headers contain clickable links for sorting your records.
Rich Text Embeds
You can now embed several different types of content in rich text fields. We've got support for YouTube, Twitter, Instagram, Imgur, Spotify, Soundcloud, and Vimeo. To embed content from one of these sites, you can click the Link icon, paste in the URL and if the link matches one of the regexes for allowed content, it will display an Embed option that you can click to have your content embedded into the post. This is built on ruby-oembed and ActionText so you can add more providers if you like.
Stripe Test environment links
Now you can click Stripe links in the admin area in development to be linked to the Stripe test environment's charges, subscriptions, and customers. We already do this for Braintree, so now Stripe matches. 👍
We've added some helpers to make it easy to access the current team member and their roles anywhere in your controllers and views. This makes adding permissions much easier throughout your application. Find out more here: https://jumpstartrails.com/docs/teams
Jumpstart 1.1: Stripe SCA and Third-Party Integrations
After several months of development, we've launched support for Strong Customer Authentication with Stripe payments as well as several third-party integrations! Payments are now compatible with the EU SCA regulations and support asking for additional authentication. If subscription payments fail because they require additional authentication, your users will be emailed to come back to your website and authenticate their card. You can find out more here: https://jumpstartrails.com/jumpstart/docs/billing We've also added several third-party integrations to make it easier to add performance & error monitoring as well as email marketing tools. Learn more here: https://jumpstartrails.com/jumpstart/docs/integrations
GitHub Actions Continuous Integration template
Jumpstart Pro now ships with a preconfigured template for GitHub Actions that you can use to run tests on every push. It's pre-configured for PostgreSQL and Redis so all you have to do is add your RAILS_MASTER_KEY for the test environment to your GitHub repo's secrets.