Recent submissions

Comment · 3 years ago
Of course! As you’ve found through digging into the js, it uses the official SQLite WASM build. The site currently uses a slightly old vendored version built from the SQLite codebase, but the SQLite team have recently released a binary at https://sqlite.org/download.html (under the WebAssembly section) that anyone can try out. You can find the docs at https://sqlite.org/wasm/doc/trunk/index.md, which have been rapidly improving over the past few months.

The process for building the database is a bit complex. I want to support all browsers, so unfortunately need to use local storage to back it up. Firefox has a while to go before it supports the Origin Private File System, but once it does so the build will be a lot smoother.

I build the index as part of the site’s CI (using nix), by running SQLite-WASM in deno to pre-load local storage. I then extract the keys from local storage and populate them as part of the site load using the hand-rolled load-db.js file.

SQLite WASM does have better support for importing / exporting databases on OPFS, so this process should be simpler as soon as I can move to it.

I’ll write a follow up post at some point on the implementation details.

Comment · 3 years ago
Comment · 3 years ago
A cross-stitch themed guide to Emacs Lisp, written in Racket.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton