How Importing From 15 Sources Works
product lesson
- Built with
- TypeScript
- React
Nobody starts a notes app with an empty head. People already have notes somewhere else. If moving them over is painful, they stay where they are.
So I built import into Sidekick Note, my Markdown note app. It reads notes from 15 sources. This note explains how it works, in the same words the product's help page uses. You can read the Sidekick Note case study for the wider picture, or try the demo.
One rule: read, never change
Everything is read and encrypted on your device. Nothing is sent anywhere, and your existing notes are never changed. Import only adds notes. To undo it, you move the notes it created to Trash.
That fits the design in my earlier note on private notes with encryption. Pictures are sealed on your device too. If you import into a private notebook, you unlock it first, and the pictures are sealed with its key.
Three steps
- Start. Use Import in Settings, or drag files, a folder or a .zip onto the window.
- Check the preview. The app says what it found and what it will leave out. Nothing is created yet, and Cancel stops it.
- Press Import. A message tells you how many notes, notebooks and images were added.
What you can bring
The help page lists a few Markdown files, a folder of notes, and exports from Obsidian, Notion, Bear, Joplin, Logseq, Evernote, Google Keep and Day One. It also takes Word documents, EPUB books and saved web pages, or a .zip of any of these. If an app can export plain Markdown, .txt or .html files to a folder, the folder import works for it.
Importing the same thing twice is safe. A note with the same notebook, title and text is skipped as "already there".
What it keeps, and what it changes
Each source needs a little translation. These are examples from the help page:
- Folders become notebooks. A folder inside a folder becomes "Parent / Child".
- Obsidian links like
[[Note|shown text]]stay as they are. A folder inside a link is dropped, because Sidekick Note links by title. - Notion adds a long ID to every file name. Import removes it. A database becomes a note with a table.
- Bear tags like
#two words#become#two-words. - Evernote checkboxes, tags, formatting and pictures are kept.
- Google Keep checklists become task items, labels become tags, and pinned notes are starred.
What it leaves out
I list this on purpose, because an honest import tells you what did not arrive. Examples from the help page:
- PDFs, audio and video are not imported yet. Some apps get a line that names the file.
- Original created and modified dates are not carried over yet. Imported notes get today's date. Day One entries keep their date as a line of text.
- Word documents lose page layout, text boxes, comments and footnotes.
- EPUB books with DRM are skipped.
The preview lists what was left out before you press Import.
Try it
Pick a source in the toy below. It shows a made-up sample file, the note that arrives, and what is kept or left out. It follows the rules above. Nothing is uploaded, and nothing leaves your browser.
Interactive · toy
Each source needs a little translation on import. The Sidekick Note help page says what is kept and what is left out.
- Folders become notebooks. A folder inside a folder becomes "Parent / Child".
- Obsidian [[links]] stay. Notion file IDs are removed. Bear #two words# becomes #two-words.
- Evernote checkboxes, tags and pictures are kept. Keep checklists become task items.
- PDFs, audio and video are not imported yet. Original dates are not carried over yet.
- Importing the same thing twice is safe, and your original notes are never changed.
What I would tell another builder
An import feature is a promise about what survives the move. The part users care about most is what does not survive. So I show the preview first, say plainly what is left out, and never touch the original. More of my work is on the widgets page and in the notes list.
If you are building a product where people bring their own data, I would be glad to talk it through. You can also get in touch.
Book the free consult