Skip to content

Gist-based profile configuration #8

@danielbodnar

Description

@danielbodnar

Summary

Allow users to personalize their profiles.sh page by creating a profiles-sh.json gist with preferences.

Proposed Behavior

  1. User creates a public gist named profiles-sh.json with content like:

    {
      "featured_repos": ["my-project", "cool-tool"],
      "featured_topics": ["rust", "nushell"],
      "hidden_categories": ["gamedev", "iot"],
      "theme": {
        "accent": "#ff6b6b",
        "background": "dark"
      },
      "bio_override": "Custom tagline for my profile"
    }
  2. On profile load, the app fetches https://api.github.com/users/{username}/gists and looks for a gist named profiles-sh.json

  3. If found, apply the configuration:

    • Featured repos/topics float to top of their sections with visual emphasis
    • Hidden categories are excluded from persona cards
    • Theme overrides apply to the profile page
    • Bio override replaces the GitHub bio

Benefits

  • No auth required — gists are public
  • User controls their data
  • Easy to update (just edit the gist)
  • No database writes needed for personalization

Implementation Notes

  • Cache the gist response in KV (same TTL as other GitHub data)
  • Validate JSON schema with Zod
  • Graceful fallback if gist doesn't exist or is malformed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions