Pistochia
जल्द लॉन्चADHD वाले लोगों के लिए एक iPhone ऐप। आपके दिमाग़ में जो चल रहा है उसे बोलें या टाइप करें, और वह इतने छोटे कदमों के रूप में वापस आता है कि उन्हें शुरू किया जा सके, उस दिन की आपकी एनर्जी के हिसाब से क्रम में।
- मेरी भूमिका
- डिज़ाइन और डेवलपमेंट, अकेले
- साल
- 2026
- टेक्नोलॉजी
- Expo · React Native · SQLite · Supabase Edge Functions · Claude · Whisper · RevenueCat
पूरा डायग्राम देखने के लिए साइड में स्क्रॉल करें।
समस्या
ADHD वाले लोगों के लिए मुश्किल अक्सर शुरू करने में होती है, याद रखने में नहीं। जो to-do ऐप पूरा पहाड़ जमा कर लेता है, वह उन कामों की लिस्ट बन जाता है जिन्हें देखकर गिल्ट महसूस होता है। काम की इकाई को तब तक छोटा करना होता है जब तक शुरू करना आसान न लगे, और ऐप को खुलते ही काम करना चाहिए।
यह कैसे बना है
लोकल SQLite पर चलने वाला एक offline-first Expo ऐप, versioned migrations के साथ। पहचान Supabase के anonymous auth से बनती है, इसलिए पहला brain dump किसी भी साइन-अप स्क्रीन से पहले हो जाता है। हर AI कॉल एक edge function से होकर जाती है जो operations के हिसाब से काम करता है: ऐप एक operation का नाम और उसके पैरामीटर भेजता है, कभी prompt नहीं और कभी key नहीं। function उस operation को एक allowlist से मिलाता है और हर IP के लिए rate limit, हर इंस्टॉल के लिए रोज़ का कोटा और एक kill switch लागू करता है। Claude कामों को छोटे हिस्सों में तोड़ता है, और उसी proxy के पीछे Whisper आवाज़ सँभालता है। RevenueCat paywall चलाता है, और analytics तब तक बंद रहते हैं जब तक यूज़र उनके लिए हाँ न कहे।
अहम फ़ैसले
ऐप में कोई API key नहीं होती
अंदर operation के नाम जाते हैं और बाहर structured नतीजे आते हैं। API key edge function में रहती है, एक kill switch, कोटा और ऐसी limits के पीछे जो fail closed होती हैं।
यह पहले ऑफ़लाइन काम करता है
काम फ़ोन पर SQLite में रहते हैं, असली migrations के साथ। ADHD के लिए बना कोई टूल अगर आपका अगला कदम दिखाने के लिए नेटवर्क माँगे, तो वह उन्हीं लोगों को निराश करेगा जिनके लिए वह बना है।
पहले इस्तेमाल से पहले कोई साइन-अप नहीं
Anonymous auth चुपचाप एक पहचान बना देता है। अकाउंट वाली स्क्रीन बाद में आती है, जब ऐप काम आ चुका हो।
रिपो से कोड
// The legacy free-relay surface: any request still carrying these is either
// an outdated client or an abuse probe — reject outright.
const FORBIDDEN_KEYS = ['system', 'model', 'messages', 'maxTokens'] as const;1
// …
const paused = Deno.env.get('AI_PAUSED');2
if (paused === 'true' || paused === '1') {
return jsonResponse({ error: 'ai_paused' }, 503);
}
// …
for (const key of FORBIDDEN_KEYS) {
if (key in body) {
return jsonResponse({ error: 'invalid_request' }, 400);
}
}
const op = body.op;
if (typeof op !== 'string' || !(op in OPS)) {3
return jsonResponse({ error: 'invalid_op' }, 400);
}
const config = OPS[op]!;
लाइन 3. ऐप कोई prompt, मॉडल या token limit नहीं भेज सकता। ये सर्वर पर रहते हैं, और ऐप सिर्फ़ allowlist में मौजूद किसी operation का नाम ले सकता है।
लाइन 6. AI_PAUSED एक kill switch है: एक environment variable बिना redeploy के AI पर होने वाला सारा ख़र्च रोक देता है।
लाइन 19. अनजान operation रिजेक्ट हो जाता है। API key ऐप बंडल में कहीं भी मौजूद नहीं होती।
अभी कहाँ तक पहुँचा
App Store की सामग्री, लॉन्च चेकलिस्ट, EAS builds, एक प्रोमो वीडियो और waitlist के साथ pistochia.com तैयार हैं। पहले iPhone; अगला कदम App Store पर रिलीज़ है।