AskFolder
Code and credits
Don't take our word for it. AskFolder says your files never leave your computer. Here is how to check that yourself, and the code that does the work, as it runs: not minified, not bundled, with its comments.
Check that nothing is sent
- Open AskFolder, then your browser's developer tools (F12, or Ctrl+Shift+I; on a Mac, Cmd+Option+I), and choose the Network tab.
- Open a folder and ask a few questions. Every request in the list is a file AskFolder loads from askfolder.com (its own code, the reading engines, the model). None carries your files or your questions, and none goes to another site.
- The page can't send them even by mistake. Its Content-Security-Policy header (in the Network tab, click the page's own request, then Headers) says
connect-src 'self' data:anddefault-src 'self': the browser itself refuses any connection to another site, and askfolder.com has nowhere to receive an upload. It's a static site, with no server code at all. - Once the page has loaded, you can switch off your internet and keep asking: it's all on your computer.
Only /pro and /account talk to anyone (Paddle's checkout, and our license service), and they never see a file: the app page has no way to reach them.
Read our code
These are the files exactly as your browser runs them. They're © RPTX LLC: you're welcome to read, audit and question every line; they aren't licensed for reuse.
| File | What it does |
|---|---|
app.js | the app: opening files, asking, answers, dates, saved folders |
search.worker.js | the search: word index (BM25), the meaning model, ranking |
text.js | turning each kind of file into text |
pdftext.js | a PDF's text, page by page, and which pages are scans |
chunk.js | cutting text into passages |
dates.js | finding the dates in a passage |
synonyms.js | the word groups search treats as one |
saved.js | Pro's saved folders, in this browser's storage |
license.js | checking a Pro license's signature, offline |
app/sheets.js | Settings and the other panels |
app/theme.js | light and dark |
sw.js | the offline copy of the app's own files |
pro/pro.js | /pro: Paddle's checkout and the license |
account/account.js | /account: signing in |
Built on open source
AskFolder runs on these, served from askfolder.com unchanged (nothing is fetched from their makers' sites while you use it). Thank you to everyone who made them.
| Part | By | Licence | Used for |
|---|---|---|---|
| PDF.js | Mozilla | Apache-2.0 | reads PDFs |
| PDF.js character maps | Adobe | BSD-3-Clause | PDFs in Chinese, Japanese and Korean |
| Mammoth | Michael Williamson | BSD-2-Clause | reads Word (.docx) files |
| Tesseract.js and Tesseract OCR | Jerome Wu and contributors; Google and the Tesseract authors | Apache-2.0 | reads scans and photos (text recognition) |
| Tesseract language data | the Tesseract OCR project | Apache-2.0 | the 11 languages scans can be read in |
| Transformers.js | Hugging Face | Apache-2.0 | runs the meaning model |
| ONNX Runtime Web | Microsoft | MIT | the engine under Transformers.js (WebAssembly) |
| all-MiniLM-L6-v2 | the sentence-transformers project (ONNX copy by Xenova) | Apache-2.0 | the meaning model: matches a question to passages that say it in other words |
| Inter | the Inter Project Authors | OFL-1.1 | the text font |
| Montserrat | the Montserrat Project Authors | OFL-1.1 | the headings font |
| JetBrains Mono | the JetBrains Mono Project Authors | OFL-1.1 | file names and code |
Something missing, or a question about the code? Write to hello@askfolder.com.