Back to lab notesBuild notes
Build notes3 min read

An export button is a product feature.

Letting someone take their work with them is part of a useful product. The important detail is what still makes sense after the download.

A download finishes. A file appears. The application announces that your export was successful.

Now close the application and open the file somewhere else.

Can you tell what it contains? Do the notes still belong to the right items? Are the attachments included, or are they links that depend on an account you may no longer have?

That second experience is the part of export I would spend time designing. Producing a file is only the beginning of helping someone keep their work.

Preserve meaning as well as records

Imagine a personal collection with items, tags, and notes. A spreadsheet containing item names might be useful, but it is not the whole collection if the notes and relationships disappear.

Decide what belongs in a complete export. For this example, that might include stable item identifiers, the text people wrote, tag membership, dates, and the files they attached. Explain any exclusions rather than letting the download imply more than it contains.

There may be a good reason to offer a simpler view as well. Someone might need a short reading list rather than a full archive. Name those exports differently so the choice is understandable.

A report and a backup should not look interchangeable just because both arrive as files.

Choose a format for the next use

A table can be convenient for sorting and inspecting records. Plain text or Markdown may suit notes that someone wants to read directly. A structured format such as JSON can preserve relationships for another application to interpret.

There is no need to make one format serve every purpose. A readable overview alongside a structured archive may be clearer than a single complicated file.

Whatever the choice, document the important details. Explain identifiers, date conventions, empty values, and the relationship between records and attachments. Include a format version so a future importer can distinguish one structure from another.

The question is not whether the file looks impressive. It is whether another person can do something sensible with it.

Try the round trip

Create a small test collection with awkward details: a note with line breaks, a title with punctuation, an item with no tags, and two items with the same name.

Export it. Inspect the result. When import is supported, bring it into a clean test workspace and compare the result with the original. Names alone are not enough; check relationships and the text inside the records.

Then export it again. An export-import round trip should not quietly multiply items or lose information the format claims to preserve.

For an application without import, be explicit about that limit. The export may still be valuable, but do not describe it as a tested restoration path.

Make keeping a copy ordinary

Put the control somewhere people can find. Explain what it includes before they use it. Keep download links appropriately protected and warn when an archive contains private material that should be stored carefully.

Export should not require a conversation with support simply because someone wants a copy of their own work.

This principle is useful whether an application is cloud-based or local-first. The architecture can vary; the question remains the same. What does the person retain when they are no longer looking at your interface?

A product that makes the answer clear is easier to trust. Not because nobody will ever leave, but because staying is not the only way to keep what they made.