Peer-review is important in journalism. By having our work reviewed by others, we can fix typos and reduce bias in our writing. We loved the open-source code review process in software development, and this project came from a question that occurred to us—What if journalism used public software for peer-reviewing writing?

After doing more research to understand the market fit, we were surprised to find that this was a relatively unique idea. The most similar existing idea is Wikipedia, which is the 13th most visited website in the world and attracts 1.7 billion unique visitors every month. However, Wikipedia does not support journalism pieces and casual articles such as blog posts.

What it does

On, users can highlight articles to make suggestions for adding, removing, or changing lines! Suggestions made by users are displayed on the side of each article, and users can upvote suggestions that they agree with. Users can accept/reject suggestions on articles they authored. The UX is minimalistic, clean, and intuitive so that users can focus on what's important: suggesting high-quality edits. There is also a gameified aspect where users earn points whenever their suggestions on an article are accepted by the author.

To further expand our project to a market-ready SaaS platform, users can use the rich-text document editor to write and publish their own articles. Everyone can browse and search through all the articles, leave comments, and create profiles.

From a technical standpoint, our project implements version control through a complex model of branches, commits, and merging.

How our team built it

At the beginning, we had a meeting to discuss our vision for the project. We did some research and came up with a list of features that would have the maximum impact for our MVP—for example, having a dashboard, and having an in-built article editor. Next, we discussed the higher-level technical details, such as which tools to use and how to divide up the work between the 4 of us. A lot of teamwork and planning was required for our project to go smoothly!

The frontend of our project is built with React, with components from ChakraUI. We used Next.js for middleware, and Vercel to continuously deploy the frontend. On the backend side, we used CockroachDB for our database and Rails for the backend framework. Finally, we used Heroku to deploy the backend. We chose these tools for a mixture of reasons—familiarity, eagerness to try out something new, and choosing tools that were powerful enough for what we wanted to make.

Challenges our team ran into

We ran into difficulties when implementing the backend framework and integrating it with the frontend. It led to a very intense Saturday debugging session. We realized we should have deployed and integrated much earlier on in the development process. Finally, we had the regular challenges of learning how to use new tools, and collaborating with teammates entirely through Discord.

Accomplishments that our team is proud of

We can see this project continuing in the future and slowly gaining a user base. Although we weren't sure at the start whether it was realistic to make this idea a reality within 36 hours, we mostly proved ourselves wrong! Our team is proud of all we were able to accomplish within the short timeframe.

What our team learned

Given the time constraints, we learned that scoping is very important. We started adding many features that weren't strictly necessary for our MVP, and the backend got complicated. We also learned that when it comes to frameworks, you get what's in the box—sometimes it's better to play it safe if it guarantees the project will run without problems by the deadline.

Our two frontend team members had a fun time learning how to use Grids, and learning to make reusable components!

What's next for

The next step is adding more features for freeflo. We have a backlog already of features that would make the product even better! Since the website is already deployed, feel free to keep up with our progress by visiting the website!

Built With

Share this project: