Petal Pro Roadmap

Roadmap

Request new functionality and vote for what you want
Proposed
Yet to be confirmed
A combobox component
A combination of a search and select input implemented in a live view. See https://tailwindui.com/components/application-ui/forms/comboboxes.
MA
CH
MI
KF
14
19
API using Ash Framework
Setup Ash Framework with some example APIs. See ash-elixir.org
MA
AM
JG
AH
12
18
Make Sidebar Layout Collapse-able
Add a "hamburger" icon to sidebar layout so when you toggle it, the sidebar collapses to show only the menu icons, rather than the menu icon plus the textual description of the menu item. This way, the main content area can be wider if you have a lot of columns to display. Thanks!
JJ
MI
AB
ST
10
11
Video series building a web application from start to finish
A step by step video series. It will assume you know the basics of Phoenix. Similar to the walkthrough in the docs but go into more detail and build a different application.
MA
JA
JG
JU
10
10
Open telemetry setup
Open telemetry tracing
JA
BR
NK
HO
9
7
Improved upgrade process
Make it possible (if possible) to upgrade Petal versions more easily, then make the service a subscription, so we can continue to get the benefits in our apps. I know this would be hard, but as a solo developer, being able to leverage the improvements in Petal would be huge.
JU
JU
SA
TL
7
7
Persistent Notifications Management
In many apps, it is common to have persistent notifications for purposes like (1) a new event/event/message, (2) missing billing/profile, etc. These notifications usually manifest themselves with a few features: (1) a notifications menu option with a superscript badge to show that there are unread/new notifications (2) a dropdown from the menu to show a short list of notifications (3) achievable/dismissable notifications (4) A component for Flash-like messages with call-to-action buttons, e.g., for important pending tasks like providing billing info. (5) Some such notifications might be dismissable, others not.
MF
MI
TV
HO
7
4
Rich collaborative text editor
Similar to https://livebook.dev/ and https://tiptap.dev/ which enables users to enter rich text that can be used to build blogs/wikis ( with collaboration ).
T
MA
ST
JS
6
4
Admin can see current users (using Phoenix Presence)
Show active users to admins by using Phoenix Presence (https://hexdocs.pm/phoenix/Phoenix.Presence.html).
MA
OB
FA
JY
4
14
Video series / articles about the implementation of new features
Since upgrading Petal isn't so simple right now, an alternative would be to educate the user base on how to incorporate the new features in an existing Petal-based app.
JU
RX
HT
AR
4
6
Add physical MFA like yubikey via webauthn
It should be possible to login using a physical 2FA token such as: - https://yubikey.com/ - https://www.nitrokey.com/#comparison - https://solokeys.com/ This is especially useful for admin accounts, or customer organisational admins. There is significant increase in attacks on sites, where the website is spoofed, and the TOTP style token stolen in real time. The only trusted defence against this is physical h/w tokens and/or webauthn support. update: https://github.com/liveshowy/webauthn_components is making great progress.
DC
MA
AB
JM
4
4
Add support for Revin functionality
Revin (https://www.getrevin.com/) is like Paddle built on top of Elixir acting as a merchant of record. Pitched as "Simple global tax compliance shield for sellers of digital goods and subscriptions. Made for sellers who love Stripe™ and its vast ecosystem".
TA
JK
HO
AB
4
2
Paddle subscription support
As an alternative to Stripe membership, support paddle too (makes accounting much easier!!)
AB
JK
HO
JU
4
1
Add phx_live_storybook support
You've already provided all these wonderful components, but it would be great to be able to view them within our applications using phx_live_storybook - this would be handy as to not have to constantly refer to the online documentation or if we override the components provided with our own customizations on the comonents. https://hexdocs.pm/phx_live_storybook/PhxLiveStorybook.html
HO
JS
TV
CE
2
7
SQLite (via Litestream) option in starter template
Some of the cool kids are now using Litestream (https://litestream.io) as part of their Phoenix setup instead of Postgres. It'd be great if this was provided as an out-of-the-box option for setting up a new phoenix site with the Petal Pro template.
BS
BS
WT
AB
2
5
Web3 Wallet Integration
It would be nice to see some Web3 wallet integration like Metamask
MA
MA
MI
RX
2
2
Honeybadger for error monitoring in production
Errors are hard to track in production - Honeybadger will record any production errors and give you the context. See https://www.honeybadger.io/
MA
TL
ZA
JU
1
4
Embedded multimedia support for videos with cloud integration
Ability to easily embed videos from S3 or similar with FFmpex support and optimisation for mobile devices. Should include hot-linking prevention, time limited access to URLs.
TI
MA
TI
1
2
Passkey support
Support authentication with Passkeys
AB
KF
KE
WI
1
2
Send email campaigns from within your app
A basic email builder to send marketing or or update emails to your users. Include a filter to send to select user groups. Show the open rates for each email (if possible). This will mean you don't need something like Mailbluster or Sendgrid.
MA
HO
1
1
File upload integration with FileStack
Allow users to upload avatars/files with filestack.com
MA
NA
TL
1
1
Improve Test Coverage
As of v1.5.0, test coverage is rated at 52.2%. Improving test coverage would be easier for maintainability-minded devs and managers. Gist of coverage results: https://gist.github.com/Rio517/c16d8b82ad62e743a8601537389cfc0f
MF
MF
1
0
Phosphor icons library
Add Phosphor icons as an alternative to Heroicons. https://phosphoricons.com/
NI
NI
1
0
Switch from SES to Postmark
https://postmarkapp.com/ seems easier to setup than SES.
MA
0
0
Planned
Will be implemented in a future version
Stripe membership functionality
It would be great to have the ability to take membership payments from users/members out of the box. This would complete the experience from sign up to purchase.
TO
SA
TR
JM
23
17
LiveView file uploads - store in Amazon S3
Give an example of a file upload using LiveView and S3.
MA
SB
SA
JY
19
20
User Impersonation
Add the ability to "impersonate" another a user in the application as a super admin. (ex: (ex: https://github.com/ankane/pretender)) This would allow the developer to debug and trouble shoot production issues more easily.
ZA
ZA
PG
SW
14
17
JSON API
API Account tokens, Swagger / OpenAPI Specification
BC
HO
TE
BI
13
17
Basic CMS supporting markdown
Create content with markdown and display it. Support code blocks and make it easy to add images. Take inspiration from https://fly.io/phoenix-files for the look and feel of a blog posts page.
MA
T
KR
KE
10
8
Admin dashboard with graphs/stats
Admins usually want to see KPIs in a visual format - display charts using live view - components for displaying stats
MA
AH
MI
NE
8
11
Announcements / Changelog
Ability to create announcements / changelog updates for users. New updates appear in the navbar with a little red dot and the number of new unread announcements. Use https://changelog.announcekit.app as inspiration.
MA
TV
JM
AB
4
9
Avatar/photo uploads with Cloudinary
Implement user avatars and store them on Cloudinary (cloudinary.com) - a storage service that allows you to resize/modify images simply by altering the URL. This means you don't need to use a tool like ImageMagick to resize/crop/compress your images.
MA
JY
AB
RL
4
6
Done
This feature is in the current code
Sortable Tables
A component that gives you a sortable, filterable and paginated table out of the box.
SS
NK
SE
WT
8
12
Add 2FA layer to the auth login flow
Add an optional 2FA layer (using nimble_totp?) to the auth login flow, so people can opt to use the 2FA app of their choice (Google Authenticator, Authy, LastPass, etc.).
JA
DA
AB
AM
8
6
Multi-org schema: Org <- OrgsUsers -> Users
A common practice is to have a personal account but then also be a part of an organisation or company. - organisation schema - an org can have multiple users - a user can have an admin role in the org - org admins can invite more users, or remove them - an org can have a Stripe payment method
MA
JA
JM
HO
7
3
Convert all auth pages to live view
Convert sign up and register pages to live view.
MA
AB
TM
MA
4
10
Set/show times in a users local time zone
AR
GE
NI
SW
4
6
Support UUIDs
It's pretty easy to set up the app to use UUID by default for ids and foreign keys, however, there are places in the code that break, for example, HashId. I'm removing the HashId.encode/decodes but I'm not sure if that is "safe"? It'd be nice if the code supported UUID or ints in these places out of the box. What I've found so far: 1. HashId 2. Passing the ID into an Echo Query (user_id = user_id |> Ecto.UUID.dump!())
RA
RC
DC
BR
4
2
Allow instant deployments to Fly.io
Add a working dockerfile and ensure all the config is correct for fly.io deployments right off the bat
NI
MA
MA
NI
4
2
Passwordless auth
A user can register/sign in with just their email address - they get sent a 4 digit code to enter.
MA
JM
NI
BC
3
6
Install Oban
Make it easy to create background jobs with the state saved in your db
NI
F
JY
BC
2
2
Oauth2 SSO social logins like Google / Facebook / Apple
Handy for easy sign up/log in
NI
MA
NE
SW
1
4
A Petal version of phx.gen.live
Same as phx.gen.live but the templates output uses Petal Pro's layouts and the form components from Petal Components
MA
KA
MY
MA
1
4
i18n
Use gettext in non-admin areas.
MA
SW
MA
TM
0
5
VSCode snippets for petal_components
Components can be annoying to type with the dot syntax <.blah>. It would be nice to have snippets like button => <.button label="" />
MA
MI
NE
MY
0
3
Upgrade to Phoenix 1.7
Upgrade Petal Pro to Phoenix 1.7
NI
PG
0
1
Use Heroicons v2
Version 2.0.0 was released on 23rd Aug 2022 https://github.com/tailwindlabs/heroicons/releases/tag/v2.0.0 and has a bunch of new icons, renames etc. It would be nice to migrate to it. Until then, the link at https://petal.build/components/heroicons should be updated to https://v1.heroicons.com/ to avoid confusion.
MA
TL
0
1
Add petal.gen.html generator
It would be great to add a petal.gen.html generator to generate controller, views, and context for an HTML resource using Petal Components. Petal Components can be used in regular HEEx templates and not everything should be a LiveView.
TC
0
0
Make LiveView feel faster with a delayed loading indicator
As described in this blog article: https://fly.io/phoenix-files/make-your-liveview-feel-faster/
MA
0
0