Content
View differences
Updated by Wieland Lindenthal about 8 hours ago
# User Problem
## User
Any user working with long-lived documents that involve multiple steps and/or users.
## Problem
* I need to create, edit, organize organise and find documents that relate to my projects.
*
I need to have an intuitive and modern text editing experience.
*
I need to collaborate with co-workers in real-time on documents.
*
I need to find and create work packages that relate to the document I'm working on directly from the document.
*
I need to have AI tools to assist me in text editing.
## Pain
To efficiently collaborate with colleagues in a remote environment it is often necessary to work in the same context at the same time. Without live-collaboration, only one person can edit at the same time and this forms a significant bottleneck to the flow of ideas and conversation. Without integration with project management objects via macros, it is necessary to switch context and update information manually.
Without AI tools integration it is necessary to either forsake their use or context switch to a different tool/browser tab.
# Business Case
## Reach
This is a prevalent problem especially in remote work contexts.
## Impact
On average a I assume a medium impact for users. I think it will have a large impact for users that need to work collaboratively in a remote context. For other users the impact will be fairly small.
## Confidence
Confidence is very high, we constantly see the need for this in our own work.
## Urgency and Priority
This has high priority as we're preparing to integrate with other applications that use BlockNote (such as Xwiki and Docs) through OpenProject specific BlockNote extensions.
## Solution
Adapt existing documents module, adapt the existing live-collaboration features from our hackathons. The editor will be replaced with BlockNote and Yjs/Hocuspocus will be used to get live-collaboration. Additionally we hope to integrate text transformation AI features in this version.
## Differentiation
Direct integration into the project management software, combined with a modern text editing experience.
# Roadmap
## Version 1
##
#### List of documents (Index)
* <mention class="mention" data-id="66595" data-type="work_package" data-text="##66595">##66595</mention>
* Columns for Name, Type, and Last Edited
* Search titles
* Filtered views by Types in left hand menu
* ~~Sort by table columns~~
* _Leave this out of version 1, as Design team wants to do more work to design this in general so it can also be applied to workpackages for example._
#### ~~Clean Clean View (Distraction free)~~ _Moved out of version 1_. free)
* ~~##67420~~
* ~~In In this view the focus is on the text being read/edited and there are very few elements apart from that main content~~ content
* ~~Sidebar Sidebar collapsed so the content is completely centered horizontally~~ horizontally
* ~~Default Default for opening a (collaborative) document~~ document
* ~~directly editable~~ directly editable
* ~~Only contains~~ Only contains
* ~~the the main content~~ content
* ~~the the title (edit in place)~~ place)
* ~~the type~~ the type
* ~~active collaborators~~ active collaborators
#### Show/Edit view Detail View
* <mention class="mention" data-id="67424" data-type="work_package" data-text="##67424">##67424</mention>
* ~~detail detail view can be enabled/disabled, it adds further elements to the clean view,~~ view, for now it will only contain
* Attachments
* Design to extend to other things we add later (Activity, Versions...)
* Collaboration
* Project permissions determine access control to document (no document-level permissions, permissions yet)
* **\[Simultaneous editing (via Hocuspocus and Yjs)\]**
#### Migration
* <mention class="mention" data-id="67425" data-type="work_package" data-text="##67425">##67425</mention>
_**TASKS:**_
* Turn existing categories into types, documents into collaborative documents and keep attachments
* Test migration to see how well it works
#### ~~AI AI assistance - STRETCH GOAL~~ _Not for version 1_ GOAL
* <mention class="mention" data-id="66329" data-type="work_package" data-text="##66329">##66329</mention>
* ~~**\[Summarise\] **\[Summarise\] - STRETCH GOAL #**~~ #**
#### ~~**BlockNote extension "Text **\[Text to action"**~~ action\]**
#### **BlockNote extension "Link existing work package"**
* <mention class="mention" data-id="66326" data-type="work_package" data-text="##66326">##66326</mention>
* Reference and display work packages visualise workpackages (like current macros with ## but now with also the new / command)
* ~~also also transform links to work packages~~ _Out of scope for version 1_
**BlockNote extension "**~~**(Batch)**~~ **create work package** ~~**(from text)**~~**"** _**Will probably not make it into 17.0**_
workpackages
* ~~Create **\[ (Batch) create workpackage from text\]**
* Create a work package workpackage by typing /wp, then selecting the type, then entering the title and confirming with enter~~
enter
* ~~If If this is done in a list/enumeration, the next item should also start in the work package workpackage creation flow~~ Batch creation needs to be implemented in later version. It will probably be independent of enumerations.
flow
* ~~Create Create a work package workpackage list by typing /wp-list (eg. like in the Paris Hackathon 'list mode')~~ There wont be a separate "reate list" mode.
mode&#39;)
* ~~Select Select a list and create a work packages workpackages from each item in the list, replace item with work package reference~~ Not part of version 1
reference
* ~~Reference Reference documents from work packages (eg. with the # approach in CKEditor or the / command in BlockNote)~~ Not part of version 1 BlockNote)
* _~~Note: _Note: Allowing users to choose the type of work package, workpackage, brings additional challenges because the type may not be valid without certain fields, the subject may be automatically generated. In addition it will not be as smooth to display the status as it is the case of task which has a boolean status (checked / unchecked)~~ Version 1 has no status attribute and also not other custom fields._ unchecked)_
* _~~Note:~~_ _~~Maybe _Note:_ _Maybe the /keyword needs to be configurable? This extension could be used outside of OpenProject (OpenDesk, elsewhere) to invoke the OP-specific dropdown.~~_ dropdown._
#### API
* We have an API and need to make sure we don't break it. The strategy to achieve this will depend on the migration decision
* _Note: The existing API only provides GET for documents, simplifying this significantly._
* How can this work with YJS documents for creates and updates? updates
* _**TASK: we need to research/prototype how we can do this.**_
#### Rename Categories to Types
* _Note: because we're not introducing Status yet, on the surface this is just a rename - even if we create a larger change and migration underneath._
* As long as we have not migrated the existing documents, it will be necessary to ~~use use the type~~ a DB attribute type to differentiate between a collaborative BlockNote blocknote document and the old CKEditor5 documents
* ALTERNATIVELY the differentiation could be based on an attribute on the document itself - may make migration easier as well.
* _**NOTE: There is a way to configure Categories, we'll need to adapt it to Types.**_
<br>
##### _Additional Notes_
_**\[Description\]** denotes a feature that will make people care. The other features are basics that are needed but do not inspire._
_Collaboration is supposed to be the main focus, but we need to carefully decide which features to include to get a great result without taking a very long time to achieve it_
##
## Further versions
### Collaboration
<mention class="mention" data-id="67551" data-type="work_package" data-text="###67551">###67551</mention>
### AI assistance (WIP)
* **\[Text to Task\]**
* Mark some text and let AI create a suitable task (bug, feature) with a good description.
* **\[Summarise\]**
* **\[Transform text according to user instructions\]**
* **\[Translate\]**
### Integrations
<mention class="mention" data-id="67429" data-type="work_package" data-text="###67429">###67429</mention>
and
<mention class="mention" data-id="67526" data-type="work_package" data-text="###67526">###67526</mention>
### Workflows (WIP)
<mention class="mention" data-id="67590" data-type="work_package" data-text="###67590">###67590</mention>
### **File based documents (WIP)**
<br>
### **Other (WIP)**
* **\[Outline\]**
* Quick filters for Index
* Notes
# Launch and Growth
## Measures
_?_
## Messaging
Edit documents collaboratively in OpenProject.
From text to action
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Headline</p></th><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Turn ideas into action — together.</strong></p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">First Paragraph</p></th><td class="op-uc-table--cell"><p class="op-uc-p">OpenProject 17 introduces real-time collaboration for text documents.</p><p class="op-uc-p">Every great project starts with an idea — but capturing and structuring those ideas together has always been tricky. Notes get scattered, access is limited, and context is lost.</p><p class="op-uc-p">With the new Documents module, teams can now co-write, plan, and refine ideas directly in OpenProject. Reference milestones, link work packages, and move seamlessly from text draft to actionable project plan — all in one place.</p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Customer Quote</p></th><td class="op-uc-table--cell"><p class="op-uc-p"><br data-cke-filler="true"></p></td></tr></tbody></table></figure>
## Go to market
?
_How are you planning on getting this into users' hands?_
## User
Any user working with long-lived documents that involve multiple steps and/or users.
## Problem
* I need to create, edit, organize
*
*
*
*
To efficiently collaborate with colleagues in a remote environment it is often necessary to work in the same context at the same time. Without live-collaboration, only one person can edit at the same time and this forms a significant bottleneck to the flow of ideas and conversation. Without integration with project management objects via macros, it is necessary to switch context and update information manually.
Without AI tools integration it is necessary to either forsake their use or context switch to a different tool/browser tab.
# Business Case
## Reach
This is a prevalent problem especially in remote work contexts.
## Impact
On average a I assume a medium impact for users. I think it will have a large impact for users that need to work collaboratively in a remote context. For other users the impact will be fairly small.
## Confidence
Confidence is very high, we constantly see the need for this in our own work.
## Urgency and Priority
This has high priority as we're preparing to integrate with other applications that use BlockNote (such as Xwiki and Docs) through OpenProject specific BlockNote extensions.
## Solution
Adapt existing documents module, adapt the existing live-collaboration features from our hackathons. The editor will be replaced with BlockNote and Yjs/Hocuspocus will be used to get live-collaboration. Additionally we hope to integrate text transformation AI features in this version.
## Differentiation
Direct integration into the project management software, combined with a modern text editing experience.
# Roadmap
## Version 1
* <mention class="mention" data-id="66595" data-type="work_package" data-text="##66595">##66595</mention>
* Columns for Name, Type, and Last Edited
* Search titles
* Filtered views by Types in left hand menu
* ~~Sort by table columns~~
* _Leave this out of version 1, as Design team wants to do more work to design this in general so it can also be applied to workpackages for example._
#### ~~Clean
* ~~##67420~~
* ~~In
* ~~Sidebar
* ~~Default
* ~~directly editable~~
* ~~Only contains~~
* ~~the
* ~~the
* ~~the type~~
* ~~active collaborators~~
#### Show/Edit view
* <mention class="mention" data-id="67424" data-type="work_package" data-text="##67424">##67424</mention>
* ~~detail
* Attachments
* Design to extend to other things we add later (Activity, Versions...)
* Collaboration
* Project permissions determine access control to document (no document-level permissions,
* **\[Simultaneous editing (via Hocuspocus and Yjs)\]**
#### Migration
* <mention class="mention" data-id="67425" data-type="work_package" data-text="##67425">##67425</mention>
* Test migration to see how well it works
* <mention class="mention" data-id="66329" data-type="work_package" data-text="##66329">##66329</mention>
* ~~**\[Summarise\]
#### ~~**BlockNote extension "Text
#### **BlockNote extension "Link existing work package"**
* <mention class="mention" data-id="66326" data-type="work_package" data-text="##66326">##66326</mention>
* Reference and display work packages
* ~~also
**BlockNote extension "**~~**(Batch)**~~ **create work package** ~~**(from text)**~~**"** _**Will probably not make it into 17.0**_
* Create
* _~~Note:
* _~~Note:~~_ _~~Maybe
#### API
* We have an API and need to make sure we don't break it. The strategy to achieve this will depend on the migration decision
* _Note: The existing API only provides GET for documents, simplifying this significantly._
* How can this work with YJS documents for creates and updates?
* _**TASK: we need to research/prototype how we can do this.**_
#### Rename Categories to Types
* _Note: because we're not introducing Status yet, on the surface this is just a rename - even if we create a larger change and migration underneath._
* As long as we have not migrated the existing documents, it will be necessary to ~~use
*
*
##### _Additional Notes_
_**\[Description\]** denotes a feature that will make people care. The other features are basics that are needed but do not inspire._
_Collaboration is supposed to be the main focus, but we need to carefully decide which features to include to get a great result without taking a very long time to achieve it_
## Further versions
### Collaboration
<mention class="mention" data-id="67551" data-type="work_package" data-text="###67551">###67551</mention>
### AI assistance (WIP)
* **\[Text to Task\]**
* Mark some text and let AI create a suitable task (bug, feature) with a good description.
* **\[Summarise\]**
* **\[Transform text according to user instructions\]**
* **\[Translate\]**
### Integrations
<mention class="mention" data-id="67429" data-type="work_package" data-text="###67429">###67429</mention>
and
<mention class="mention" data-id="67526" data-type="work_package" data-text="###67526">###67526</mention>
### Workflows (WIP)
<mention class="mention" data-id="67590" data-type="work_package" data-text="###67590">###67590</mention>
### **File based documents (WIP)**
<br>
### **Other (WIP)**
* **\[Outline\]**
* Quick filters for Index
* Notes
# Launch and Growth
## Measures
_?_
## Messaging
Edit documents collaboratively in OpenProject.
From text to action
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Headline</p></th><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Turn ideas into action — together.</strong></p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">First Paragraph</p></th><td class="op-uc-table--cell"><p class="op-uc-p">OpenProject 17 introduces real-time collaboration for text documents.</p><p class="op-uc-p">Every great project starts with an idea — but capturing and structuring those ideas together has always been tricky. Notes get scattered, access is limited, and context is lost.</p><p class="op-uc-p">With the new Documents module, teams can now co-write, plan, and refine ideas directly in OpenProject. Reference milestones, link work packages, and move seamlessly from text draft to actionable project plan — all in one place.</p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Customer Quote</p></th><td class="op-uc-table--cell"><p class="op-uc-p"><br data-cke-filler="true"></p></td></tr></tbody></table></figure>
## Go to market
?
_How are you planning on getting this into users' hands?_