Pro Roadmap

Roadmap

Request new functionality and vote for what you want
Proposed
Yet to be confirmed
API using Ash Framework
Setup Ash Framework with some example APIs. See ash-elixir.org
MA
DE
AM
AR
20
26
Open telemetry setup
Open telemetry tracing
JA
KR
TR
AR
14
10
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
BF
KR
MA
14
8
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
JJ
DR
JA
12
14
Paddle subscription support
As an alternative to Stripe membership, support paddle too (makes accounting much easier!!)
AB
BF
DA
HO
8
3
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
TO
TJ
WI
5
11
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
TO
HO
PA
6
1
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
FA
AR
ST
4
8
SAML SSO Authentication
Be able to provide option for SAML single sign-on authentication (SSO) between the app (a service provider) and an identity provider.
EB
JG
TF
DA
4
6
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
AB
HO
VO
5
1
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
JR
FT
MA
3
3
Passkey support
Support authentication with Passkeys
AB
RX
WI
KE
3
3
AWS S3 with authenticated bucket
Enable S3 uploads to an authenticated bucket. The current implementation of S3 enables read/write to S3 without dependencies but uses a method that forces the access control list read access permission to be completely open, enabling anyone to view bucket contents without authenticating.
TF
JR
EB
TF
3
2
User registration optional
It would be awesome if we had a switch for enable_user_registration. Even if it's just before the launch so nobody except the beta users log in or if it's because it's an admin backend and no users would need to register.
FB
FB
HA
PA
3
1
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
MB
JO
2
6
Web3 Wallet Integration
It would be nice to see some Web3 wallet integration like Metamask
MA
MI
RX
MA
2
3
Add feature flags
Recommend integrating the 'Fun with Flags' package. It would be helpful for our project to have feature flagging available for both website within the admin panel and org admin levels within the org settings. Such granularity can streamline our development process and enhance user flexibility.
TF
TF
HA
OH
2
2
CloudFlare for file uploads
Support CloudFlare R2 for file uploads, similar to the current support for S3 and Cloudinary.
FW
TF
FW
OH
2
2
Add affiliate links
Add ability to create unique links which provide discount for the buyer and small fee for the affiliate. this would mean 3 features: 1. Ability to associate a affiliate link or get parameter for a registered user which is persisted in the browser cookie when they use the site. It can also be just a coupon which is used in the checkout or both. 2. When user uses the coupon they'll get percent or absolute amount of discount. 3. Small fee is collected to the user who created the affiliate link. 4. These fees can be manually paid to the PayPal account which is also collected from the same user. This would be useful for the Petal Pro itself as well and I would be happy to drive more customers for you from my blog and social accounts. This is also typically more cheaper than buying ads.
OH
HA
OH
2
1
Responsive image resizing (with blur up)
Make it easy to add responsive images. Ideally with optional lazy loading (e.g. blur-up placeholder). Solution sketch: - Resize at compile time via macros using `Image` library - Heex components that handle srcset boilerplate and lazy-loading with placeholder. References: - https://developers.google.com/search/docs/appearance/google-images#responsive-images - https://www.gatsbyjs.com/plugins/gatsby-plugin-image - https://imagekit.io/blog/lazy-loading-images-complete-guide/ - https://hexdocs.pm/phoenix_live_view/bindings.html#scroll-events-and-infinite-stream-pagination - https://web.dev/browser-level-image-lazy-loading/
FT
JR
FT
2
1
Official Figma design kit
Any component we make will be added to the Figma design kit to allow easy screen design mockups.
MA
AD
AL
2
1
Square integration
Like Stripe, but cheaper in many use cases.
FW
FW
HA
2
1
Phosphor icons library
Add Phosphor icons as an alternative to Heroicons. https://phosphoricons.com/
NI
JR
NI
2
1
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
HA
HO
2
1
Provide a Feature Request functionality like this one
This page is very useful for new products to help developers understand customer needs. This page looks pretty simple to be done (and probably is done using Petal) so it would be just a matter of providing the code/components/migrations for those who wants to add it in their systems.
LC
LC
HA
2
0
Switch from SES to Postmark
https://postmarkapp.com/ seems easier to setup than SES.
MA
RX
MW
2
0
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
JU
JS
ZA
1
4
File upload integration with FileStack
Allow users to upload avatars/files with filestack.com
MA
TL
NA
1
1
Use resend.com for emails
Resend bills itself as "The best API to reach humans instead of spam folders. Build, test, and deliver transactional emails at scale." https://resend.com/
MA
0
0
Planned
Will be implemented in a future version
JSON API
API Account tokens, Swagger / OpenAPI Specification
BC
NS
MA
HA
27
20
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
JA
JG
AL
20
15
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
JJ
PA
SS
18
13
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
BF
JR
DY
15
10
Persistent Notifications Management
In many apps, it is common to have persistent notifications for purposes like a new event/message, missing billing info, unpaid invoices, incomplete 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 list of notifications (3) archivable/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
RA
FT
TV
15
7
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
NS
EB
MA
13
17
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
MA
RX
NA
7
11
Add physical MFA like yubikey via webauthn, or passkey
It should be possible to login using a physical 2FA token or smartphone passkey via: hardware tokens: - https://yubikey.com/ - https://www.nitrokey.com/#comparison - https://solokeys.com/ passkeys: - passkey overview https://www.tomsguide.com/news/what-are-passkeys & https://arstechnica.com/information-technology/2022/10/passkeys-microsoft-apple-and-googles-password-killer-are-finally-here/ - https://support.apple.com/guide/iphone/sign-in-with-passkeys-iphf538ea8d0/ios - https://developers.google.com/identity/passkeys - fido summary https://fidoalliance.org/passkeys/ 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
RX
JP
KF
6
7

Done
This feature is in the current code
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
BB
AM
AR
43
27
LiveView file uploads - store in Amazon S3
Give an example of a file upload using LiveView and S3.
MA
DA
TI
FR
21
23
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
TO
JU
TM
17
19
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
BR
TE
MI
15
21
Sortable Tables
A component that gives you a sortable, filterable and paginated table out of the box.
SS
MI
BZ
TL
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
BR
RB
JM
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
TC
JA
NS
8
3
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
RS
TL
BF
7
7
Convert all auth pages to live view
Convert sign up and register pages to live view.
MA
MA
ST
TM
4
10
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
TM
WI
AB
4
6
Set/show times in a users local time zone
AR
GE
JM
NE
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
ZA
RC
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
NI
MA
JY
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
TC
BG
JM
3
6
Install Oban
Make it easy to create background jobs with the state saved in your db
NI
JY
F
BC
2
2
Oauth2 SSO social logins like Google / Facebook / Apple
Handy for easy sign up/log in
NI
SW
NE
TM
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
MA
KA
MY
1
4
i18n
Use gettext in non-admin areas.
MA
MA
TM
TO
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
MY
NE
MI
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