dwyl / dwyl/feedback

Embeddable Feedback "Widget" on *Any* Web Page?

Open
#96 0 comments 3 reactions 0 assignees View on GitHub
discuss enhancement epic help wanted question technical
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_):
![feedback-side-button](https://user-images.githubusercontent.com/194400/46242335-af2e0a00-c3bf-11e8-8578-a11b439e0116.png)
But it requires _two_ clicks. (_first the user must click on the "Feedback" button, then leave feedback_)

A "zero friction" approach UX/UI is:
![reaction-emojis](https://user-images.githubusercontent.com/194400/46242267-93763400-c3be-11e8-8188-52f0b68ffcfd.png)
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.