Skip to content

Peiiii/EchoNote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

StillRoot

AI-Powered Conversational Note-Taking Application

🌐 Live Demo β€’ πŸ“– Documentation β€’ πŸ› Report Bug β€’ πŸ’‘ Request Feature

TypeScript React Vite License


✨ Overview

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.

🎯 Key Features

  • πŸ’¬ 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 #tags to 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

πŸš€ Quick Start

Prerequisites

  • Node.js >= 18.0.0
  • pnpm >= 8.0.0 (recommended) or npm/yarn

Installation

# 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 dev

Visit the printed local URL to see the application.

Environment Variables

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

πŸ› οΈ Tech Stack

Core Technologies

UI Components

Rich Text Editing

Data & AI

Development Tools

πŸ“ Project Structure

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

πŸ”Œ API

  • StillRoot API v1 (OpenAPI): docs/api/stillroot-api.v1.openapi.yaml
  • Backend Worker: workers/app-api

🎨 Features in Detail

Conversational Note-Taking

Write notes as if you're chatting with yourself or an AI assistant. No more blank page anxiety - just start typing and send.

Channel Organization

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

AI-Powered Assistance

  • 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

Thread Discussions

Reply to any note to create threaded conversations, perfect for:

  • Following up on ideas
  • Adding context or corrections
  • Collaborative discussions
  • Building on previous thoughts

Smart Tagging

Use #tags in your notes for automatic organization:

  • #todo - Action items
  • #idea - Creative concepts
  • #important - Key information
  • #project-name - Project-specific notes

πŸ§ͺ Development

Available Scripts

# 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 Pages

Code Style

This project follows strict code style guidelines:

  • No any types - 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

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • 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

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ“§ Contact


Made with ❀️ by the StillRoot team

⭐ Star this repo if you find it helpful!

About

AI Powered Note Taking.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages