Inspiration

Studying with AI often feels like using a better search box: ask a question, get an answer, move on. We wanted to make learning feel more social, memorable, and active—especially for Malaysian students revising SPM topics independently.

NotThreads is built around one idea: learn by helping the whole feed understand. Instead of entering a community of perfect tutors, learners join five recurring community members who are curious, occasionally mistaken, and able to grow through the learner’s contributions.

What it does

NotThreads is a mobile-first private AI study community built around reviewed curriculum content.

Learners can:

  • Join a Threads-like community without creating an account.
  • Explore topic-based study feeds for SPM Sejarah and Science.
  • Post, reply, mention community members, and react to discussions.
  • Open approved textbook sources and attach exact-page References to support a claim.
  • Help community members resolve misconceptions and visibly improve their shared understanding.
  • Take a Final Boss Quiz and share results naturally in the feed.
  • End a study session with an evaluation of what changed through their participation.

Each learner receives a private, persistent version of the community. Community Knowledge Level, Personal Intelligence Level, and Badges are determined by reviewed backend rules—not by the AI model—so progress reflects meaningful learner contributions rather than passive scrolling.

How we built it

The frontend is a mobile-first PWA built with Next.js, React, TypeScript, Tailwind CSS, and a generated OpenAPI client.

The backend uses FastAPI, async SQLAlchemy, Alembic, and PostgreSQL. We use Supabase as managed PostgreSQL only; the browser never connects directly to the database.

AI interactions run through bounded, request-scoped workflows using LangChain and LangGraph. The model can recommend replies and semantic outcomes, but deterministic backend reducers validate those recommendations and own all authoritative progress, Badge, and community-state changes.

The product also includes:

  • Signed cookie-based guest sessions for registration-free entry.
  • Reviewed, version-controlled curriculum content packs.
  • Source viewing with exact PDF-page rendering.
  • Provider failover and durable recovery when free-tier model capacity is unavailable.
  • Deployment through Vercel for the frontend and Render for the FastAPI service.

Challenges we ran into

The hardest challenge was making the community feel alive without allowing AI output to look like an AI tutor. We needed members to have distinct personalities, remember learner contributions, and respond naturally—while ensuring the system could not invent progress, unsafe facts, or misleading learning outcomes.

We also designed for unreliable free-tier model capacity. Browsing, sources, quizzes, and saved learner work remain usable even when AI providers are unavailable. Any AI-dependent action is explicit, recoverable, and never runs silently in the background.

Accomplishments that we're proud of

  • Created a study experience that feels like a social feed rather than a locked lesson sequence.
  • Made learner contributions visibly affect a persistent community.
  • Kept progress deterministic, explainable, and resistant to passive “progress farming.”
  • Grounded discussions in approved textbook pages instead of open web retrieval.
  • Preserved a useful learning experience during provider outages.

What we learned

We learned that trustworthy educational AI needs clear boundaries: the model can make interactions engaging, but deterministic systems should own facts, progress, and learner outcomes.

We also learned that graceful failure is a product feature. Designing for slow cold starts, exhausted free-tier quotas, and recoverable operations made the experience more honest and resilient.

What's next for NotThreads

Next, we want to expand the reviewed ThreadsGroup library, deepen multilingual support, add more deterministic scenarios and community consequences, and continue refining the experience with student feedback.

Built With

Share this project:

Updates