OpenFeedback.io: open source talk & conference feedbacks SaaS
Tags: meetups, conferences, talks, feedbacks
Published: 2020-11-23 14:28:29

---
title: OpenFeedback.io: open source talk & conference feedbacks SaaS
published: true
description: OpenFeedback is an open source SaaS to help meetups, conferences and speakers gather constructive feedbacks for talks (and much more!), and it's free. 
tags: meetups, conferences, talks, feedbacks
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/ldts1mev5ee4zhcn1w39.png
---

Meetings and conferences often provide session feedback systems that have proven their benefits for both speakers and organizers. Among all the possible feedback tools, the “sticker board” had become a popular choice, because it is a easy and efficient method where attendees just stick their vote in a predefined box (Figure 1).

![Old speaker feedback sheet](https://dev-to-uploads.s3.amazonaws.com/i/4jymbo5ow9n3w5bcnb46.jpg)
_(Figure 1) Old speaker board where colored stickers were applied by attendees_

The world is facing a long-term pandemic and most meetings and conferences take place online where such feedback system is not possible. Hence an online vote & feedback service has become a relevant solution to fill the gap: [OpenFeedback.io](https://github.com/HugoGresse/open-feedback)

Basically, the idea was simple: keeping the previous feedback system, by transposing it into a user-friendly online service. The concept can be explained in 3 steps:

1. QR Codes are provided to attendees (either by speakers or organizers) at the end of the talk or during the Q & A.
2. Attendees scan the QR code, and land in the online sticker board.
3. Attendees click the pre-defined choices they agree with (represented by a box) and a colored sticker is added to their vote. Optionally, they can share additional insights in a comment section.

_Note: you can also use the feedback url in place of QR Codes._

# DEMO
![Open Feedback demo](https://dev-to-uploads.s3.amazonaws.com/i/jfqzx8f8svvwn3nbecih.gif)
_(Figure 2) Feedback demonstration_

[Online demo here](https://openfeedback.io/eaJnyMXD3oNfhrrnBYDT/2019-06-27/30)

The central idea was to create a fast and painless voting system, which means no login and no account required, attendees just click & vote. They can also navigate between talks and add feedbacks hours or days after talks are finished.

To date, the service has been used by 
- [BDX I/O](https://www.bdxio.fr/), [Sunny Tech](https://2019.sunny-tech.io/), [CloudNord](https://cloudnord.fr/) remote or physical conferences, each having 200+ voters and 1000-1500+ votes,  
- Several french meetups such as [French Android User Group](https://www.twitch.tv/frenchandroidusergroup) 
- Medium-sized companies using it for their internal talks, one of them also put OpenFeedback in its company rules. /o/

And it's [Open Source on GitHub.com](https://github.com/HugoGresse/open-feedback)

# Admin: a real SAAS

Open Feedback is built as a [SaaS](https://en.wikipedia.org/wiki/Software_as_a_service). It is composed of 3 applications: 
- Voting app (described above) 
- [Landing / marketing website](https://openfeedback.io)
- [Admin/console](https://openfeedback.io/admin) website to manage events. 

The [admin](https://openfeedback.io/admin) provides a user friendly interface for organizers whishing to create and manage their own events on the OpenFeedback service. It includes:
- Creating events and customizing the logos/colors.
- Managing speakers and sessions.
- Invitation of user(s) to co-manage an event.
- Editing the feedback form, translating it in any languages for cross languages events.
- Moderating comment's section.
- Speakers and sessions can also be loaded from an external data source.
- Votings statistics.

![Open Feedback admin demo](https://dev-to-uploads.s3.amazonaws.com/i/yu0sz20qytshpzts906v.gif)
_(Figure 3) demonstration of the administration user interface_

## How is it made? 

Open Feedback is a single page application developed in React for the frontend, and using Firebase for the backend.

### Frontend details
The frontend is a ~ [monorepo](https://en.wikipedia.org/wiki/Monorepo) ready app composed of: 
- Landing/marketing website: [openfeedback.io](https://openfeedback.io), lazy loaded
- [Feedback app](https://openfeedback.io/eaJnyMXD3oNfhrrnBYDT/2019-06-27/30)
- [Console/admin](https://openfeedback.io/admin), lazy loaded

The 3 apps are using React with the classical stack for React:
- [React Router](https://reactrouter.com/web/) which manages routing based on URL adresses bar, 
- [Redux](https://redux.js.org/)+[thunk](https://github.com/reduxjs/redux-thunk): state and action management, 
- [React Hooks](https://reactjs.org/docs/hooks-reference.html) (almost everywhere), 
- [Formik](https://jaredpalmer.com/formik/)+[yup](https://github.com/jquense/yup/): form and form validation, 
- [Storybook](https://storybook.js.org/): documentation and components demos, 
- [i18next](https://github.com/i18next/react-i18next/): intertionalisation/translation/i18n, split for each app
- [Luxon](https://moment.github.io/luxon/): dates lib, Moment.js was removed to benefit for the small package size & browsers built-in intertionalization APIs,
- [Nivo](https://nivo.rocks/) for an awesome graph experience,
- [Cypress](https://www.cypress.io/) for End to end test, running in a browser on GitHub actions,
- [Jest](https://jestjs.io/) for few unit tests.

### Backend details / servers
OpenFeedback mainly uses [Firebase](https://firebase.google.com/) which includes many services provided by Google. Firebase is running on Google Cloud Platform. Some of the following services are wrappers over GCP own services:
- [Serverless cloud functions](https://firebase.google.com/docs/functions): vote aggregation, user invitation and emails in Typescript,
- [Firestore](https://firebase.google.com/docs/firestore/quickstart): NoSQL database with security rules,
- [Storage](https://firebase.google.com/docs/storage): store events images,
- [Analytics](https://firebase.google.com/docs/analytics): track not the users but the overall Saas usages,
- [Hosting](https://firebase.google.com/docs/hosting): static hosting for the React app,
- [Authentification](https://firebase.google.com/docs/auth): anonymous login for voters, GitHub/Google/Email/Phone for admins. It is a lock-in features for Firebase but it remains **very** convenient,
- [Performance](https://firebase.google.com/docs/perf-mon): website speed analyzer.

In addition, OpenFeedback uses:
- [MailGun](https://www.mailgun.com/) for emails
- [OpsGenie](https://www.atlassian.com/software/opsgenie) for system wide alerting and when a JS or fatal error are throwns.

These two apps have free tiers or free quotas, which is very conveniant. 

# Future plans
Next major steps of OpenFeedback are: 
1. **Organization**: users can join an organization allowing them to see the same events and share a common pool of settings, [issue here](https://github.com/HugoGresse/open-feedback/issues/616).
2. **Integration** of [Conference-Hall.io](https://github.com/bpetetot/conference-hall/), an awesome CFP service. 
3. **More tests**: it takes a lot of time to keep dependencies up to date and prevent regression on new features, so I plan to improve the tests and cover everything so Pull Request can be merged when tests pass without more manual checks.

**Please let me know in the comment's section if you think this service can be useful, and if you have any ideas or suggestions. Thank you very much in advance!**

Also, [you can let additional feedbacks on this article on OpenFeedback](https://openfeedback.io/of-devto/0/OftU0q6IEJmrpEVnK2bY)

Take care and don't work too much 🖖. 

### Acknowledgements
I thank [Lauriane Anthony](https://www.linkedin.com/in/lauriane-anthony-a3696665/) for her help with the design and integration work in the earlier stage of this project. I also thank [Marceau Gresse](https://www.researchgate.net/profile/Marceau_Gresse) and [Baptiste Haudegand](https://www.linkedin.com/in/baptistehaudegand/) for their proofreadings.