Feature requests

Proposed
Yet to be confirmed
API using Ash Framework
Setup Ash Framework with some example APIs. See ash-elixir.org
MA
TE
JG
SL
6
14
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
TM
JU
MF
6
10
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
SW
JU
JA
6
9
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
AB
MI
6
8
Offer a subscription and improve 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
TL
JU
SA
6
6
Open telemetry setup
Open telemetry tracing
JA
BC
TL
JU
5
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
HO
VO
JK
4
2
Convert all auth pages to live view
Convert sign up and register pages to live view.
MA
TM
MA
HO
3
6
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
AB
HO
KR
2
10
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
SA
FA
BI
3
4
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.
DC
AB
DC
MA
3
3
Paddle subscription support
As an alternative to Stripe membership, support paddle too (makes accounting much easier!!)
AB
HO
JK
HO
3
1
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
FA
TE
MA
2
1
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
MF
HO
2
0
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
FA
JO
1
5
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
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
Passkey support
Support authentication with Passkeys
AB
KE
KF
1
1
File upload integration with FileStack
Allow users to upload avatars/files with filestack.com
MA
NA
TL
1
1
Web3 Wallet Integration
It would be nice to see some Web3 wallet integration like Metamask
MA
MA
1
0
Phosphor icons library
Add Phosphor icons as an alternative to Heroicons. https://phosphoricons.com/
NI
NI
1
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
TL
ZA
MI
0
4
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
LiveView file uploads - store in Amazon S3
Give an example of a file upload using LiveView and S3.
MA
EB
RJ
TI
13
15
JSON API
API Account tokens, Swagger / OpenAPI Specification
BC
TO
AM
JG
11
16
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
JM
KF
JD
10
11
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
AB
SE
8
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
KE
KR
TL
6
5
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
JY
MI
NE
5
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
TH
TE
NI
4
5
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
AB
TE
BR
2
7
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
MI
CA
SE
8
10
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
RB
AB
AM
7
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
NE
DA
TC
6
3
Set/show times in a users local time zone
AR
RA
JM
NK
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
DC
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
PA
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
NI
JM
BG
3
6
Install Oban
Make it easy to create background jobs with the state saved in your db
NI
BC
F
JY
2
2
Oauth2 SSO social logins like Google / Facebook / Apple
Handy for easy sign up/log in
NI
MA
SW
NE
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
MY
KA
MA
1
4
i18n
Use gettext in non-admin areas.
MA
TO
TM
SW
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
NE
MY
MI
0
3
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