History behind History

We’ve caught up with our developers Miky Vacík and Arnar Astvaldsson who have worked on Vivaldi’s History feature. Let’s see how History was made!

Coding history

We released one of the most anticipated features – History in the latest version of the Vivaldi browser. How did the idea to develop this feature come about?

Miky: We aim to replace all the different user interface components from Chromium with our own. Not only that – we want expand on these and make them better. We have tried to completely overhaul the History feature to make its contents more accessible and useful. Basic outline was conceived last summer and the development went on since then.

Arnar: As it is often the case with programming, the History task was underestimated. We started working on it in June 2016 during our team gathering in Magnolia, Massachusetts. And now, nine months later, it is out in Vivaldi 1.8.

Traditionally, in other browsers, history is hidden deep down in the UI. We wanted to bring it out into the light. From the beginning, we got lots of feedback and ideas from our users. Many breakthrough ideas were discussed and implemented throughout the development process.

How is the History feature in the Vivaldi browser different from other browsers and browser extensions? 

Arnar: We have various ways of viewing the data. In other browsers, history is often a flat list that you can search through. In Vivaldi, you can get a daily, weekly or monthly overview. We also show aggregated statistics, which for me is the biggest difference.

Miky: You can also see the data filtered in various calendar views, which I think is very useful. Activity heat map, graphs and statistics adapt to selected days and specifically to data filtered by your search.

How do you see yourself using this feature?

Arnar: I guess I use it rather traditionally. Both for glancing at the statistics cause I like stats and also for finding again that interesting page I looked at last week.

Miky: As we worked on developing this feature, it was important to verify that we were moving in the right direction. We have shown “History in Making” to our closed group of testers, and the response was overwhelmingly positive. It was clear that this feature offers a complete new perspective, revealing browsing patterns and behavior. After collecting sample history data for eight months, I’m finding the new History pretty insightful myself.

How do you feel about the positive response from the users?

Miky: It’s a step in the right direction. I don’t try to bask in the fame as I still see room for improvement. We already have a bunch of enhancements lined up for the next update. 🙂

Arnar: It is really encouraging to read the positive reviews. It helps you through the difficult days when you are dealing with a nasty bug that was not going anywhere.

Which is your favorite aspect of History?

Arnar: The beauty of this feature is that you are not limited to a single way of viewing the data. You can tailor it to your preferences and needs. It adapts to you.

Miky: Honestly, I got to learn about some of my own browsing habits that were not obvious before. The search and filtering by domain is very useful.

Do you think there could be almost too much to learn about your browsing behavior through this feature?

Miky: Look at it this way – these patterns are already largely transparent to companies collecting and monetizing private data. Instead of doing that, Vivaldi takes these patterns and gives them back to you to visualize, analyze, and act upon.

Vivaldi has a team which is distributed across the globe. Miky, you live in Prague, Czech Republic, and Arnar, you are based out of Reykjavik in Iceland. How do you collaborate in this scenario?

Arnar: There have been moments of discussion and, I must admit, lots of discussions. It’s been a big task, and now we feel that a great feature is out and we are proud of it.

Miky: There are always different opinions, especially when working on a feature so huge, but I think that these disagreements only let us explore more ways for making the feature more useful.

Were there any technical challenges that you came across during the development of this feature?

Arnar: There were many challenges along the way. First, you are dealing with a lot of raw data, stored in database tables. The data needed aggregation for visit counts and displaying. The UI had to be snappy. Many iterations were done optimizing the performance, from database indexes including SQL query tuning, to advanced React JS tricks. Overall, it was a great learning experience.

Miky: Fitting the history data into calendar-like views wasn’t that obvious at first, as we wanted to maintain some workflow between them. That led to the option of selecting individual date ranges or days within, to further narrow the search span or data inspection. Activity heat map and statistics reflect this selection and respond to search results. History then grew from a reference for past links to glimpse into a full browsing activity.

Would you like to throw some light on the various technologies used to develop this feature?

Arnar: We used different types of technologies to develop this feature. SQL query from database, read into C++ model, then converted into Javascript model, counted and aggregated before displayed in History Panel and manager using react JS. We tried out many different ways of aggregating and processing data for the best performance.

Miky: Adding to what Arnar said, lots of prototypes were made. At the end, we have made modular interface where everyone could set the panels and views to their preference or as it would best suit their current goal. 

Now a bit off topic – History as a subject at school! Did you like it?

Arnar: Yes. I like history. I still read the Sagas of Icelanders from 9th to 11th century for fun.

Miky: Of course, I love history. Didn’t you see that we’ve just made? 😀

Any plans for updates for History in the near future?

Miky: Definitely. Although I am wondering how much we should reveal now or keep as a surprise…

Arnar: Vivaldi is a user-driven browser and our community gives us the cues to develop the product. We are open to feedback and if our users would like us to add or improve on this feature, we will be more than happy to consider and implement it. Let us know!

Get away from Big Tech and have fun doing it

Download Vivaldi