Write a widget once and use it either in a custom app or Experience Builder.
Click here to see the widget in action. (and here to see it in Experience Builder)
Go here to see the Experience Builder widget wrapper code.
Blog posts explaining: Part 1 | Part 2.
Questions/comments/suggestions? Feel free to log an issue. Thanks!