Features

Official Apps

Here is the list of types of Document you can create in NextGraph, and their corresponding Viewers and Editors. In parenthesis is the type of underlying CRDT used by that type. See the CRDTs article for more details about CRDTs.

Document typeViewersEditors
Post or Article (YXml)PostPost Editor
XML source
Markdown (YXml)PostPost MD Editor
Markdown source
XML source
Plain Text (YText)TextText Editor
Data / Graph (Graph)TurtleSPARQL Update
SPARQL Query
Data / Container (Graph)Container (***)SPARQL Update
Turtle
SPARQL Query
Data / JSON (Automerge)JSON (*)JSON Editor (*)
JSON source
Data / Object (YMap)JSON (**)JSON Editor (**)
JSON source
Data / Array (YArray)JSON (**)JSON Editor (**)
JSON source
Code / Rust (YText)Source CodeText Editor
Code / JavaScript (YText)Source CodeText Editor
Code / TypeScript (YText)Source CodeText Editor
Code / Svelte (YText)Source CodeText Editor
Code / React (YText)Source CodeText Editor

Note: (*) The JSON Editor (in read-write or read-only) is very primitive for now, it has been developed in one day, to showcase the easy binding of JSON data to some Svelte components. It lacks important features like ( insert in array at position. remove at position in array. splice range. remove from map. change type or name of property in map ). Also the general UX is ugly. But it is functional and demonstrate the potential of CRDT on JSON data, that will be leveraged by app developers. Once it will be improved, this Editor and Viewer will be reused for all Data types, including the Yjs based ones, and the Graph one. It also showcases that no matter what the App is doing, you own the data and can always go to see it and even modify it, or export it. That’s what a data-centric framework is about.

Note: (**) The JSON Editor (in read-write or read-only) used here for the Yjs types, is based on svelte-jsoneditor which isn’t so easy to use. But it is a good demonstration that the GUIs can be anything. The data layer works fine and that’s the most important for now.

Note: (***) Containers are used for the Public Store, Protected Store and Private Store homepages. Please note that apart from those 3 stores, creating new containers is not really useful yet as you have to add the triple ldp:contains manually with SPARQL Update if you want any document to be part of the container. There is no GUI yet to add and remove Documents to a Container.

Planned features

CategoryDocument typedetailscrdtstatusETAgitea issue
Groupplanned
doc:composeYArrayplanned
Otherpost:asciidocYTextpostponed
PropageA Page and Site builderYXmlpostponed
Appsapp:zApplicationElmer?postponed
Dataclasscustom ClassGraphplanned
DataschemaRDFS / OWL ontologyGraphplanned
Dataschema:shaclGraphpostponed
Dataschema:shexGraphpostponed
Codeservice:rustYTextplanned
Codeservice:denoYTextplanned
ProcontractYTextplanned
Dataquery:sparqlSaved SPARQL UpdateYTextplanned
Dataquery:sparql_updateSaved SPARQL UpdateYTextplanned
Dataquery:graphqlSaved GraphQL QueryYTextpostponed
Searchquery:textSaved Text SearchGraphpostponed
Searchquery:webSaved Web SearchGraphpostponed
Datadata:xmlXML (Yjs)YXmlplanned
Datadata:tableData Table (columns and rows)Automergeplanned
Datadata:collectionCollectionGraphplanned
Datadata:containerContainerGraphplanned Editor
Datadata:boardBoardGraphplanned
Datadata:gridGridGraphplanned
Datadata:geomapGeo MapGraphplanned
Messengere:emailEmail content and headersGraphplanned
e:linkWeblink previewGraphplanned
e:webWeb ArchiveGraphpostponed
Datae:rdfRDF Archive from HTTPGraphplanned
MCmc:textText Selection in MCGraphplanned
MCmc:linkLink to doc in MCGraphplanned
Diagramdiagram:mermaidYTextpostponed
Diagramdiagram:drawioYXmlpostponed
Diagramdiagram:graphvizYTextpostponed
Diagramdiagram:excalidrawAutomergepostponed
Diagramdiagram:ganttAutomergepostponed
Diagramdiagram:flowchartYTextpostponed
Diagramdiagram:sequenceYTextpostponed
Diagramdiagram:markmapYTextpostponed
Diagramdiagram:mymindYTextpostponed
Diagramdiagram:jsmindAutomergepostponed
Vizviz:cytoscapeAutomergepostponed
Vizviz:vegaAutomergepostponed
Vizviz:vizzuAutomergepostponed
Vizviz:plotlyAutomergepostponed
Vizviz:availAutomergepostponed
Chartchart:frappechartsAutomergepostponed
Chartchart:financialAutomergepostponed
Chartchart:apexchartsAutomergepostponed
Chartchart:billboardAutomergepostponed
Chartchart:echartsAutomergepostponed
Chartchart:chartjsAutomergepostponed
Otherdoc:pdfGraphplanned
Otherdoc:odfGraphplanned
Otherdoc:latexGraphpostponed
Otherdoc:psPostscriptGraphpostponed
Otherdoc:music:abcYTextpostponed
Otherdoc:music:guitarYTextpostponed
Otherdoc:mathsYTextpostponed
Otherdoc:chemistryYTextpostponed
Otherdoc:ancientscriptYTextpostponed
Otherdoc:brailleYTextpostponed
Mediamedia:imageGraphplanned
Mediamedia:reelGraphplanned
Mediamedia:videoGraphplanned
Mediamedia:albumGraphplanned
Mediamedia:audioGraphplanned
Mediamedia:songGraphplanned
Mediamedia:subtitleGraphplanned
Mediamedia:overlayGraphplanned
Socialsocial:activityGraphplanned
Socialsocial:channelGraphplanned
Socialsocial:streamGraphplanned
Socialsocial:contactGraphplanned
Socialsocial:eventGraphplanned
Socialsocial:calendarGraphplanned
Socialsocial:schedulerGraphplanned
Socialsocial:reactionGraphplanned
Socialsocial:chatroomGraphplanned
Socialsocial:liveGraphplanned
Proprod:taskGraphplanned
Proprod:projectGraphplanned
Proprod:issueGraphplanned
Proprod:formGraphplanned
Proprod:fillingGraphplanned
Proprod:cadAutomergepostponed
Proprod:spreadsheetAutomergepostponed
Proprod:slidesGraphplanned
Proprod:questionGraphplanned
Proprod:answerGraphplanned
Proprod:pollGraphplanned
Proprod:voteGraphplanned
OtherfileGraphplanned
Otherfile:textbinary file that has textGraphplanned