That engineering blog post is a bit ambiguous to whether or not SQLite is also used in the browser web-app, which I'm presume is being used for most people who clicked on the link.
So that could mean two things:
- SQLite is being used in-memory, but things are still being flushed to IndexedDB for persistence? shouldn't help with faster page navigation here
- SQLite is not being used, so it can't explain the performance increase
I think the answer is more in the second link (changelog):
> - *Your workspace is now more reliable after Apr 16, 2021's scheduled maintenance — we upgraded from a single database instance to a sharded deployment, which means Notion is now capable of serving 3x as much traffic as before*
They're generated client-side using KaTeX[1]. That said the entire page is generated using JS meaning that someone visiting the site with JS disabled or using a text web browser will be greeted with a blank page. Nevertheless no-JS versions seem to be shown to bots since Google caches a plain HTML version of the same page[2].
Maybe it's just an oversight then when inline and block math was rolled out. KaTeX has a `renderToString` function that can be used to server-side render the LaTeX.
On an other hand, Notion doesn't seem built to serve read-only webpages like a static blog or Medium.com: the expectation is that you'll use the editor, so assumption is javascript is enabled and the editor itself can be used to render a read-only view from JSON or however they're keeping document state.
Opening dev tools on the website, it looks like they're just using Webpack (like React CRA?); not sure if they're changing the javascript bundle per page like with Next.js.
It would make sense to not have server-side rendering if you're building both browser and desktop apps, since that would mean avoiding a separate framework only for the browser.
It is also mentioned on today's changelog: https://www.notion.so/What-s-New-157765353f2c4705bd45474e5ba...