Core anchors and links

flowchart LR
  User(User) ---- |writes| Post(Post)
  Post(Post) ---- |has| Comment(Comment)
  User(User) ---- |writes| Comment(Comment)
  User(User) ---- |likes| Post(Post)
  User(User) ---- |likes| Comment(Comment)
  User(User) ---- |favs| Post(Post)
  User(User) ---- |uploads| SZI(Image)
  Post(Post) ---- |has attached| SZI(Image)
  Comment(Comment) ---- |has attached| SZI(Image)
  User(User) ---- |creates| KText(KText)
  Post(Post) ---- |has| Embed(Embed)

Social network (relationships between users)

flowchart LR
  User(User) ---- |is subscribed to| AnotherUser(User2)
  User(User) ---- |is subscribed to private subfeed of| AnotherUser(User2)
  %% User(User) ---- |invites to subscribe to private subfeed of| AnotherUser(User2)
  User(User) ---- |blocks| AnotherUser(User)
  User(User) ---- |hides posts of| AnotherUser(User2)
  User(User) ---- |hides comments of| AnotherUser(User2)

  User2(User) ---- |is subscribed to| Group(Group)
  User2(User) ---- |is admin of| Group(Group)

Timeline structure

flowchart LR
  subgraph "Low-level timeline view"
    direction LR
    Post(Post) ---> |is assigned to| Timeline(Timeline)
    Group(Group) ---> |has associated| Timeline(Timeline)
    User(User) ---> |'s primary feed has associated| Timeline(Timeline)
    User(User) ---> |'s private subfeed has associated| Timeline(Timeline)
    User(User) ---> |'s FYEO feed has associated| Timeline(Timeline)
    User(User) ---> |'s incoming DMs feed has associated| Timeline(Timeline)
    User(User) ---> |'s outgoing DMs feed has associated| Timeline(Timeline)
  end

  subgraph "User-friendly feeds view"
    direction LR
    Post2(Post) ---> |is posted to primary feed of| User2(User)
    Post2(Post) ---> |is posted to private subfeed of| User2(User)
    Post2(Post) ---> |is posted to FYEO feed of| User2(User)
    Post2(Post) ---> |is posted to| Group2(Group)

    User4(User) ---> |sends| Post3(Post)
    Post3(Post) ---> |as DM to| User3(User)
  end

 

How subscription and invites works

flowchart LR
  subgraph "Group subscriptions"
    direction LR
     User5_1(User) ---- |requests subscription| GroupSR(Group subscription request)
     Group(Group) ---- |'s admins receive| GroupSR(Group subscription request)

     User6_1(User 1) ---- |initiates| GroupInvite(Group invite)
     User6_2(User 2) ---- |receives| GroupInvite(Group invite)
     GroupInvite(Group invite) ---- |is for the| Group2(Group)
  end

  subgraph "User-to-user subscriptions"
    direction LR
    User2_1(User) ---- |invites to their private subfeed| User2_2(User)

    User3_1(User 1) ---- |initates| SubscriptionRequest(Private subfeed subscription request)
    User3_2(User 2) ---- |makes decision on| SubscriptionRequest(Private subfeed subscription request)

    User4_1(User 1) ---- |initates| SubscriptionRequest2(Primary feed subscription request)
    User4_2(User 2) ---- |makes decision on| SubscriptionRequest2(Primary feed subscription request)
  end

  subgraph "Core subscription"
    direction LR
    User(User) ---- |is subscribed to| Timeline(Timeline)
    User(User) ---- |created| Sublist(Sublist)
    Sublist(Sublist) ---- |includes| Timeline(Timeline)
  end

Customization

flowchart LR
  User(User) ---- |sets as avatar| SZI(Image)
  User(User) ---- |creates| APIToken(API Tokens)
  User(User) ---- |prefers| Language(Languages)