# Potential doclets to build
## basic hope IDE
- List available API's in a doclet (or host)
- Show methods in an API
- Create a new
- Code editor
- Log view
- debugger
## Data display
- Map pins (Google Maps, OpenStreetMap Leaflet)
- Charts
- Chess board
## Media
- video
- image slideshow
- image list
- whiteboard / drawing canvas
## Text content
- WYSIWYG editor
- Code editor
- Log view
- Text / Form input
## Data input
- Spreadsheet
- Database records
- calendar
- todo / checklist
- addressbook
## Storage
- localStorage
- FileSystem browser API (polyfill using indexedDB for Safari/Firefox)
- Solid data pod
- ARC/rest
- IPFS publishing?
# What is and is not a doclet
A doclet should contain data and code. If you only have code or only data, it shouldn't be a doclet.
For example, you want to add tabs to your doclet. You can create a new doclet with html, css and javascript code to show tabs. Each tab has a name and an editable link to a new doclet.
This is possible, but the drawback is that there is now an extra doclet layer between the doclets below each tab and the host doclet. If you want to communicate between host and tabbed doclet, you must pass messages from the host to the tabs doclet to the tabbed doclet. And vice versa. Also, the tabs doclet adds another delay in loading.
So instead UI components shouldn't be a doclet, unless they also contain data to interact with. If you want to re-use UI components, it is probably better to create an editable doclet that allows you to inject many UI components through some package system.
Another potential doclet is a formbuilder. This is a bit on the edge. You can think about a finished form as the data of the formbuilder. But for the end-user, the form is just as UI component. The contents of that form may come from a datatable, but the form itself doesn't change.
###### tags: `hope` `doclets`