I built Instaply with OpenAI Codex because I wanted to answer people who had commented on my photographs. Two years of missed conversations were scattered across older Instagram posts. The work was easy to postpone because finding the unanswered comments was itself a task. A local web app gave that backlog a place to become visible, manageable, and eventually finished.

Ownership disclosure: I created Instaply and wrote the original project account on Tocatlian Blog . This case study draws on my own use of the app and its documented workflow.

The missed comments are now answered, and the unwanted comments have been removed. The transferable lesson is in the design: organize the work around the decisions a person needs to make, then let AI help prepare those decisions. Instaply combines an Inbox, drafts, translation, reply review, moderation, and activity records. Each feature serves a particular step between discovering a conversation and completing it.

Define the backlog precisely

The crucial import option is No reply from me. A thread may contain responses from other people while still awaiting mine. Counting any reply as completion would hide exactly the conversations I wanted to recover. Instaply checks whether the connected account has answered.

Imports can cover recent posts or a chosen range of post publication dates. That distinction matters when planning a catch-up session: the range selects posts, rather than simply filtering comments by when they were written. A bounded period makes an otherwise shapeless backlog easier to approach.

Once imported, comments appear with their author, date, and a preview or link to the originating post. The By Post view brings the caption and its comments together. That restores the context needed to answer a question about a shoot or acknowledge a contributor's work. Search and filters help narrow attention to a person, emoji-only comments, followed accounts, or possible spam.

The design lesson starts before generation. Define what “unfinished” means for the person using the tool. A useful queue should reflect that definition, and its entries should carry enough context to make the next decision.

Instaply Inbox showing comment search, filters, post thumbnails, drafts, and reply controls.
The Inbox places the originating photograph and reply controls beside each imported comment. © Paul Tocatlian

Give suggestions, drafts, and sends separate states

Instaply offers three distinct operations in the reply editor. Generate prepares a suggestion. Save Draft stores a local reply. Sending opens a review of the recipient and exact text. A suggestion can be changed or discarded without becoming a public message, and an unfinished draft can wait for another session.

The generation context includes the comment, caption, contributor credits, dates, available discussion, prior replies or suggestions, and my guidance. Dates help a reply to an older photograph make sense in the present. Credits help keep recognition attached to the person whose work the commenter is discussing. Repetition checks within a post help identify suggestions that sound too similar.

There is also a concrete information boundary. The generation service does not inspect the photograph as visual evidence. When a comment concerns something visible in the frame, I need to open the post and check it myself. Textual context can help prepare a response without establishing what the picture actually shows.

This is a practical application of human-in-the-loop interaction. The person participates at the point where the prepared output becomes an action. In Instaply, confirmed delivery moves a comment to Sent. That makes completion an observable result, rather than a synonym for having generated some words.

Batch preparation should preserve individual attention

A long backlog creates repeated navigation. Instaply lets me select several eligible comments on the current page and prepare replies in one review workspace. The selection includes collapsed groups on that page, while keeping unseen pages outside the batch.

The two reply modes serve different needs. One reply for all fits a genuinely shared response. Different reply for each gives every selected recipient a separate editor and suggestion. A question about a location can therefore receive a different answer from a compliment about the same photograph.

The useful efficiency is moving through several conversations without reopening the same controls. Reviewing each recipient and message remains part of the work. For anyone building a similar tool, the batch boundary should be understandable before confirmation, with the affected people and proposed actions visible together.

Instaply batch dialog with a separate editable reply for each of two selected Instagram recipients.
Different reply for each keeps recipient-specific text visible during batch review. © Paul Tocatlian

Translation needs an inspectable result

Instaply can show an English translation beneath the original comment and identify the detected language. Keeping both visible lets me refer back to the wording when tone, an abbreviation, or an informal expression needs attention.

Generated replies normally include the commenter's language followed by an English equivalent. Both parts remain editable, and both are sent when confirmed. Explicit guidance can request a single language. This gives the review a concrete question: are these the words I intend this person to receive?

Translation is useful assistance for returning to an international audience. It still benefits from attention to meaning and tone. The app keeps the original conversation available instead of replacing it with the translated version.

Moderation and local cleanup have different consequences

The Possible spam filter creates a queue for inspection. I decide which comments belong on the posts. Deletion from Instagram has its own confirmation because it removes the selected comment and its replies from the platform.

Archive completes a different task. It removes local comment content and associated draft or reply content, retaining an identifier to prevent routine reimport. The Instagram conversation stays in place. Archived therefore does not function as a folder of recoverable messages, and an unfinished reply belongs in a saved draft.

These distinctions make labels consequential. A person tidying a local workspace should understand whether the action also changes the public conversation. Separate controls and confirmations give each operation its appropriate meaning.

Document the workflow beyond the development session

The Instaply Handbook , the October 2026 PDF edition, contains 53 pages with real application screenshots. It follows importing, finding comments, drafting, individual and batch review, translation, moderation, and maintenance. The screenshots record the app at capture time, so their queue sizes and statistics describe that moment.

Instaply runs on my Mac and stores the workspace locally. Importing, sending, and moderation connect to Instagram. Generation and translation use my existing ChatGPT sign-in through Codex. Local storage gives the workspace a home on the computer, while those operations still depend on connected services.

Statistics distinguishes suggestions generated from replies sent. The Audit Log records actions, outcomes, and explanations. Those records make it possible to inspect what happened after a session. They also complement the habit of reviewing results discussed in Newsroom's AI productivity feedback-loop coverage.

The lessons I would carry into another personal software project are concrete:

  • Define the unresolved work in the user's terms before designing assistance.
  • Put the relevant context beside the decision it supports.
  • Make drafts, public actions, and confirmed outcomes distinguishable.
  • Let batching reduce navigation while keeping individual review visible.
  • Write documentation that explains the consequences of each control.

Instaply belongs to my wider vibe coding journey, but its result is particular: I returned to conversations around my photographs and now have a workspace for continuing them. Building with AI became useful when the software fitted that everyday responsibility closely enough to help me finish it.