Rebuilding a 2020 Instagram app in 2026 — what broke and what replaced it
Description and use
In 2026, the 2020 InTager app stopped working due to Instagram API deprecation, outdated Flutter code, and a lapsed domain. It was rebuilt to use local image selection, a single Claude call for captions and hashtags, a Flask server with SQLite, a fresh Flutter project, and server‑side subscription control via StoreKit 2.
Problem
The 2020 InTager app stopped working due to API deprecation, domain lapse, and outdated Flutter code.
Outcome
InTager now functions without Instagram integration, uses a single Claude call for captions and hashtags, runs on a Flask server with SQLite, and enforces a server‑side paywall. The app complies with App Store policies and supports seasonal content from the server.
Workflow
- 1. Remove Instagram login and replace with local gallery picker.
- 2. Replace label + dictionary pipeline with a single Claude model call using structured‑output schema.
- 3. Migrate backend from Lambda/DynamoDB to Flask gunicorn on Railway with SQLite.
- 4. Create a new Flutter project in the same repo and bundle ID.
- 5. Implement server‑side paywall with quota checks and StoreKit 2 transaction verification.
- 6. Store only SHA‑256 hash, language, mood, and generated text; discard photos.
- 7. Update App Store Connect: add advertising‑identifier answer, correct privacy policy URL, provide iPad screenshots, add URL scheme for in‑app events, ensure seasonal moods have all language entries.
- 8. Publish new version and monitor App Store review feedback.
Evidence
Meta switched off the Instagram Basic Display API on December 4, 2024.
The Flutter code wouldn't build. Pre-null-safety Dart, a 2020 beta channel, widgets that no longer exist, and an in-app purchase plugin from someone's fork.
The old App Store listing had to go too. It promised likes and followers without paying and described matching you with people who follow back.
One model call instead of labels plus a dictionary. The backend sends the photo to Claude with a structured-output schema and gets back several captions in different tones plus a list of hashtags in one response.
The paywall on the server. Quota is checked before the model call and charged only after a successful answer, so a provider timeout never costs anyone a generation.
- Record date: 2026-10-02T06:40:54.546Z