Skip to content

Humble Notes is a minimalist, privacy-focused note-taking app built with Next.js and Firebase. It offers secure Google/Apple/Email logins, real-time syncing with Firestore, and a clean distraction-free UI. Designed for speed, simplicity, and cross-device access, Humble Notes helps you capture ideas without the bloat of traditional apps.

Notifications You must be signed in to change notification settings

cyberdime-dev/humble-notes

Repository files navigation

πŸ“ Humble Notes

A modern, beautiful note-taking application built with Next.js and Firebase. Simple, secure, and designed for productivity.

🌐 Live Demo: humble-notes.vercel.app

Humble Notes React Firebase Tailwind CSS

✨ Features

🎨 Beautiful User Experience

  • Modern UI/UX - Clean, intuitive interface inspired by modern design principles
  • Dark/Light Mode - Automatic theme detection with manual toggle
  • Responsive Design - Works perfectly on desktop, tablet, and mobile
  • Real-time Updates - Instant UI feedback as you type

πŸ” Security & Authentication

  • Triple Authentication - Google, GitHub, or Email/Password
  • User Data Isolation - Each user can only access their own notes
  • Firestore Security Rules - Server-side data protection
  • Password Reset - Secure password recovery functionality
  • Environment Variables - No hardcoded secrets

πŸ“ Note Management

  • Auto-generated Titles - Titles automatically created from note content
  • Real-time Auto-save - Notes save automatically as you type
  • Quick Notes - Fast note creation from dashboard
  • Recent Notes - Easy access to your latest work
  • Note Statistics - Track your note-taking activity

πŸš€ Performance & Reliability

  • Next.js 15 - Latest framework with App Router
  • Vercel Speed Insights - Built-in performance monitoring
  • Optimized Loading - Fast page loads and smooth interactions
  • Error Handling - Graceful error states and user feedback

πŸ› οΈ Tech Stack

Technology Version Purpose
Next.js 15.5.0 React framework with App Router
React 19.1.0 UI library
Firebase 12.1.0 Authentication & Database
Firestore - NoSQL cloud database
Tailwind CSS 4.0 Utility-first CSS framework
Vercel - Deployment & hosting

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • Firebase project with Authentication and Firestore
  • Git

1. Clone the Repository

git clone https://github.com/cyberdime-dev/humble-notes.git
cd humble-notes

2. Install Dependencies

npm install

3. Set Up Firebase

Create Firebase Project

  1. Go to Firebase Console
  2. Create a new project
  3. Enable Google Authentication in Authentication β†’ Sign-in method
  4. Enable GitHub Authentication in Authentication β†’ Sign-in method
  5. Enable Email/Password in Authentication β†’ Sign-in method
  6. Create a Firestore Database in production mode

Get Firebase Configuration

  1. Go to Project Settings β†’ General
  2. Scroll down to "Your apps" section
  3. Click the web icon (</>) to add a web app
  4. Copy the configuration object

4. Configure Environment Variables

Create a .env.local file in the root directory:

NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key_here
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id

5. Set Up Firestore Security Rules

Deploy the security rules from firestore.rules to your Firebase project:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /notes/{noteId} {
      allow read, write, delete: if request.auth != null &&
        request.auth.uid == resource.data.userId;
      allow create: if request.auth != null &&
        request.auth.uid == request.resource.data.userId;
    }
  }
}

6. Create Firestore Index

Create a composite index in Firebase Console:

  • Collection: notes
  • Fields:
    • userId (Ascending)
    • updatedAt (Descending)

7. Run Development Server

npm run dev

Open http://localhost:3000 to see your app!

πŸ“± Usage

Getting Started

  1. Sign In/Sign Up - Choose Google, GitHub, or create an email/password account
  2. Create Notes - Use the "+" button or "Quick Note" feature
  3. Start Writing - Type in the textarea, titles auto-generate from first line
  4. Organize - View recent notes and track your activity

Features Overview

  • Dashboard - Overview of your notes and quick actions
  • Note Editor - Full-featured editor with auto-save
  • Sidebar - Quick access to all your notes
  • Theme Toggle - Switch between light and dark modes
  • Authentication - Google OAuth, GitHub OAuth, or Email/Password with password reset

πŸš€ Deployment

Deploy to Vercel (Recommended)

  1. Push to GitHub

    git add .
    git commit -m "Initial commit"
    git push origin main
  2. Connect to Vercel

    • Go to Vercel
    • Import your GitHub repository
    • Add environment variables in Vercel dashboard
    • Deploy!

Environment Variables for Production

Make sure to add all Firebase environment variables to your production environment in Vercel.

πŸ”§ Development

Available Scripts

npm run dev      # Start development server
npm run build    # Build for production
npm run start    # Start production server
npm run lint     # Run ESLint

Project Structure

humble-notes/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                 # Next.js App Router
β”‚   β”‚   β”œβ”€β”€ page.js         # Landing page
β”‚   β”‚   β”œβ”€β”€ notes/          # Notes application
β”‚   β”‚   └── layout.js       # Root layout
β”‚   β”œβ”€β”€ contexts/           # React contexts
β”‚   β”œβ”€β”€ services/           # Firebase services
β”‚   └── lib/               # Utilities
β”œβ”€β”€ public/                # Static assets
└── firestore.rules       # Firestore security rules

πŸ”’ Security

  • Authentication Required - All operations require valid user session
  • Data Isolation - Users can only access their own notes
  • Server-side Validation - Firestore security rules enforce access control

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

Development Guidelines

  • Follow existing code style
  • Add tests for new features
  • Update documentation as needed
  • Ensure all tests pass

πŸ“„ License

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

πŸ™ Acknowledgments

πŸ“ž Support


Made with ❀️ by John Norris @ Cyberdime

Stars Forks Issues

About

Humble Notes is a minimalist, privacy-focused note-taking app built with Next.js and Firebase. It offers secure Google/Apple/Email logins, real-time syncing with Firestore, and a clean distraction-free UI. Designed for speed, simplicity, and cross-device access, Humble Notes helps you capture ideas without the bloat of traditional apps.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •