Skip to content

[GSOC'26] Template Playground: Persistent Template Playground #487

@JiyaGupta-cs

Description

@JiyaGupta-cs

Problem

The current template playground is stateless. When users leave or refresh the page, all progress is lost. This breaks real-world authoring workflows where lawyers and contract managers expect to pause, revisit, iterate their work over time.

Additionally, maintaining persistence via a traditional database introduces infrastructure cost, operational overhead, and reduced openness, which goes against the goal of keeping the product open-source and lightweight.

Proposed Solution

  • Authentication: Allow users to sign in (e.g., GitHub OAuth).
  • Save & Resume: Provide an explicit “Save” option so users can persist their playground state and continue later.
  • Storage via GitHub:
    - Use Octokit.js to interact with GitHub APIs.
    - Use SimpleGit on the backend to manage commits.
    - Automatically create or use a private repository under the user’s GitHub account.
    - All implementation details are abstracted - users only need a GitHub account, no Git knowledge required

Outcomes

  • Users can save, resume, and continue their work seamlessly across sessions.
  • No work is lost; every save is versioned, enabling easy rollback to any previous state.
  • The product remains open-source, with no dependency on a managed database.
  • Zero Git complexity for users - all repository, commit, and version handling is fully automated.
  • Strong user trust and data ownership, since work is stored in the user’s own GitHub account.
  • Improved productivity and user retention, as users can pause and return without friction.

Alternatives to Explore

  • GitHub Gists for lighter-weight persistence.
  • Client-side storage (IndexedDB) for unauthenticated users.

Skills required/preferred:

React.js, OctoKit.js, SimpleGit

Possible Mentors:

Matt Roberts, Dan Selman

Expected size of project:

175 hours (medium)

Expected difficulty:

Medium

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintainer-engagedA maintainer has commented or reviewed this item

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions