User Story Map

    Blue: Done, Green: Building, Black: to do, Yellow: Proposal.

    Set Up Seed Hypermedia

      Find and Download Seed Hypermedia

        As a User, I want to learn about Seed Hypermedia.

        As a User, I want to download the app.

        As a User, I want to install the app.

        As a User, I want to update the app.

      Connect to the Network

        As a new User, I want to Connect to a Peer with the content I want.

          Sync only the document I wanted with that peer, non recursively.

        As a new User, I want to learn what Seed Hypermedia is.

          seedhypermedia.com

        As a new User, I want to Connect to a Site’s Peer.

      Create an Author Account

        As a User, I want to create a new account with my first name and surname.

        As a User, I want to generate a new account and a username.

        As a User, I want to add an account and a username by adding an existing key.

        As a User, I want to choose how to store the Account Keys.

          Show my mnemonics, and I will write them down.

            Please save the key in the keychain.

            Do not save anything. I will input the mnemonics or key when the app starts up.

          Save the key to my keychain and my mnemonics to an encrypted file.

            Save the mnemonics to an encrypted file.

          Save the mnemonics to my keychain. (close future)

        As a User, I want to remove my secret words from the app.

        As a User, I want to remove the keys of an Account from my app without

        As a User, I want to generate new keys for the same Profile.

      Create a Publisher Account

        As a Publisher, I want to create a new publisher account to start a new knowledge community.

        As a Publisher, I want to create a homepage.

        As a User, I want to be the Admin of the Publisher Account.

          Publisher delegates to my account.

        As an Admin, I want to add an admin to the Publisher Account.

          An admin cannot be removed without publisher keys.

        As an Admin, I want to invite writers to the Publisher Account.

        As a User, I want to keep a separate publisher key to remove admins.

        no need for an adming

      Create a hyper.media Site

      Share and Validate my Account

        As a User, I want to ask a Contact to validate my Keys.

        As a User, I want to share my contact information with others.

      Edit my Profile - Author Home, Publisher Home

        As a User, I want to add my Username to my account.

        As a User, I want to add an avatar to my account.

        As a User, I want to add content to my account into my Home document.

        As a User, I want to add validate my socials to my account.

        As a User, I want to add my email to my account.

        As a User, I want to add my wallet to my account.

        As a user, I want to see selected contacts on my account.

      Add my Account to a new Device/Peer

        As a User, I want to add my account to a new peer/device.

          Show my mnemonics on the old device, and I will add them to the new device.

          Download the key to a file.

          I want to add an existing Key.

    Read and Navigate

    Subscribe and Archive

      Subscribe to Content

        As a User, I want to subscribe to a Space Updates.

        As a User, I want to subscribe to a Document and get instant updates.

        As a User, I want to subscribe to a Space and get instant updates.

        As a User, I want to subscribe to a Peer. (backups)

        As a User, I want to subscribe to content distributor peer.

      Archive Content

        As a User, I want to Archive Content for personal use that won’t get redistributed on the network.

        As a User, I want to share Archived Content to a specific set of peers.

    Manage Contacts

      Find new Contacts

        As a User, I want to see all the Contacts (Suggested Contacts) synced on my computer.

        As a User, I want to see the Contacts of an already-added Contact.

        As a User, I want to see as Contacts the Document Members I opened and subscribed to.

      See my Contact List

        As a User, I want to see all the Profiles on my app

        As a User, I want to see all my Contacts on my profile page.

      Add a Contact

        As a User, I want to add a contact from another contact in my contact list.

        As a Contact, I want to sync all my Contacts.

        As a User, I want to create a new contact from a profile in the contact list.

        As a User, I want to merge two Accounts.

      Connect to a Contact’s Peer

        As a User, I want to connect and sync to a peer.

          copy peer routing

          go to contacts page

          press “add connection” button

          paste peer routing

          see the success message

        As a User, when a peer connects and syncs to me, I want to sync automatically back.

        As a User, I want to see all the profiles of the peers I connect with.

        As a User, I want to know the PeerId and the Routing Details of a Contact through a private communication channel.

      Manage a Contact

        As a User, I want to see a Contact.

        As a User, I want to see a Contact’s Profile (account home page?).

        As a User, I want to see the the documents that a contact is the author/owner.

        As a User, I want to see a Contacts’s Contact List.

        As a User, I want to share a contact.

        As a User, I want to export a contact.

        As a User, I want to Validate a Contact.

        As a User, I want to add notes to a Contact.

    Write and Collaborate

      Create a Document

        As a Writer, I want to create my home document.

        As a Writer, I want to create a document in the directory of another document.

          ~~press in “add sub-document” button on parent’s index section~~

          ~~open dialog with “path” input~~

          ~~open draft for subdocument with breadcrumbs sho42wing the selected path and parent document title’~~

          ~~edit sub-document~~

          ~~press “publish”~~

          ~~redirect to new sub-document created~~

        As a Writer, I want to create a draft without a location until the document gets published.

        ~~As a Writer, I want to create a document in a directory without inheriting permission from the parent document.~~

      Compose a Document

        As a Writer, I want to create a Heading.

        As a Writer, I want to add text, video, and images.

        As a Writer, I want to copy and paste a Markdown document.

        As a Writer, I want to add a Code Block to a document.

        As a Writer, I want to add a Table Block to a document.

        As a Writer, I want to add an embed to a document.

        As a Writer, I want to add a link to a document.

        As a Writer, I want to add external references.

        As a Writer, I want to edit an Embed.

          Should switch from all types of embeds.

          Embed picker, same for all references common UI.

        As a Writer, I want to convert a Section into a Document.

        As a Writer, I want to add a document to another document or section.

      Manage Collaborators

        As an Owner, I want to add Writers to a Document.

        As an Owner, I want to remove Writers from a Document.

        As an Owner, I want to add and remove Editors.

        When an account is not a member anymore, you stop resolving their changes, unless a change is linked by another member.

        As an Editor, I want to add Writers and Collaborators to a branch.

        As an Editor, I want to add non-users as Collaborators to a document.

        we can issue an invite for them (although technically that would be an ephemeral collaborator of some sort, that the inviter creates for them).

        As an Editor, I want to add and remove Writers from a branch.

          Writers can be users or not.

      Edit a Document

        As a Collaborator, I want to edit a Document based on the latest accepted change.

        As a Writer, when I edit a document, I want the cursor to be in the same place in the draft as it was in the document.

        As a Collaborator, I want to rebase my draft when I get new changes from Collaborators and review conflicts.

          click on review change that open the rebase flow

          preview the draft with the new change rebased

          see the conflicts or changes

          cancel operation

        As a Collaborator, I want to see when a new change arrives while editing a Draft.

        As a Collaborator, I want to rebase my draft with suggested changes from other users.

        As a Writer, I want to delete content.

        As a Writer, I want to bring back content that I have deleted.

      Discuss

        As a User, I want to discuss a document.

        As a User, I want to reply to a message in an existing discussion.

        As a Collaborator, I want to reply to a Document with a Comment.

        As a Collaborator, I want to reply to a Comment.

      What is happening to the document?

        As a Collaborator, I want to see the latest published version.

        As a Collaborator, I want to see the history of a document and how the document has evolved.

        As a Collaborator, I want to see a new published version while reading the document.

        As a Collaborator, I want to see what has been published since the last time the user read the document.

        As a Collaborator, I want to see all the Document Branches.

        As a Collaborator, I want to see all the Suggested Changes.

        As a Writer, I want to see my Drafts.

        As a Collaborator, I want to see if permissions have changed.

        As a Collaborator, I want to see the history of a document and how the document has evolved.

      Suggest Changes

        As a Collaborator, I want to suggest a change to a Branch.

        As a Collaborator, I want to suggest a change based on another Suggested Change.

        As a Collaborator, I want to see new Suggested Changes when they arrived.

          open changes panel to see the suggested changes list

          select specific changes in the suggested change version

        As a Writer, I want to accept a Suggested Change.

          open changes panel to see the suggested changes list

          select one item in the suggested changes list

          see the diff between the suggested version and the current version

          merge the suggested change

          notify the branch collaborators

        As a Writer, I want to reject a Suggested Change.

        As a Writer, I want to make Suggested Changes instead of directly editing the document.

      Branch a Document

        As a Writer, I want to create a new Branch.

        As a Writer, I want to select a different Branch.

        As a Writer, I want to see the difference between the two Versions.

        As a Collaborator, I want to suggest Writers merge a Branch.

        As a Writer, I want to accept branches.

          See the difference between the two versions.

          Review conflicting changes in the same paragraphs.

          Merge the Branch

          Notify the Branch Collaborators

        As a branch owner, I want to close and reopen a Branch or a document.

        As an Owner, I want to select a different branch as the default branch.

        As an Owner, I want to Transfer ownership of a document to another Owner.

        As a User, I want to take over and fork a document.

      Comment

        As a Writer, I want to comment on a Document’s fragment

        Commentary only makes sense to happen among the Users that can participate on Document’s Content. Commentary is about convergence, about winding down concreteness around a topic. Only Owners, Editors, Writers, Contributors? should be able to participate. Others User and Readers participate through the Discussion component which works as divergence and peer review.

        As a Writer, I want to reply to a Comment.

    Publish and Broadcast

      Publish My Profile

        As a Publisher, I want to publish in my profile index.

        As a Publisher, I want to edit my profile.

      Publish a Document

        As a Publisher, I want to publish a Document.

          If I want readers to access a sub-document easily, I add a link or embed it in the content.

          Needs the Index component.

        As a Publisher, I want to publish a Document with a different path from the name.

        As a Publisher, I want to publish a Document with inherited permissions.

        As a Publisher, I want to publish a Document on my WebSite.

        As a Publisher, I want to publish a highlight document.

          I don't care about people reading a particular sub-document; I will leave it only in the index.

          As an Editor, I want to squeeze Document History for security reasons.

        As a Publisher, I want to publish a document from somebody else on my website using a certain (pretty) URL. The other person can continue updating it.

        As a Publisher, I want to publish a document from somebody else on my site or publication, but I want to decide when it gets updated.

        As a Writer, I want to submit a document to a publisher for publication.

      Manage the Directory Structure and Navigation

        As a Publisher, I want to edit a Document’s Path.

          As a Publisher, I want to change the title and public URL of my document.

        As a Publisher, I want to edit a Document’s Path and remove or add a redirect.

        As a Publisher, I want to remove a Document from a Space.

          As a Publisher, I want to publish a Document in a different Space.

            creates a fork of a document.

        As a Publisher, I want to publish a Document in a different Space again.

          creates a fork of a document.

        As a Publisher, I want to move (change location) a document to another directory.

        As a Publisher, I want to add a directory level to group documents.

        As a Publisher, I want to add Citations.

        As a Publisher, I want to suggest what document to go next.

      Link an Author or Publisher Account to the Web

        As a Publisher, I want to publish a new document.

        As a publisher, I want to publish a new document on a new site.

      Link a Subdirectory to a Site

      Broadcast my Publications

    Configure Client, Wallet, and Web Server