Sahil Patel

Software & AI · Web

SahilAI

A learning chat for students. The README says it helps you understand the work and will not do the work.

Specs

Sheet
SP-08
Status
Public repository. Hosted at sahilai.vercel.app.
Credit
GitHub repository owner, sahil-patel-2011.
Visibility
Public
Opened
Aug 23, 2026
Last push
Aug 24, 2026

Dates are the public GitHub created and last-push timestamps.

Tech and tools

Languages

  • TypeScript

Tools

  • Next.js
  • React
  • Vercel AI SDK
  • Mistral
  • Neon

Overview

SahilAI is a learning chat. The repository README states the rule in the subtitle: it helps you understand the work, and it will not do the work. The hosted app is sahilai.vercel.app (opens in a new tab). The stack in package.json is Next.js, the Vercel AI SDK with Mistral, and optional Neon Postgres.

Problem

A student chat that finishes the assignment is the wrong product. SahilAI is written as a tutor with that refusal built in: no homework answers, no finished code.

What he built

The README lists email sign-up, the learning-only tutor, projects, scheduled study prompts, and a customize screen. An admin "people" desk can set custom profiles and guardrails and can view or delete someone's chats.

Free chats use the owner's Mistral key, capped in the README at 25% of that account's request and token rate, plus a per-person cap. The documented defaults are 30 messages a day and 10 an hour. After that, a learner pastes their own Mistral key. The README prints the env names for those limits (MISTRAL_RPM, MISTRAL_TPM, MISTRAL_SHARED_FRACTION, FREE_MESSAGES_PER_DAY, FREE_MESSAGES_PER_HOUR) and says to set them to the real dashboard numbers if they differ.

Accounts persist when DATABASE_URL points at Neon or another Postgres. Without it, local development uses data/sahilai.json.

Process

Local setup is npm install, copy .env.example to .env.local, and set MISTRAL_API_KEY and AUTH_SECRET. Production is the same two secrets on Vercel, plus the database URL when accounts should survive a serverless restart. This page does not repeat secret values. None are in the public repo.