Check out I.T Never Ends on Steam here: https://store.steampowered.com/app/4225400/IT_Never_Ends/
Try the demo and let me know what you think! 🎮
store.steampowered.com/app/4225400/...
#GameDev #IndieDev #Supabase #WebDev #SteamDeck
Try the demo and let me know what you think! 🎮
store.steampowered.com/app/4225400/...
#GameDev #IndieDev #Supabase #WebDev #SteamDeck
The Deno edge function receives the database payload, extracts the record, and formats it into a Discord embed with.
If Discord fails, it logs the error but doesn't break the feedback submission.
The Deno edge function receives the database payload, extracts the record, and formats it into a Discord embed with.
If Discord fails, it logs the error but doesn't break the feedback submission.
When new feedback is inserted, a Supabase database trigger fires an edge function that formats and posts to Discord.
The edge function:
- Formats feedback into a Discord embed
- Creates visual star ratings (⭐ for enjoyment, 💰 for purchase intent)
When new feedback is inserted, a Supabase database trigger fires an edge function that formats and posts to Discord.
The edge function:
- Formats feedback into a Discord embed
- Creates visual star ratings (⭐ for enjoyment, 💰 for purchase intent)
- Privacy: Players can't see other players' feedback
- Security: Even if someone gets the anon key, they can only submit data, not read it
- Simplicity: No authentication needed for demo feedback
- Privacy: Players can't see other players' feedback
- Security: Even if someone gets the anon key, they can only submit data, not read it
- Simplicity: No authentication needed for demo feedback
The RLS policy ensures anonymous users can ONLY insert data. They can't read, update, or delete anything. This is the "write-only" pattern.
`anon` can INSERT, but SELECT/UPDATE/DELETE are blocked. This means the public key is safe to use in client-side code.
The RLS policy ensures anonymous users can ONLY insert data. They can't read, update, or delete anything. This is the "write-only" pattern.
`anon` can INSERT, but SELECT/UPDATE/DELETE are blocked. This means the public key is safe to use in client-side code.
Using the Supabase JS client with the public "anon" key. This is safe because Row Level Security (RLS) policies restrict what operations are allowed.
The client code is simple and uses a (safely) publishable API key
Security happens at the database level thru RLS (below)
Using the Supabase JS client with the public "anon" key. This is safe because Row Level Security (RLS) policies restrict what operations are allowed.
The client code is simple and uses a (safely) publishable API key
Security happens at the database level thru RLS (below)
Built with react (the whole game is).
The form is accessible from both the main menu and demo end screen.
Key feature: graceful degradation. If Supabase isn't configured, the form simply doesn't appear. No errors, no broken UX.
Built with react (the whole game is).
The form is accessible from both the main menu and demo end screen.
Key feature: graceful degradation. If Supabase isn't configured, the form simply doesn't appear. No errors, no broken UX.
4 questions that give actionable insights:
1. Enjoyment rating (1-10) + "What would you tell a friend?"
2. Friction points (free text)
3. Purchase intent (1-10)
4. Suggested price (with auto currency detection)
Plus auto-captured metadata: playtime, game version, OS/platform.
4 questions that give actionable insights:
1. Enjoyment rating (1-10) + "What would you tell a friend?"
2. Friction points (free text)
3. Purchase intent (1-10)
4. Suggested price (with auto currency detection)
Plus auto-captured metadata: playtime, game version, OS/platform.
- Lower friction = more responses
- Capture context (playtime, game version, system info)
- Better UX than external links
For a Steam Next Fest demo, every piece of feedback is gold. This makes it easy to collect.
- Lower friction = more responses
- Capture context (playtime, game version, system info)
- Better UX than external links
For a Steam Next Fest demo, every piece of feedback is gold. This makes it easy to collect.