-
Notifications
You must be signed in to change notification settings - Fork 171
Open
Description
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
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels