Prizm

Prizm refracts your opinion into four perspectives — helping you understand the other side before you walk into the conversation.


Inspiration/Context

We are more connected than ever, and have numerous platforms and opportunities to share our opinions and amplify our voices in devices that are always in our reach. However, consequently, we are then exposed to more opposing opinions than ever, which sometimes amplifies the divisiveness that having differing opinions hold. Prizm was built to rewrite the ways in which we respond to opposition, encouraging listening and discussion over rejection and resentment.

What it does

Prizm takes any opinion you hold and refracts it into four structured perspectives: a direct opposing view, the strongest possible case for the other side, the common ground both sides share, and reflective questions to consider before engaging. Like light through a prism, a single beam splits into a spectrum.

How it was built

Prizm was built as a React single-page app using Vite, with Framer Motion handling all animations. The core AI layer calls the Anthropic Claude API with a carefully designed system prompt that instructs Claude to act as a calm, fair mediator — returning structured JSON with all four perspectives in a single call.

Challenges

I didn't have an AI-assisted IDE setup, so it was a bit difficult prompting Claude and having to manually go in and make the changes myself. Additionally, it was a bit of a learning curve to accept that I no longer have full design control, especially during such a limited time constraint: I had to go against my perfectionist tendencies and instead put my best effort into the way I prompt and describe my visions.

Lessons

Taking the time to brainstorm and clarify a vision for the project really helped to narrow down core features as well as a clear flow of the product. I also learned a lot about time management and knowing when to pivot and make compromises. Finally, I would familiarize myself with more advanced development tools (e.g., Claude Code) to streamline my process.

What's next

The current usage of this project is intended for more lighthearted "hot takes" rather than real, pressing issues. Further development of this project would broaden this pool, requiring it to take into account the gravity and sensitivity of the topic of the user's inputted opinion, and curate responses keeping such factors in mind.

Built With

  • anthropic-claude-api-(claude-sonnet-4-5)
  • css-modules
  • framer-motion
  • html5
  • react
  • vite
Share this project:

Updates