SuttaCentral Express

I just made SuttaCentral.Express, a fast and minimal alternative frontend for SuttaCentral.net.

It includes

  • All the English and root language tipitaka texts (suttas, vinaya, abhidhamma) and their footnotes/comments, parallels, main reference/segmentation links, and root-text view where applicable.
  • Mirrors the URL structure of suttacentral.net (eg /dn2/en/sujato, /mn118, /pitika/vinaya, /pitaka/sutta/linked/sn etc). Just switch the .net for .express in the URL.[1]
  • Improves page load performance by over 600%[2].

It also includes

  • No editions, essays, guides, map, testimonies, dictionaries, subjects, similes, names or terms pages, and no search—it’s just the tipitaka, Web 1.0 style.
  • No translations other than English.
  • No javascript :partying_face:

You can steal my codes from sourcehut, codeberg or github, help me with my todo’s, or forgive me for any API abusage while making it. :folded_hands:


  1. Don’t worry! The extra time spent typing express vs net will be saved on the first page load. See the evidences. ↩︎

  2. Performance comparison for /dn1/en/sujato via https://pagespeed.web.dev on 19/11/2025 ↩︎

21 Likes

Wow, this is great. You weren’t kidding about the no js thing, eh? Looks like you are taking advantage of modern html and css really well.

Thanks for making this!

7 Likes

Just amazing. So efficient and fast! Congrats!

5 Likes

Oh, fantastic. You know sometimes I wish we’d done something similar, now we don’t have to.

One question: is there a reason the body text is set to 600 weight? To my mind, removing that one CSS declaration would improve readability greatly.

Oh also, if at any point you don’t feel like maintaining this, let us know, I’d happily include this as an official SC project so we can pay the server etc.

8 Likes

I would also suggest the same.

One thing I love about the express site (and wish Sutta Central would fix) is that when you select text that includes a footnote, the footnote text does not get copied.

I also love the fact that the urls are very identical. Especially just typing https://suttacentral.express/mn139 works, which is important for power users.

If this project is really going to be “permanent” I should probably include links to it in the daily sutta emails. It would really help for people on bad mobile connections.

7 Likes

I fourth the “amazing!” notice. :slight_smile:

Can I ask doing what (or not doing what) has made the website much faster?

I’m just asking so to know what features to the Express can be made without breaking the speed. Search would be the #1, really;

1 Like

Like a lot of modern websites, the real SuttaCentral is built using a front end that is the container for the content and then an API (application programme interface) that loads the data to fill the container. So the “container” must be built first and then all the API calls have to be made to fill the container with content.

I don’t know what exactly makes the main site slow, but if you use my SC-light you can see that the API data is very fast. That site is more or less the same concept as the main SC site. But the “container” is only about 10kb, which does load very fast. The lag you see when a sutta loads is the lag of the API, which is not much.

If I’m not mistaken, the Express site is pure HTML pages that are already written and stored on a server. All the building of the pages has already happened. So when you try to load a page, you are just calling a single text file. It’s called a static site. This is different than almost any other site you are likely to visit today. Usually there is a whole pile of fonts, images, javascript, and API calls before a page is completely loaded.

If you need to search the express site now, I’d recommend just putting site:suttacentral.express in your Google search, or figure out the equivalent in whatever search engine still works these days.

5 Likes

This is cool, been caught out a few times without phone reception and cached sutta central, best use case I can think of download with wget so have suttas before knowing I am going offline. Other cool ideas for something like this in future (you’ve used npm but was imagining in lua or something) serving through redbean (which can be run on any platform or architecture) and running on like an old netbsd dumpstered router device or something - for when a monastery or community doesn’t have phone reception, and just old IT that needs to keep running for a couple decades, or also just for extreme minimalist and extremely fast “copy and paste” the suttas around as a single portable executable

3 Likes

As of midday Saturday, Perth time, the search API is returning results in just over 1000ms. I’ve seen that go up to 3500ms or more at times. The search-test utility does include response time, so we could build benchmarks with it.

Another issue is that the API gets called twice for each general search, though not volpage search. I plan to tackle this issue once I’m finished the current work on search-test. I’d imaging halving the number of hits to the search engine is going to help.

And please note, folks, that Kusala Hermitage has a new building project starting soon, so my output will be attenuated.

8 Likes

You can also get a zip offline version of Bhante Sujato’s translations here. It even has a basic, but quite good search function

6 Likes

thank you for the feedback! especially @Snowbird for the expert bug reports, and @sujato for the expert generosity :folded_hands: @Dan i like your thinking for other ways to use it that i’d never thought about :ok_hand:

i’d like to point out a feature i just added today: text to speech, for every text on the website, right there on the website. you can try it by going to any text, ie DN 1: Brahmajālasutta—Bhikkhu Sujato, and using the “listen” controls in the top right.

(please report any bugs to me privately to not bother anyone else here with them :folded_hands: you can message me here, use the email link in the footer of SCX or make a ticket here or on any of the other hosting links above)

it uses the SpeechSynthesis interface of the Web Speech API, which means it works locally on your device, using your devices processing power (no external server) and your devices voices (mine has over 180 voice options in over 50 languages, and a few are actually good!). this browser native feature has had mainstream support for about ten years.

because it all happens locally on your device, that means its fast–because theres nothing to download–and also means it works offline :rocket: so if anyone was to download the entire site for dedicated offline use, they could also listen to all the texts exactly the same.

after pressing the play button to start listening, you can click on any portion of the text to skip to that section. this works best on segmented texts (like sujatos suttas, brahmalis vinaya, and pali root texts) where its sentence by sentence. all the other legacy texts will still work, they just take bigger chunks, usually whole paragraphs. for some non-english texts, like chinese root texts, you’ll need to select a voice in the corresponding language.

this feature comes at the one-time cost of less than 7kb of javascript, which is 50% the size of the already included css, and 0.68% the size of the average image on the web[1]. and of course, the rest of site still works as it did before if you’ve disabled javascript.


  1. “The median desktop image weight for 2022 was 1,026 kilobytes…” Page Weight | 2022 | The Web Almanac by HTTP Archive ↩︎

8 Likes

Amazing work. Love the no js thing.

2 Likes

This all sounds fantastic! Congratulations!

How do the voices of your device deal with Pali? The fact that this is usually difficult was the reason why @karl_lew originally started developing SC-Voice.

4 Likes

the same way all english speakers who dont know pali do–skip the diacritics, pronounce the c’s like k’s, and the rest of it like one big long english typo :joy:

5 Likes

Yay! Fantastic news. I am so glad others are working to hear the sutras. I was worried about this because listening to the suttas is such an important part of the path.

In a parallel effort, I’m working on scVoice/iOS for Apple devices with focus on iPhone, iPad and eventually MacOS. Apple has a long history of work in accessibility and I have abandoned my Linux computer for my own needs. Apple has on-device speech synthesis that supports high quality voices made specifically for accessibility. These voice are not SSML customisable, but. they are high quality. Furthermore, we are able to include SQLite databases with full translations for multiple authors in multiple languages, expanding them on device according to user need. Search will be included as well–the on-device voice commands are actually good enough to say “Hey Siri, search scVoice for: root of suffering”, although there is indeed a problem with “route of suffering”. :see_no_evil_monkey:

But the focus on Apple leaves a gap. Not everybody has an Apple device, and I do not have enough years left to address that offline need. How wonderful then that SuttaCentral.Express and A Treasury of the Dhamma exist for all.

Sadhu Sadhu Sadhu!
:pray: :heart:

5 Likes

Feel free to use the SC-Voice Pali API. It’s old. It’s creaky. It’s free. and you can local store audio files in browser. ElevenLabs sounds better though, so others will soon solve this issue.

Ven. @Pasanna I still have your SSML improvements for Aditi in mind. However I am delayed investigating on-device speech synthesis for Pali on Apple devices. We may store the full Aditi audio for example or rewrite the whole Pali synthesis in a different manner. :thinking:. Unfortunately, if I use an Apple voice, I would not be able to offer such Siri Audio to others because Apple owns Siri voices. So it gets complicated…

4 Likes

I’m happy to work with you to get whatever you need sounding good, even if it’s not Aditi. I am on a apple environment.

4 Likes

:man_cartwheeling: :pray:

3 Likes

seeing this thread and peoples kind attention to valuing the buddhas words and passing on makes me happy : go dhamma hackers! hehe

5 Likes

This is a fantastic website. Very intuitive, minimalistic yet has everything an average student needs. I was thinking of making a similar website myself… But thanks to SuttaCentral Express the burden is now off of me, and you’ve done an incredible work of compiling all of the major texts!

4 Likes