A tactile, vintage-inspired academic note-taking environment powered by real-time typewriter dictation and Sarvam AI Saaras v3 multilingual transcription.
Nottera brings the physical elegance of archival books, embossed leather folios, and mechanical typewriters to modern web-based academic note-taking. Designed with a distinct textbook aesthetic, it pairs classic editorial typography and parchment textures with an intelligent dual-engine voice transcription pipeline.
- Instantaneous Real-Time Dictation: Spoken words appear in real time (<50ms latency) on an emerging vintage typewriter sheet with a mechanical cursor (
█). - Sarvam AI Saaras v3 Engine: High-fidelity Indic and Indian English transcription using Sarvam's state-of-the-art
saaras:v3model. - Dynamic Mechanical Reel Animation: Rotating cassette reels driven by live audio RMS energy and voice activity detection (VAD).
- Direct Typewriter Keyboard Input: Type directly on the emerging parchment page during recording.
- Archival Folio Binders: Organize research and lecture notes into custom folios (e.g., Cognitive Science, Macroeconomics, Architecture, Discrete Mathematics).
- Rich Document Reader: Clean serif typography (
Source Serif 4), margin notes, paper textures, and bookmark tabs. - Instant Global Search: Filter across notes, folders, tags, and voice transcripts instantly.
- Quick-Note Scratchpad: Capture thoughts on the fly with persistent auto-saving.
- Vercel Serverless Ready: Native
/api/transcribeand/api/speech-to-textendpoints configured for seamless deployment on Vercel. - Atomic Local Persistence: Local file-backed storage with atomic writes to ensure zero data corruption.
- Export & Backup: Export your complete notebook catalog as a structured JSON archive at any time.
| Layer | Technology |
|---|---|
| Frontend | React 19, Vite 8, Vanilla CSS (Design Tokens & HSL Palettes) |
| Typography | Source Serif 4 (Google Fonts), Courier Prime |
| Speech-to-Text | Web Speech API (Live stream) + Sarvam AI saaras:v3 (High-accuracy REST) |
| Backend / API | Node.js Serverless Functions (Vercel) & Standalone Express/HTTP API |
| Audio Processing | Web Audio API (16 kHz mono PCM resampling, RMS analysis, WAV encoding) |
| Linting & Testing | Oxlint, Node.js Native Test Runner |
- Node.js 20+ installed
- (Optional) Sarvam AI API Key for Indic speech-to-text
-
Clone the repository:
git clone https://github.com/r69shabh/nottera.git cd nottera -
Install dependencies:
npm install
-
Configure environment variables:
cp .env.example .env.local
Add your Sarvam API key in
.env.local:SARVAM_API_KEY=your_sarvam_api_key_here
-
Start development server:
npm run dev
Open http://localhost:5173 in your browser.
| Endpoint | Method | Description |
|---|---|---|
/api/transcribe |
POST |
Transcribe 16kHz WAV audio using Sarvam Saaras v3 |
/api/bootstrap |
GET |
Fetch profile, settings, folders, and saved notes |
/api/folders |
GET |
Retrieve notebook folios and categories |
/api/notes?q=... |
GET |
Global search across notes and voice transcripts |
/api/quick-notes |
POST |
Create a new scratchpad note |
/api/voice-memos |
GET, POST |
List or save transcribed voice memos |
/api/settings |
GET, PATCH |
Read or update user preferences |
/api/export |
GET |
Download full JSON data archive |
# Start Vite client + Node API concurrently
npm run dev
# Run client only
npm run dev:client
# Lint codebase with Oxlint
npm run lint
# Run automated backend test suite
npm test
# Build production bundle
npm run build
# Start production server
npm start- Push your repository to GitHub.
- Import the project into Vercel.
- Set the
SARVAM_API_KEYEnvironment Variable in your Vercel project settings. - Deploy!
Distributed under the MIT License. See LICENSE for more information.