Monaco Editor is used for Markdown and source code files, while Excalidraw powers diagram sketching.
Excalidraw drawings are stored inside a standard SVG file as base64-encoded JSON metadata. This allows them to be previewed and used as normal, but means that only SVGs exported by Excalidraw can be opened in Excalidraw. An SVG import solution is in development.
Drawnotes is 100% stateless and all application data is only stored client-side. The virtual file system is persisted to IndexedDB, application state is saved to localStorage and user details are stored in an encrypted cookie.
GitHub is currently the only integrated storage solution, with Git operations done entirely in browser by isomorphic-git.
Bonus
GeoJSON files can be previewed and will be rendered to canvas with deck.gl.
CSV files can be previewed with basic filtering and sorting provided by react-table