AI-Powered Conversational Note-Taking Application
π Live Demo β’ π Documentation β’ π Report Bug β’ π‘ Request Feature
StillRoot is a modern, AI-powered note-taking application that transforms the way you capture, organize, and interact with your thoughts. Built with a conversational interface inspired by messaging apps, it eliminates the friction of traditional note-taking tools and makes knowledge management feel natural and effortless.
- π¬ Conversational Interface - Record notes through a chat-like interface, just like messaging yourself or an AI assistant
- π Channel System - Organize notes into themed channels (e.g., #work-log, #reading-notes, #ideas)
- π€ AI Assistant - Get summaries, translations, formatting help, and creative inspiration from your AI companion
- π§΅ Thread Discussions - Reply to notes to create threaded conversations and deeper discussions
- π·οΈ Tag System - Use
#tagsto organize and categorize your notes automatically - π± Cross-Platform - Progressive Web App (PWA) that works seamlessly on desktop and mobile
- π Internationalization - Support for multiple languages (English, Chinese, and more)
- π¨ Rich Editor - Markdown support, code blocks, math equations, tables, and more
- π Smart Search - Full-text search across all your notes with instant results
- π Multiple Views - Timeline, board, mindmap, and calendar views for different perspectives
- Node.js >= 18.0.0
- pnpm >= 8.0.0 (recommended) or npm/yarn
# Clone the repository
git clone https://github.com/Peiiii/stillroot.git
cd stillroot
# Install dependencies
pnpm install
# Set up environment variables
cp .env.example .env
# Edit .env with your configuration
# Start development (web + local workers)
pnpm devVisit the printed local URL to see the application.
Create a .env file in the root directory:
# Firebase Configuration
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_id
# AI Configuration (Optional)
VITE_OPENAI_API_KEY=your_openai_key
VITE_DASHSCOPE_API_KEY=your_dashscope_key
# GitHub Integration (Optional)
VITE_GITHUB_CLIENT_ID=your_github_client_id
VITE_GITHUB_CLIENT_SECRET=your_github_client_secret
# Feedback Space URL (Optional)
VITE_FEEDBACK_SPACE_URL=your_feedback_space_url- React 19 - Modern UI framework
- TypeScript - Type-safe development
- Vite - Fast build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- Zustand - Lightweight state management
- React Router - Client-side routing
- Radix UI - Accessible component primitives
- shadcn/ui - Beautiful component library
- Lucide React - Icon library
- Framer Motion - Animation library
- TipTap - Headless rich text editor
- Marked - Markdown parser
- KaTeX - Math rendering
- Mermaid - Diagram rendering
- Firebase - Backend services (Auth, Firestore)
- OpenAI SDK - AI integration
- RxJS - Reactive programming
- ESLint - Code linting
- Prettier - Code formatting
- TypeScript ESLint - TypeScript-specific linting
StillRoot/
βββ src/
β βββ common/ # Shared components and utilities
β β βββ components/ # Reusable UI components
β β βββ features/ # Feature modules
β β βββ hooks/ # Custom React hooks
β β βββ lib/ # Libraries and utilities
β β βββ config/ # Configuration files
β βββ core/ # Core application logic
β β βββ stores/ # Zustand state stores
β β βββ services/ # Business logic services
β β βββ hooks/ # Core hooks
β βββ desktop/ # Desktop-specific features
β βββ mobile/ # Mobile-specific features
β βββ main.tsx # Application entry point
βββ docs/ # Documentation
βββ memory-bank/ # Project knowledge base
βββ public/ # Static assets
- StillRoot API v1 (OpenAPI):
docs/api/stillroot-api.v1.openapi.yaml - Backend Worker:
workers/app-api
Write notes as if you're chatting with yourself or an AI assistant. No more blank page anxiety - just start typing and send.
Create channels for different topics:
#work-log- Daily work notes#reading-notes- Book summaries and insights#ideas- Creative thoughts and inspirations#meetings- Meeting notes and action items
- Summarize long conversations or documents
- Translate content between languages
- Format text into structured formats
- Generate ideas and creative suggestions
- Answer questions based on your notes
Reply to any note to create threaded conversations, perfect for:
- Following up on ideas
- Adding context or corrections
- Collaborative discussions
- Building on previous thoughts
Use #tags in your notes for automatic organization:
#todo- Action items#idea- Creative concepts#important- Key information#project-name- Project-specific notes
# Development
pnpm dev # Start development server
pnpm build # Build for production
pnpm preview # Preview production build
# Code Quality
pnpm lint # Run ESLint
pnpm format # Format code with Prettier
pnpm format:check # Check code formatting
# Deployment
pnpm deploy # Deploy to OSS
pnpm deploy:pages # Deploy to GitHub PagesThis project follows strict code style guidelines:
- No
anytypes - Use proper TypeScript types - English only - All code, comments, and UI text in English
- No comments - Self-documenting code (unless explicitly requested)
- Kebab-case - File and directory naming
- PascalCase - Component naming
- Absolute imports - Use
@/path aliases
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow the existing code style and architecture
- Write self-documenting code
- Add tests for new features
- Update documentation as needed
- Ensure all checks pass before submitting
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with React and Vite
- UI components from shadcn/ui
- Icons from Lucide
- Powered by Firebase and OpenAI
- Website: stillroot.app
- GitHub: @Peiiii
- Issues: GitHub Issues
Made with β€οΈ by the StillRoot team
β Star this repo if you find it helpful!