Image of me, AI filled to make it more horizontal.

Fragment Engine

Introduction

Fragment Engine is a personal system for capturing fleeting thoughts and resurfacing them later, out of context. It allows me to store ideas and/or observations with minimal friction, and then periodically returns a small, randomly selected subset to me via email.

The backend is implemented in Go and exposed as an API hosted on Vercel. Fragments are persisted in Supabase, resurfacing is driven by a Supabase cron job, and emails are delivered using the Resend API. The frontend is a lightweight React application, packaged as an Android app using Capacitor. While it has a user interface, Fragment Engine is fundamentally backend-driven in both design and behavior.

This system exists to support writing—not by encouraging consistency or discipline, but by creating unexpected prompts.

Purpose and Goal

The core design goal of Fragment Engine is low-friction capture. Each fragment is capped at 200 characters. This constraint is deliberate: it forces ideas to be stored without elaboration, context, or justification.

The system assumes that context decays faster than ideas. When a fragment resurfaces weeks or months later, the original situation that produced it is often gone. What remains is the fragment itself, now open to reinterpretation. That transformation is the point.

Capture and resurfacing are inseparable. Capturing fragments removes the cognitive load of remembering or organizing ideas. Resurfacing reintroduces them at a distance, allowing meaning to emerge retroactively. For this reason, the application intentionally does not provide a way to browse all stored fragments. I wanted resurfacing to feel accidental, not archival.

Spotlight

The resurfacing mechanism is the heart of the project.

Fragments become eligible for resurfacing only after a minimum age and are throttled by rules that prevent repetition or overexposure. On each run, the system dynamically selects a small number of fragments based on the size of the eligible pool, randomizes selection, updates resurfacing metadata, and returns the chosen fragments as a single atomic operation.

I completed this functionality around December 21, 2025. Over the following ten days, I stored six fragments. On January 1, 2026, three of them resurfaced. That moment confirmed the premise: fragments gain value not at capture time, but at reappearance.

Without resurfacing, Fragment Engine would be little more than a text box. With it, the system becomes reflective.

Current Status

The system is complete and in active use.

Fragments can be captured from a mobile app, are persisted reliably, and resurface on schedule without manual intervention. The backend is production-deployed, the cron workflow is operational, and the email delivery pipeline is stable.

No additional features are planned until sustained use reveals a need.

Lessons Learned

Ideas do not need to be fully formed to be worth keeping.

Fragment Engine showed me that even incomplete thoughts carry value when they are preserved and revisited later. Distance adds perspective, and resurfacing creates space for reinterpretation. What felt insignificant at the time of capture often becomes meaningful when encountered again in a different context.

The system reinforced the idea that thinking is not always linear—and that allowing ideas to age can be just as important as refining them.

Conclusion

Fragment Engine is not a productivity tool or a note-taking app. It is a system for delayed recognition—capturing thoughts when they appear and returning them when they are no longer familiar.

Its value lies not in what it stores, but in what it gives back.

Made with ❤️ by Sai Nivas Mangu.

Download my resume