A book is that one form of communication and knowledge sharing that's been around for countless centuries - indeed, the first form of books, in the form of papyrus scrolls, came about when the Egyptians and the Babylonians came up with hieroglyphic and cuneiform-based writing systems. But interestingly, if you go forward 2000 years, with an exponential explosion in the amount of written literature available, you don't see a lot of good products out there, that help you figure out what you should read.
Well, there is Goodreads. And then, built right here in India, is Vivilio.
Priyanka Gupta, the founder of Vivilio, has had a long and interesting history with building ideas around books; her previous foray was IndiaBookStore.net, which is a nifty price comparison tool for book lovers - in a time where you can buy books from multiple websites.
As Priyanka puts it, IndiaBookStore was a very focused product, with users knowing that they were there to look for price comparisons. But then, something else started to emerge. "A lot of users asked if there was a way to browse through books, and understand which books you should be reading?", recounts Priyanka. "We asked them to check out bestsellers on Flipkart and Amazon. The trouble is, for any given category, both those platforms have thousands of great books listed, which becomes a pain to sift through. They needed a more customized, more focused platform, with specialized recommendations. We conducted surveys among these users, trying to understand what books they read, how they'd find books they should read, and what kind of data they consumed on the Web about books - reviews, summaries, and so on. We understood that people go to friends and influencers to see what they read, and that becomes a starting point for them. At the same time, we found out about Goodreads, and when we asked our users why they weren't using Goodreads, the answer was interesting. People like Goodreads, but there isn't a lot of content contributed there, by Indians - like reviews or ratings. Also, authors in India tend to use Goodreads more like normal users, instead of using author pages and so on. It seemed pretty clear that we had to build a platform where readers could easily connect with authors within India. We're quite nascent right now, but that's where we'd like to be."
There's more to tech than meets the eye
At a high-level glance, Vivilio's tech is a Node.js web app, with Mongo and Redis at the backend. As Prakhar Shukla, one of Vivilio's full-stack devs puts it, it's the standard MEAN stack without the 'A' - the app needs to be crawlable by search engines, and while hacks for Angular apps exist to fix that, it was better off going without Angular.
The best part about Vivilio's tech is its subtlety - it doesn't seem like a lot, but there's a lot going on under the hood, especially with data. "Books are an interesting vertical," says Priyanka. "There's a huge number of books in the market, more than any other media ever. Our challenge is to retrieve and store good data points about books." To that end, Vivilio's got a write-savvy Mongo database up and running, with Elasticsearch powering all searches. Kshitiz Gupta, the other full-stack whiz at Vivilio, developed a backend crawler that crawls multiple stores - Flipkart, Amazon, the like - and retrieves book data for Vivilio to serve to its users. It's written in Node too, with a custom job server. The best part is that it's got rate limits built into it, which allows Vivilio to collect data without abusing other platforms' rate limits. That's something you don't find in a lot of open-source crawlers.
Vivilio's infrastructure is split between dedicated servers located in E2E's colocation facility in the NCR that run the Vivilio app, as well as instances on AWS, that run the data crawlers. This ensure very, very low latency for users within India, although as Priyanka notes, the downside is that users outside India do find the Vivilio app a bit slow. Another interesting point about their infrastructure is the clear division between different services that power the tech behind Vivilio. "Everything's a microservice," explains Priyanka. "Earlier, everything was built into one codebase, but as we started writing the crawlers, we realized it was difficult to manage changes across our code. So we started breaking up all our code into microservices, which talk to each other through APIs. We have to reach a level where we have 30m books in our database - Vivilio currently has 4m - and we must have the ability constantly update this dataset."
"Everything's a microservice."
Vivilio's search functionality has a story too. Two years back, there was no data on books, so every search was a live search across multiple platforms. "When we started to build our database," she recalls, "we realized we could do internal searches too. It took us about a year and a half to build a robust system with a lot of data."
There are some lessons to be learnt from the way the team has built up Vivilio's tech stack. One very important takeaway is security - something a lot of products neglect to look at. "We use CSF and ufw for putting up server firewalls," explains Prakhar. "We update them, but it so happened once that we updated them, but didn't notice that the updates introduced new security options and switches we didn't know about. We also didn't update our Wordpress blog frequently enough, which also becomes a security vulnerability. Updates aren't very costly if you update your stack regularly - say, once a month - but if you let them pile up, they become huge, and they can break your code."
Vivilio's experience with mobile apps has been governed a lot by how users interact with the app, especially with updates. As Prakhar and Kshitiz note, once an app is released, it's out; there's no way to ensure users will update your app. This is where they believe it makes a lot of sense to have a large beta user group, so you can ensure your app updates are rolled out to them, atleast.
"Another massive challenge with book data - it's unstructured and it's huge," says Priyanka. "We're at a smaller set of the problem, since we're handling books that have ISBNs. We haven't yet gone to a level where books don't have that, where comparisons between books becomes all the more difficult. There's no central repository for books - even though there's a great system like the ISBN method, which doesn't exist for other forms of media. But a lot of books in regional languages don't have ISBNs, and even ebooks don't have that. That's the next problem for us to tackle."
One of the things that stand out about Vivilio is their flat, clean approach to design. There's no designer on the team per se - so a lot of the design iterations, according to Priyanka, revolve around a constant cycle of user feedback and testing, as well as reaching out to product designers in other organizations, and soliciting their views. As Priyanka notes, they're fortunate to have a lot of support from other people out there to reach out to - be it about design, or tech, or more.
Tackling growth, engagement and more
Talking to Soumitra Sengupta, the marketing lead at Vivilio, opened a can of insights into the chops it takes, to grow and scale a community, a couple hundred books a time. Soumitra's on point figuring out the right traction channels, and at this point, there's a lot of experimentation with social channels. For Vivilio, the focus is on increasing content, as well as gorwing influencer marketing.
"We launched user signups 3 months ago, and we track approximately 200 signups every week, if you take an average," states Soumitra. "The idea is to nurture our subscriber group, and grow from there. With influencers in place, the idea is that as a user, you can follow your peers to see what they're reading, and on the other, you can follow authors and influencers to see what they read."
In the beginning, the team figured they'd target authors and ask them to create Vivilio profiles which users could follow. But this turned out to be rather cumbersome; authors would reply at times, and sometimes, authors won't. That's when the team decided to change their tactics and understand what books authors and influencers read, and then compile a page for them to claim - the act of claiming then converts the page to a public profile.
"Once this was done, we launched a Twitter campaign, where we were giving away a Kindle," recounts Soumitra. "We asked people to tag their favorite authors, and ask them what books they were reading currently. Since we were offering a Kindle, a lot of people responded, with thousands of tweets going out. That way, the authors got to know about Vivilio, and their responses enabled us to add books to their profiles and get back to them with a profile page that they could use to connect with readers."
Retention is something the team is still working on. The problem, Soumitra explains, is that the sample set is pretty small, with about 2200 subscribers. While the churn rate is a bit high, he's confident that as content and Vivilio's feature set grows, retention rates will improve.
Writing Vivilio's new pages
How does the team figure out what to build, and what to put aside?
"Largely, it's about user feedback," says Priyanka. "Our focus is on building engagement. Our data says people sign up and add books, but why do they leave? We try and understand such questions through our beta users, who're quite loyal, and give us very detailed and honest feedback - we even have long calls with them. There are a lot of constraints with a small team, and we can't build a feature that might take 1-2 months to roll out. We work on features that will be extremely useful for users, and prioritize based on complexity levels. For instance, a lot of users wanted the ability to import their Goodreads data into Vivilio, and when we launched it, people loved it."
"We're still figuring out what our North Star metric should be", laughs Soumitra. "Traffic doesn't always translate into growth, and neither does user growth. Once retention stabilizes, user interactions and time-on-site will become major metrics."
"Traffic doesn't always translate into growth, and neither does user growth."
"The core functionality behind Vivilio is to build a community, where people can create profiles, and share the books they love," explains Priyanka. "We track signups every week, and then we drill down to see how many of those signups added new books to their shelves, and how many then go ahead and keep their shelves updated. With social features releasing on Vivilio, our metrics would change to reflect that."
Building Vivilio's team
Vivilio's team is Priyanka, Soumitra, Kshitiz and Prakhar in the NCR, with Mugdha Wagle, the editor, based out of Mumbai. But Priyanka has very different thoughts about the concept of working remote.
"A lot of products work that way, where people sit remotely and work, but that won't work for me," she clarifies. "Our editor works out of Mumbai, and when she started, we thought about doing it for a couple of months and then going our separate ways. But she and I have a very different relationship, and that's why it's worked out so well for two years now. But the core team should work from the same location. I feel I can't build a product, get the same level of commitment, if everyone's working in different cities. Even with Mugdha, I get on calls every now and then, and I feel she's missing out on the energy we have here. If the team grows, this is something we'd have to think about more seriously."
"I feel I can't build a product, get the same level of commitment, if everyone's working in different cities."
And in the meantime, as Soumitra puts it, they make it all work with Asana and Google Talk!
Books are simply amazing, and it's always been a source of wonder, why a lot of people don't build products that change the way we think about what to read. Hopefully, with Vivilio stepping up to take on that mantle, we can look forward to a way better experience finding better reads, and interacting with the people who makes those better reads possible.