---
tags: hope, doclets
---
# Spreadsheet
Goals:
- simple UI
- minimal code, fast load
- responsive
- collaborative and live updates
- url parameters to show only a (rectangular) selection (inc. row and column headers)
UI
- row and column headers, editable
- cells, editable, text / numbers only in first version
- add column/row (at the end)
- insert column/row
- remove column, remove row
- move column/row
- seamless styles: font, primary color
- scrollbars for content, headers sticky
- mobile: use scrollbox css
- #start=x,y&end=x,y -> show only this selection
- copy: add selection url (#start...) to clipboard
- paste: generic hope, if clipboard contains application/hope-url(?) insert a new iframe/doclet with that url.
- add localstorage persistence, listen there for changes to update multiple frames using the same url automatically
API
- getJSON -> list of json objects
- getSelection -> start/end x,y -> json objects
- setJSON
- setSelection
Solid(later)
- setColumnType(ontology type uri)
- getJSONLD
- setJSONLD
Collaborative(later)
- Yjs? https://github.com/yjs/yjs
- IPFS pubsub? https://docs.ipfs.io/how-to/create-simple-chat-app/