SideShift
Inspiration
Most online debate platforms reward attention, certainty, popularity, and conflict. People often repeat what they already believe instead of making a serious effort to understand another perspective.
I wanted to build something with a different goal: not simply helping people win arguments, but helping them become better at reasoning, listening, and engaging with disagreement.
That became SideShift, a privacy-first debate and perspective-training platform.
What it does
SideShift lets users explore topics, construct arguments, and participate in structured debates.
Its defining feature is SideSwitch. Instead of always defending their real opinion, users can be assigned the opposite position. This encourages intellectual flexibility, stronger counterarguments, and a more honest understanding of why another person might disagree.
SideShift includes:
- structured multi-round AI debates;
- SideSwitch perspective training;
- private friend challenges;
- private Groups and Group-created topics;
- local Team Debate for classrooms and shared devices;
- reviewed World Pulse topics;
- private Friends and Group leagues;
- profiles, interests, statistics, and Argument DNA;
- English, German, French, Spanish, and Italian;
- responsive web, PWA, and Android support.
SideShift deliberately avoids public popularity rankings and ideological scoring. Progress rewards participation, topic variety, completed debates, and perspective-taking rather than political agreement.
How I built it
The frontend uses React, TypeScript, and Vite. Capacitor packages the application for Android while preserving the responsive web and PWA experience.
Supabase provides authentication, PostgreSQL storage, Row Level Security, private file storage, and server-authoritative database functions. Social, profile, Group, and debate data are protected through user-scoped policies rather than only frontend checks.
SideShift Basic uses a bounded multi-turn AI flow with context management, quotas, idempotency, safe error states, and final evaluation.
The project includes 125 automated tests covering authentication, AI turns, quotas, privacy, onboarding, navigation, mobile behaviour, and regression cases.
How I used Codex and GPT-5.6
SideShift existed as an early project before Build Week. During Build Week, I used Codex powered by GPT-5.6 to significantly extend and harden it.
Codex helped me:
- understand and navigate a growing full-stack repository;
- implement features across React, TypeScript, Supabase, Node, and Android;
- create and verify database migrations and Row Level Security policies;
- diagnose Android WebView, API-routing, lifecycle, and navigation problems;
- build stateful multi-turn AI debates;
- implement Friends, Groups, Team Debate, World Pulse, and private leagues;
- create multilingual interfaces;
- reproduce real-device failures;
- add automated regression tests;
- verify builds, migrations, and Git history.
GPT-5.6 was especially valuable when a problem crossed several systems. For example, repairing logout required reasoning about React state, Supabase sessions, Android restart behaviour, private caches, and navigation history together.
I remained responsible for the SideSwitch concept, product direction, privacy model, visual identity, scoring principles, safety limits, and final acceptance decisions.
Challenges
One major challenge was making anonymous accounts behave safely. Logging out originally caused the app to create a replacement anonymous account after restart, making logout appear broken. The solution required a durable signed-out state, deliberate guest creation, private-cache cleanup, and protection against stale authentication callbacks.
Another challenge was maintaining reliable multi-turn AI debates. Retries must not create duplicate responses, consume quota twice, or lose the conversation history.
Android introduced additional problems involving WebView origins, API routing, image handling, lifecycle events, and Back navigation.
What I learned
I learned that AI-assisted development works best when the human defines strong constraints, verifies results, and tests failures rather than accepting the first generated implementation.
I also learned that privacy and reliability must be architectural decisions, not cosmetic settings added near the end.
Most importantly, SideShift reinforced its own central idea: understanding an opposing position does not weaken your thinking. It makes your thinking more deliberate.
What's next
The next steps are deploying the permanent hosted AI backend, completing production authentication verification, running a private classroom beta, and using real feedback to improve clarity, accessibility, and debate evaluation.
Built With
- accessibility
- api
- cloudflare
- codex
- git
- github
- internationalization
- level
- node.js
- openai
- postgresql
- row
- security
- supabase
- vite
- workers
Log in or sign up for Devpost to join the conversation.