# Doclets
A new working name for the universal document that is both application and document.
A doclet _contains_ application to render the information it contains and to allow the user to interact with it.
The doclet may also refer to the application code, if that reference is guaranteed to exist _and_ to contain the correct and _immutable_ application code.
For instance, an IPFS hash is a hash over the referenced content. If the content changes, the IPFS hash will change. In addition the storage service providing the doclet can also pin the IPFS hash for the application code, so guaranteeing the availability of the application code.
The problem is that IPFS is not a natively supported protocol in most web browsers, so we'll need a bridge. e.g. https://ipfs.io/. However, there is no guarantee that that website will be accessible in the future. So imagine a situation where IPFS support is now standard in the browser, but https://ipfs.io/ is no longer up. Or imagina a future that no longer supports IPFS directly, but there is an archive or translation service for important content, like the application code your old doclet is referencing.
The simple but incomplete solution is
```
<script src="https://ipfs.io/ipfs/<hash>/app.js"></script><!--
document contents to be parsed by app.js
```
We could split it up into two parts:
```
<script src="https://ipfs.io/ipfs/<hopeloader-hash>/loader.js"></script>
<link rel="hope-render" href="ipfs://<hash>/app.js"><!--
```
And the hope/loader.js script could then add support for IPFS using the /fs/ipfs/ namespace. In the future when browsers support IPFS directly, the hopeloader is no longer needed, so the https://ipfs.io/ bridge is no longer required.
###### tags: `hope` `doclets`