Post Authors Feature (DataHub)

This feature enables explicit attribution of one or more authors to individual posts, following a model similar to Substack. Authors are existing DataHub users and are linked to posts via foreign keys; by default, the post author is the publication owner, but this can be overridden per post.

Core Principles

  • Per-post authorship: Authors are attached to posts, not publications.
  • User-based attribution: Authors must correspond to DataHub user accounts.
  • Simplicity first: No invitation or approval workflow in the initial implementation.
  • Progressive enhancement: Clear extension paths for invitations and approvals.

Data Model

  • User

    • Required fields: full_name
    • Derived fields: avatar_url (Gravatar via email hash; fallback to generated avatar)
  • Post

    • New field: authors[] (array of foreign keys to User)
    • Default: [publication.owner]

UI / UX

  • Post editor

    • “Add author” control (plus button).
    • Typeahead search over existing users (by name / username).
    • Selecting a user immediately adds them as a co-author.
  • Post display

    • Author byline showing avatars and names (up to N, consistent with Substack-style UI).
    • Author names link to profile pages.
  • Profile page (minimal)

    • URL: /users/{username}
    • Displays: name, avatar, list of publications owned or contributed to.

Identity & Avatars

  • Primary avatar source: Gravatar (from user email).
  • Fallback: system-generated placeholder avatar (deterministic, aesthetically consistent).

Scope Exclusions (for now)

  • No publication-level author roles.
  • No email invitations.
  • No author approval or consent flow.
  • No role distinctions (e.g. editor vs contributor).

Appendix A: Future Extension – Author Approval Flow

  • Adding an author triggers a pending state.
  • The added user receives a notification/email.
  • Authorship becomes active only after explicit acceptance.
  • Prevents unauthorized attribution.

Appendix B: Future Extension – Email-Based Invitations

  • Allow adding authors by email address.

  • If the email is not associated with an account:

    • Send an invitation to join DataHub.
    • On signup, prompt acceptance of co-authorship.
  • Invitation acceptance simultaneously:

    • Creates the user account.
    • Confirms authorship on the post.

Notes

  • Initial implementation assumes a trusted environment.
  • All extensions are additive and do not require changes to the core data model.