website: roadmap

This is a refactor of information that was already on the website.
References to future and in-progress work have been moved from
inline documentation to a separate roadmap doc.
Addied info on the current state of blob implementation which
is available in Go, but has no high-level APIs in Swift and Java.

Change-Id: I7653af33243a85c0d0c3c5426ef057fb45c0c110
diff --git a/content/community/roadmap.md b/content/community/roadmap.md
new file mode 100644
index 0000000..9cbf61d
--- /dev/null
+++ b/content/community/roadmap.md
@@ -0,0 +1,54 @@
+= yaml =
+title: Roadmap
+toc: true
+= yaml =
+
+
+1. **Syncbase API usability**
+
+  We have recently conducted API usability tests
+and are working on a new high-level API to help developers get
+started quickly with Syncbase.
+
+1. **Website, docs & sample app improvements**
+  * My First App: Android & iOS
+  * todo tutorial (and sample app with new APIs)
+  * update syncslides to new API
+  * tutorial that doesn't require syncbase cloud
+
+1. **Blobs**
+
+  Blobs are already implemented in Go and sync across Syncbase instances,
+  and there exists low-level RPC support, also in Go; however, there is not yet
+  a high level API in Swift or Java to access this functionality on an iOS
+  or Android device.
+
+  Syncbase was designed with strong support for blobs. Blobs will support a
+  streaming upload/download API rather than the all-at-once operations of the
+  structured data. Syncbase understands references to blobs in the
+  structured data, making it possible to implement automatic caching and garbage
+  collection of the blobs.
+
+  Blob references implicitly grant access to blobs in a manner similar to a
+  [capability](https://en.wikipedia.org/wiki/Capability-based_security). Blob
+  references can be stored as values in the key-value store. There
+  is a planned API for apps to specify per-device caching policies so that not
+  all blobs need to be in all devices. Syncbase will watch for blob references
+  in the structured storage and cache the right blobs on each device.
+
+1. **Syncbase query support**
+
+  We are considering support for querying values in structured data. For
+example, one could find all the `MyPojo` objects that have the value `bar > 10`.
+1. **Syncbase collection schema**
+
+  We are considering support for Syncbase schema. To support stronger data
+integrity, collections could be tied to a data schema, and Syncbase would
+ensure all written values match that schema or write will fail.
+
+1. **and more...**
+
+  We have lots of ideas, but we're excited to discover what applications find
+  Vanadium and Syncbase most useful.  Please join our
+  [mailing list](/community/mailing-lists.html) and let us know what you are
+  building (or thinking about building).
diff --git a/content/syncbase/guides/data-model.md b/content/syncbase/guides/data-model.md
index 5191d3f..e7c1dc4 100644
--- a/content/syncbase/guides/data-model.md
+++ b/content/syncbase/guides/data-model.md
@@ -38,9 +38,11 @@
 * [Collection](#collections): A collection is a set of key-value pairs
 (rows). Collections are the unit of access control and sharing.
 * [Row](#rows): Each row contains a single key-value pair. Keys are strings and
-the values can be both [structured data](#structured-data) and [blobs](#blobs).
-Values in the rows of a collection can be heterogeneous or based on a
-pre-defined [schema](#schema).
+the values are designed for both [structured data](#structured-data) and
+blobs<sup>\*</sup>. Values in the rows of a collection can be heterogeneous
+or based on a pre-defined [schema](#schema).
+
+<sup>\*</sup>blobs are on our [roadmap](/community/roadmap.html).
 
 # Database
 Database is the entry point to the Syncbase API and provides functionality to
@@ -84,7 +86,8 @@
 Syncgroup that is used to sync data to the user's other devices. By inviting
 other users to join this pre-defined Syncgroup, one can share the collection
 with others. When inviting others to join a collection's Syncgroup, one can
-specify different levels of access such as `Read`, `ReadWrite` or `ReadWriteAdmin`.
+specify different levels of access such as `Read`, `ReadWrite` or
+`ReadWriteAdmin`.
 
 Collections created by all users live in the same namespace. To avoid collisions,
 the system automatically prepends the user's identity (blessing) to the
@@ -93,8 +96,8 @@
 while still offline. When those two devices sync with each other, should the
 Collections merge or stay separate? If the developer wants them to stay separate,
 the collection IDs should include a UUID. If the developer wants them to merge,
-they should use a predictable name (example: "preferences"). Collection names are
-restricted to alphanumeric characters plus underscore and can have a maximum
+they should use a predictable name (example: "preferences"). Collection names
+are restricted to alphanumeric characters plus underscore and can have a maximum
 length of 64 bytes.
 
 <!-- @createCollection @test -->
@@ -168,45 +171,6 @@
 EOF
 ```
 
-{{# helpers.info }}
-### Query support is an upcoming feature
-Syncbase has support for querying values in structured data. For
-example, one could find all the `MyPojo` objects that have the value `bar > 10`.
-This feature is currently not exposed in the API, but might be in the
-future.
-{{/ helpers.info }}
-
-## Blobs
-
-{{# helpers.info }}
-### Blob support is an upcoming feature
-This feature is currently not exposed in the API, but will be in the
-future.
-{{/ helpers.info }}
-
-Syncbase has strong support for blobs. Blobs support a streaming upload/download
-API rather than the all-at-once operations of the structured data. Syncbase
-understands references to blobs in the structured data, making it possible to
-implement automatic caching and garbage collection of the blobs. Blob references
-implicitly grant access to blobs in a manner similar to a
-[capability](https://en.wikipedia.org/wiki/Capability-based_security).
-
-Blob references can be stored as values in the key-value store. There is an API
-for apps to specify per-device caching policies so that not all blobs need to be
-in all devices. It is the responsibility of Syncbase to watch for BlobRefs in
-the structured storage and cache the right blobs on each device.
-
-# Schema
-
-{{# helpers.info }}
-### Schema support is an upcoming feature
-This feature is currently not exposed in the API, but will be in the
-future.
-{{/ helpers.info }}
-
-To support stronger data integrity, collections can be tied to a data schema, and
-Syncbase will ensure all written values match that schema or write will fail.
-
 # Example Models
 
 To validate the Syncbase data model, we wrote design docs for a wide variety of
@@ -234,7 +198,8 @@
 ## SyncSlides
 
 Peer-to-peer slide presentation.  Allows audience to ask questions.
-Presenter can delegate control of the presentation to an audience member temporarily.
+Presenter can delegate control of the presentation to an audience member
+temporarily.
 
 [Design Doc](/syncbase/designdocs/syncslides.html)
 
@@ -257,4 +222,4 @@
 EOF
 cd $PROJECT_DIR && ./gradlew assembleRelease
 ```
-{{/ helpers.hidden }}
\ No newline at end of file
+{{/ helpers.hidden }}