stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

52h 22m 18s logged

StashPay Teens lets you bet a small amount of money, like ₹10, that you can hit a simple habit like keeping your screen time under an hour. If you complete it, you get your cash right back, but if you bust the limit, the app automatically detects it using your actual app usage and hands the money over to your parents. I changed the name to LockIn because stash pay looked like some gambling app. I set up Clerk and auth basics, then added Supabase tables for families, join codes, requests and quests, along with onboarding for roles and family members.Building android builds was hectic. My phone could not connect to my development server, ngrok and LAN configurations failed, and EAS failed because of missing modules and misaligned Android configuration. Pre-building the Android app always resets manual tweaks, so I had to write my manual edits every time. I finally committed everything to GitHub and succeeded after two days. I made the stakes and records pages, but the records page had to deal with background apps and the problem of calculating actual foreground time. We wrote the APIs and had endpoints for role selecting, adding to family, joining families, code generation, etc. There were also privacy concerns around storing screen time in the database.There was a lot of difference in what my co-developer made for the backend and what I was wanting for the frontend. We consolidated six inconsistent statuses into five: active, pending, completed, failed, rejected. For screen time, instead of showing a description it will show you a rule builder, sent as JSON data and parsed on the frontend. The native module now checks every 15 minutes, on state change, or when the app comes to the foreground, and updates the Supabase entry for that day. The sync logic can backtrack days, store basic heartbeat/activity and trigger status updates. I centralized all stake evaluation logic into one file. It now checks screen time, persists the data into the DB, triggers failure or completion, and updates the screens after updating Supabase. The biggest problems were efficiency and privacy.The payment implementation sidesteps the entire payment-aggregator/licensing question as an “honor-system fallback”. Once you fail the stake you get a link for a charity so you can pay to them and then mark as completed. My app is ready end to end and it works. For the last design revamp, I replaced Inter / JetBrains Mono / Pixelify Sans with Geist, Geist Mono and Space Grotesk. The primary orange changed from #BD580F to #F5893C, and I switched to a material design based color palette. I added a landing page for unauthenticated users and new navigation with home, wallet and settings.

0
49

Comments 1

@infintr

this project was originally started in Macondo but I had to bring it over here, due to the 4000 char limit I had to condense my original 22 Journals into one. It’s an extractive summary made over my original journal (I used local AIs to paraphrase a little) I have so many screenshots but I can’t post them over here in 1 devlog - i’ll probably let you guys view the original journals on the blog page on the website (WIP)