Embeddable Feedback "Widget" on *Any* Web Page?
- Dominant language
- Elixir
- Stars
- 18
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Can we _generalise_ the feedback system into an embeddable "widget" that:
+ [ ] Can be **embedded** on **_any_ web** page on the internet using a **_single line_** of **JavaScript**.
+ [ ] Linked to via "**Short URL**" from any social-media post (_anywhere JS cannot be run_)
+ [ ] Renders as **SVG** when JS is not available (_e.g. on [AMP](https://www.ampproject.org/docs/fundamentals/spec#svg) Pages_)
+ [ ] Does not require any customisation from the person _using_ the widget on their web page
+ [ ] Can we avoid having API Keys and simply read the URL from the requesting page?
+ [ ] What are the security/privacy implications of _not_ having an **API Key**?
(_can requests be spoofed? how do we mitigate that?_)
+ [ ] ***OR*** if we _cannot_ get around having an API Key (_because it's impossible to "protect"_),
how do we make it easy for the person copy-pasting the Widget Code?
+ [ ] **_Can_ be customised** if required ... Users can submit their ideas for how they want to customise. e.g:
+ [ ] Theme/Branding customisation (_is this where the **revenue** is...?_)
+ [ ] Focus the Feedback widget when the person gets to the end of scrolling on a page
+ [ ] Expand a _qualitative_ feedback widget/form when "dwell time" on a page crosses a thresshold
_One_ option is to have a **`Feedback`** (``) shown on the page (_usually sidebar_):

But it requires _two_ clicks. (_first the user must click on the "Feedback" button, then leave feedback_)
A "zero friction" approach UX/UI is:

Interesting how they have a "bias" to "happy" (_in the ordering of the feedback/reaction emojies_)
https://vuukle.com
## [User]
### _Anonymity_ by `default` >> Privacy by _Design_ First/Always!
We feel that one of the tenants of a good feedback system is _anonymity_ to encourage people to leave _honest_ feedback without "_fear_" of "repercussions".
This means the person leaving the feedback should _not_ be required to "login" or provide an Email address before they are allowed to leave **_quantitative_** or (_basic_) **_qualitative_ feedback**.
+ [ ] No "Signup", "Login" or Email Address required.
### Anonymity == `SPAM` ?
Creating an _anonymous_ system means the _vast_ majority of the development work is "back-end".
Because _all_ systems on the internet which allow _any_ sort of user-input are SPAM-magnets!!
+ [ ] _Our_ System needs to handle the SPAM/DDOS 😞 (_we may need to use CloudFlare ...?_ 🤔)
+ [ ] **Track IP Address** (_this is salted and hashed so that it does not "leak"_)
see: https://github.com/dwyl/phoenix-ecto-encryption-example
+ [ ] ***Learn*** how to mitigate against **IP Address _Spoofing_**!
+ [ ] **_Actively_ monitor** _patterns_ in qualitative feedback for:
+ [ ] **Frequency** from a particular IP Address, device/browser (_too often? probably spam_!)
+ [ ] **Similarity** in content (_i.e. comment/link spam_)
> You were looking for a good "excuse" to work on https://github.com/dwyl/learn-machine-learning ... here you go! A _reason_ to capture, categorise and analyse "big data" in _real-time_!
## _Optional_ Login or Registration (_to receive response_)
If the person leaving feedback _wants_ to be kept informed of the _response_, status our trend on the feedback they have left, they can _optionally_ login (_using their **sosh**_) or register using an email address and we will forward any updates to them.
> We need to make it _clear_ to "Page Owners" and Feedback _leavers_ that Email Addresses will _never_ be shared with the "Page Owner" or person requesting the feedback.
Email/Notifications are handled by the system and Zero personal data is "leaked".
## [Page Owner]
The "Page Owner" can
+ [ ] **Easily embed** the feedback widget in their website/app with a **single JS line** and no experience.
+ [ ] **_Immediately_ see feedback** in **_real-time_**.
+ [ ] **Receive _Notifications_** when someone is _currently_ on their page! (_so they can **respond** to feedback in **real-time**_)
+ [ ] ***Respond*** to **qualitative** feedback in a Chat-like interface (_one-on-one_)
+ [ ] **Chose** to ***display*** the feedback on the page where the feedback was original created.
+ [ ] **Chose** to ***hide*** the feedback if it's clearly defamatory/trolling/spam or against policy.
# _Free_?
Can we make this a _free_ service?
I've been _quietly_ running **_Free_ GitHub Page View Counter** service for the past couple of years ...
And it's reasonably popular while only costing me $5/month see: https://github.com/dwyl/product-roadmap/issues/7
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.