This Is Reminisce is a "GitHub for Writers" built using the MERN stack. It enables users to write, commit their progress, and toggle between multiple drafts.
24th Mar, 2022
7th Jun, 2022
4 min read
Reminisce is a full-stack web application designed to be a "GitHub for Writers." It integrates a custom-built version control system with a rich text editor, allowing writers to track their progress, manage different drafts, and visualize changes between versions in a user-friendly interface.
The world of writing, much like software development, is an iterative process filled with drafts, revisions, and alternate paths. However, writers lack the sophisticated version control tools that developers take for granted. Traditional methods involve messy file naming conventions (final_draft_v2_final_final.doc
) and cumbersome manual tracking of changes.
Reminisce was created to solve this problem. It provides a centralized platform where writers can manage their projects seamlessly. By building our own version control system and text editor from the ground up, we created a single, cohesive application that empowers users to:
The core goal was to translate the power of developer workflows into an intuitive tool for creatives, replacing the complexity of the command line with a smooth, visual experience.
This project was built using the MERN stack and other modern web technologies.
Users can securely sign up or log in to the application using their Google account via OAuth. Upon logging in, they are greeted with a personal dashboard that displays all projects they own or are collaborating on, providing a centralized hub for all their work.
This is the core of the application where users can view and manage all documents within a specific project. From this page, users can:
The document editor provides a clean, distraction-free writing environment powered by CKEditor 5. All changes are saved automatically, and from this view, users can commit their progress or switch to other drafts to compare ideas.
We implemented a native version control system to handle project states.
Reminisce was fundamentally an exercise in exploration and technical implementation. It was developed with an experimental mindset, prioritizing the challenge of building a custom version control system and visually representing text differentials over creating a production-ready application. The primary goal was to learn and apply complex concepts like Myers' diff algorithm and backend data modeling for versioning within a full-stack environment.
As a result, the project stands as a robust proof-of-concept rather than a polished final product. There is a significant and exciting scope for future development. The foundational work lays the groundwork for numerous potential upgrades, from implementing real-time collaboration to expanding the text editor's capabilities and refining the user experience. This project was an invaluable learning journey, and its current state is a launchpad for many more features to come.