What should a SuttaCentral app be like?

That’s very cool, I’d love to do something like that. A timeline as such wouldn’t be possible, at least not for all suttas, as we simply don’t have enough information. But certain kinds of interactive display could definitely work; they make great teaching tools. Something like this, for example.

This is definitely something worth looking at, it would be nice to expose the maps a little more. One stumbling block is that the names aren’t always the same; the pali spelling varies, sometimes they’re translated (“Vulture’s peak”), and so on. Still, nothing insurmountable.

An interesting article on Progressive Web Apps:

2 Likes

I’ve been watching some dev videos along those same lines and I have to say I strongly agree: Native apps are not a good thing to invest time into.

One thing a progressive web app can do is have near full offline functionality. This does present some challenges for SuttaCentral because the entire body of texts is ~450mb, this is generally beyond what browsers are comfortable with letting a webpage download right now, for example last I heard IE is capped at 250mb with user permission, unless the user manually changes the IE configuration to allow up to 999mb. Pretty much all browsers require user permission for more than 5/10mb which is fair enough.

One possibility I have thought of is to have the ability to mark a language as available offline, that would (if needed) ask the user for permission to download content to the browser, and if permission is granted it would download all the texts for that language and they would then be available offline. For example atm the 10 largest languages are:

  • vn 70.2mb
  • pi 67.1mb
  • si 53.8mb
  • my 48.6mb
  • lzh 47.7mb
  • en 40.3mb
  • th 36.3mb
  • de 35.6mb
  • id 24.4mb
  • ru 22.9mb

Most users will only be interested in 1 or 2 translation languages so this is a good way to eliminate most the bulk. Reducing the size of the texts would also ease doing offline search. It would also be conceivable to make it even more granular, say at the division level, although the synchronization headaches are non-trivial. Doing this kind of division would be possible but not easy.

Having near full offline functionality would also require that much of the presentation (i.e. templates) be doable in javascript, which I think would not be a major problem provided that the backend generates tidy JSON data. In fact seeing as most the non-text data is only a few mb generating division/parallel type pages in the browser could give some very impressive performance as there would be no need for requests at all.

The technologies, Service Worker and Quota Management API are still not quite finalized at this time. But Service Workers are very exciting and a far more sensible approach than alternatives which have existed so far.

4 Likes

Excellent, so we’re on the same page here. I had assumed that language selection would be a part of any serious offline capability. It looks like we should continue development, bearing these ideas in mind, and perhaps look to implementing them in the medium term. But the focus obviously stays with the website for now.

I’m wondering how “near” the offline capabilities are. Specifically, search. I assume we’re not going to be installing elasticsearch on people’s phones. How does that work? Is it replaced with sqlite? Or does search require a connection?

Basically for search at the moment we would be limited to a javascript based implementation, or perhaps WebAssembly (which atm is about the same thing). It wouldn’t be too hard to implement limited search capabilities in offline mode. There are a number of pure javascript full text search libraries available right now, such as lunr.js and Elasticlunr.js.

Searching requires the prior creation of indexes, these indexes tend to be quite large, usually a significant fraction of the size indexed texts, sometimes even larger, for example Elasticsearch’s indexes are 912mb atm, twice as large as the texts themselves. For offline search, the server would pre-generate the index (optimized for size) and deliver the index together with the texts, then the javascript search library would use that index to generate search results.

2 Likes

I would love to see an app with random Sutta available and offline. I really get a lot
of benefit from clicking random Sutta and reading something new every day. I much prefer the Sutta Central translations. The other thing would be to include all the Suttas in a random Sutta button on the home page. I realize there are some Suttas that come up randomly, but it would be brilliant to have access to a random feature that includes all the Suttas and on demand.

Thank you for your consideration and all your dedication to sharing the Dhamma.

1 Like

Just using SC on iOs phone today- it would be nice if there was a way for the app to read out loud the text on DD. I drive and spend a 2-3 hours on the road, so I would love it to be hands free!

1 Like

This should be available at some stage: not with the next launch, but as a later upgrade, in a year or two, with luck!

3 Likes

Great! I am looking forward to it. :loudspeaker:

Does this mean there is and Android app or is this just meaning the website will have a feature to have the sutras automatically read by one of those pre recorded voice softwares. This would be a brilliant thing as some of the voices are quite authentic sounding and getting better.

The new website will be a Progressive Web App, which means it is a website that functions like an app. You can keep it natively on your phone, use it offline, and so on. Support for this on Android is good, but iOS will take a little while, as Apple have been dragging their feet. It is coming, though.

For machine reading, this should be independent of us, as you can just enable it on your phone or browser. What I’m talking about is actual humans reading it. We’ve been in discussions to create a full set of professional recordings. Like I said, this will take some time. When it does happen, it should be possible to make this into part of the PWA experience, to download and use offline.

8 Likes

That’s brilliant news! Well done!

with much metta

1 Like

That is fantastic. I would be willing to help do some recordings for you. I have some recording gear. Maybe I can do a sample for you and send it. I would do this for free. Of course, I’d rather not listen to suttas read by me, but I’d be willing to help for the greater community by donating my time and services.

4 Likes

Well, that is so very kind of you.

At the moment the texts are in a state of flux, we will be proofreading them for the next few months. Hopefully they should be ready by Feb 2018.

As far as the reading of them goes, I was in talks with a professional firm for doing this. They do spiritual and related work in England, so are very excited to take on something like this. Now, nothing is set in stone, but my plan was to wait until after the texts are published, give it a little time, then look to doing the readings.

May I suggest that I keep your name on a list that I shall just start, and get back in touch with you next year?

3 Likes

For sure. I think a professional firm would be brilliant, but if there is a need, I would be willing to do this to help spread the dhamma and honour your efforts.

Please let me know if you need or want any help.

4 Likes

There are apps out in the internet which easily allows one to read out texts using available voices. Just maybe the pali terms will be harder for them.

Anyway, for me the real power of having an app is the ability to mark for each user which suttas or group of suttas I have read. This is especially useful for those who uses the random sutta function. Each user profile can be linked to social media and then after marking one sutta as read, one can share it on facebook with reflections, effectively bringing dhamma to the masses.

On the profile page, we can add in sutta reading progress and award badges to those who had finished the whole 5 nikayas, then the whole tipitaka, then more. And how many times one have finished reading the tipitaka, including backtracking to mark if we have read the suttas at what date, what is the last date this sutta had been read by me etc…

The badge thing is not so much on cultivating ego, more of inspiring people who haven’t finish reading all the suttas to see that it’s possible to finish reading it in a relatively short time, within 1 year or so.

Each sutta can have their own page as well to show:

  1. How many people had read this, useful for dhamma speakers to know what is a popular sutta and which one is less popular so that they can bring more rarely seen dhamma to the masses.
  2. A button to mark I have read this.
  3. Discussions like facebook wall and this forum, to discuss the sutta itself directly.
  4. Links to other possible translations online or pdf.
  5. An option to others who are translating the suttas on their own to allow them to upload their version and then we can have more variety. Just need a round of check to make sure that it is the correct sutta being translated. This way, one can also produce a modern style sutta version, replacing common outdated analogies with modern ones. Outdated Christian influenced terminology for the internet millennial languages. And so on. I would like to replace “thus come one” to “Just like that” because the second phase speaks to me more intuitively as a youth, influenced by Singlish and Manglish. “Thus come one” just sounds strange. “Blessed one” (blessed by whom?) can become “the Awesome one”.
1 Like

Thanks for the thoughtful ideas!

Let me comment on a few things.

Indeed, this is a problem. It would be great to build a text-to-speech that would nicely handle the Pali terms. We did start looking into this, but didn’t get very far. Modern text-to speech is getting pretty good. But the best is, of course, having a human read them, and we do have plans to create audio readings of the suttas in English (to start with). It will take some time, though.

Maybe. I’m not sure how it would be implemented, though.

Remember, this forum software that we are using is a completely different platform than the suttas. We have been able to build some simple plugins to connect the two, but what you’re talking about here requires a vastly greater level of integration. And many people who read suttas don’t create user profiles over here at all.

Instead, if we wanted to introduce such functions, it would be better to build it into the main site. It would not really require user accounts, unless someone wanted to sync between devices, which is possible but more complicated.

It’s also not something I’d want to impose on users, as many people wouldn’t want this kind of thing. So it would have to be opt-in.

But let’s say we try it out. We create an option on the Home page so that people can track progress. They can define a goal, say to finish reading the Majjhima Nikaya.

Then we remember which suttas they’ve read. This is not as easy as it sounds: it’s common to not fully read a page, so what counts as “read”? It would probably be best to have the user click a button at the bottom of a sutta page to say they’ve read it.

Cool, then this can be registered in the interface in some way. Maybe we highlight read and unread texts in different colors. And we can make a progress chart, maybe a pie chart on the Home page.

Then we can give them a success message when they complete the task, maybe interim messages in between. Perhaps create a cute sign or certificate of completion they can proudly share! :fireworks:

I’ve considered this, but I think it’s likely to backfire. The reality is that a tiny selection of suttas is read far more than all the others. If we say “these are the popular ones”, it’s likely to just encourage people to read them all the more.

We are supporting additional translations. For the translations on the site, however, i want to ensure that only those by experienced and qualified people are found. If students want to try things out and get some feedback, that’s what this forum is for.

2 Likes

Thanks for replying and considering. I was just writing this proposal for an app for a friend who wants to try to create new apps and is asking for ideas.

So the app would have the list of suttas and vinaya, etc and beside each suttas there will be a few check buttons, one is read, each click is read once for that person maybe a pop up can ask when had you read it, one is undo (to undo the change in read in the last 24 hours), another is erase to mark the sutta as completely unread.
For the samyutta nikaya, there is an option to mark the whole samyutta (56 of them total) as read and undo them instead of going though the hundreds or thousands of individual suttas within each samyutta. Like the ones with repetition but just change a word or phrase.

Yes, the user profile I was thinking of 3 levels:

  1. Social media integration, for full social sharing.
  2. Create a profile which can link or delink from social media anytime and can participate in sutta discussion on sutta page, just lack the ability to share what sutta they had read to their social media.
  3. For the recluses who wish for no interaction, data is not backup to the cloud but stored on their device, they need not create any account, and cannot participate in the discussion, social media, their profile page is not online available.

Anyway, I was thinking that to get the whole content listing of the suttas including their numbers, pali and english names is a challenge, but sutta central has that and more already, so it’s just one more step to integrate the mark as read into it for each person. The individual page for each sutta has to be generated automatically by the programme of course, or else there is too much work for humans to do.

Well, if someone wants to make an app for this, please stay in touch and we would be delighted to support it in any way we can.

Just be warned, though, the task of simply organizing all the collections and their categories and so on is no easy one: we still haven’t ironed out all the kinks. Perhaps it could be pulled from our front end, but I am not sure how that would be done. Anyway, our source code is all available, so they can check it out for themselves.

A post was split to a new topic: Get SC accepted in App stores