πŸ’‘Changelog

v1.4.0

Added

  • Updated to LiveView 0.18 + Petal Components 0.18

  • Data table component

  • Local time component

  • Sobelow for security checking

  • Coveralls for code test coverage

  • test.yml Github action for code quality

  • Easily modifiable content security policy to help prevent XSS

  • Added a docker-compose.yaml that adds Postgres so you don't need to install it

Changed

  • Router significantly more streamlined

  • Some routes have been moved into their own files: AdminRoutes, AuthRoutes, DevRoutes, MailblusterRoutes

  • Users are forced to be confirmed to access /app routes (easily configurable)

  • Use Ecto enums for org roles

Fixes

  • Fix reset password failing when signed in

  • Clean up dashboard_live.ex - some old code unused was left in there

  • Improved SEO meta tags in _head.html.eex

  • Show a warning in the logs when no title/meta_desciprion is set on a public page

  • Added open-graph.png (to be replaced by dev)

  • Fix require_confirmed_user plug

  • Fix landing page GSAP not working

v1.3.0

Added

  • Two-factor authentication using time-based one time passwords (paired with something like Google Authenticator)

Changed

  • Decoupled DashboardLive from Orgs so you can get started quicker if you don't want orgs

  • Can pass a custom header class to the public layout

  • Sidebar and stacked layouts now support grouped menu items (see dev_layout_component.ex for an example)

  • Update Tailwind to 3.1

  • Split CSS into different files thanks to Tailwind 3.1

Fixed

  • Onboarding now remembers user_return_to

  • Fixed nav dropdown bug after modal toggle

  • Fixed gettext in live views

v1.2.0

Added

  • Login with Google & Github - easy to add more auth providers

  • Passwordless auth - register/sign in via a code sent to your email

  • Orgs - create an org, invite & manage members, and more

  • User lifecycle actions - run code after actions like register, sign_in, sign_out, password_reset, etc

  • New generator: mix petal.gen.html (same args as phx.gen.html)

  • New component: <.markdown content=""> & <.pretty_markdown content=""> (uses Tailwind Typography plugin)

  • Added License and Privacy pages (with some content from a template to get you started)

  • New layout: <.layout type="public">, for public marketing related pages like landing, about us, privacy, etc

Changed

  • Simpler config access (PetalPro.config(:app_name) instead of Application.get_env(:petal_pro, :app_name))

  • Refactor <.layout> to take less props

  • Refactor dark/light mode system. Much simpler now and no longer needs cookies

  • Put Petal Pro Components in their own folder for easier future upgrades (can duplicate if you want to modify them)

  • Sidebar and stacked layout have a new slot for the top right corner (if you want to add something like a notifications bell)

Fixed

  • Log metadata wasn't being cast

  • More user actions are logged

  • Fixed petal.live generator tests

  • Added tests for user settings live views

We've included Google & Github to get you started and make it super easy for you to enable login with any other OAuth provider you might want add to your app.

We've also included our very first Petal Pro component <.social_button> that produces beautiful social login buttons in two variants ("solid" and "outline").

Social button currently supports:

  • Google

  • Github

  • Facebook

  • Twitter

  • Apple

  • Linkedin

Users of your app can now register/sign in via a pin code sent to their email. It's simple to enable or disable at any time.

Just head over to your config.exs file and change paswordless_enabled to true

Organizations/Multi-tenancy

You can now optionally create an organization, invite & manage members, and more.

Last updated