Skip to content

ny-collins/curiosity-pwa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

31 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Curiosity PWA

Your personal jotter for documenting questions, discoveries, goals, and ideas

A modern, secure, and beautiful Progressive Web App for jotting down notes, tracking goals, and personal knowledge management. Built with React 19, Firebase, and WebAuthn biometric authentication.

Version PWA React Firebase License

🌐 Live Preview

Try Curiosity PWA live: https://curiosity-pwa.web.app

✨ Features

Core Functionality

  • πŸ“ Rich Text Editing - Create entries with markdown support and rich text editing
  • πŸ“… Calendar View - Visualize your timeline with an interactive calendar
  • 🎯 Goals & Tasks - Track personal goals and daily tasks with progress indicators
  • πŸ”’ Secure Vault - Store sensitive information with PIN and biometric protection
  • πŸ”” Smart Reminders - Get notified for important dates (requires app to be open)
  • πŸ“Š Data Export - Export your data to PDF, JSON, or Markdown
  • 🎁 On This Day - Revisit memories from past years
  • πŸ” Search & Filter - Quickly find entries with powerful search

Beautiful Design

  • 🎨 Animated Dashboard - Vibrant dashboard with Framer Motion animations
  • πŸŒ“ Dark Mode - System-aware theme switching
  • 🎨 6 Accent Colors - Teal, Blue, Purple, Rose, Amber, Emerald
  • πŸ“ 4 Font Families - Inter, Lora, Merriweather, Roboto Mono
  • πŸ“± Mobile-First - Optimized for mobile with hamburger navigation
  • ✨ Live Preview - See theme changes in real-time during setup

Security & Privacy

  • πŸ” Biometric Auth - WebAuthn support for fingerprint/face unlock
  • πŸ”‘ PIN Lock - Secure PIN-based app protection with configurable timeout
  • οΏ½ Local-First - IndexedDB storage for offline-first architecture
  • ☁️ Optional Cloud Sync - Firebase sync when you need it
  • οΏ½ Secure Encryption - Client-side encryption for sensitive data

Progressive Web App

  • πŸ“² Installable - Add to home screen on mobile and desktop
  • ⚑ Offline Support - Full functionality without internet
  • πŸ”„ Auto-Updates - Seamless updates via service worker
  • πŸš€ Fast Loading - Optimized with code splitting and caching

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm
  • Firebase CLI (for deployment)
  • Git

Local Development

# Clone the repository
git clone https://github.com/ny-collins/curiosity-pwa.git
cd curiosity-pwa

# Install dependencies
npm install

# Create environment file
cp .env.example .env
# Edit .env with your Firebase config

# Start development server
npm run dev

The app will be available at http://localhost:5173

Production Build

# Build for production
npm run build

# Preview production build
npm run preview

Deployment

See the Deployment Guide for detailed instructions on deploying to Firebase, Vercel, or Netlify.

πŸ“– Documentation

Comprehensive documentation is available in the docs/ folder:

Getting Started

Technical Documentation

User & Contributor Guides

Release Information

πŸ—οΈ Tech Stack

Frontend

  • React 19.1.1 - Latest React with modern hooks
  • Vite 7.1.7 - Lightning-fast build tool and dev server
  • Tailwind CSS 3.4.4 - Utility-first CSS framework
  • Framer Motion 12.23.24 - Beautiful animations and transitions
  • Lucide React 0.546.0 - Modern icon library
  • Dexie 4.0.8 - IndexedDB wrapper for offline storage
  • React Calendar - Interactive calendar component
  • React Markdown - Markdown rendering

Backend & Infrastructure

  • Firebase 12.4.0 - Backend-as-a-Service platform
    • Firestore - NoSQL database with real-time sync
    • Cloud Functions - Serverless backend
    • Firebase Auth - User authentication (Google OAuth)
    • Firebase Hosting - CDN-backed hosting
    • Cloud Storage - Secure file storage
  • SimpleWebAuthn - WebAuthn biometric authentication
  • bcrypt-ts - Secure password hashing

PWA & Performance

  • Vite PWA Plugin - Service worker generation
  • Workbox - Advanced caching strategies
  • Code Splitting - Optimized bundle sizes
  • Service Worker - Offline-first architecture

🎨 Design Philosophy

Curiosity embraces a mobile-first, local-first, privacy-focused approach:

  • Beautiful & Vibrant - Animated dashboard with delightful interactions
  • Mobile-First - Optimized for mobile with responsive design
  • Local-First - Your data stays on your device by default
  • Privacy-Focused - PIN lock and biometric authentication
  • Customizable - Multiple themes, fonts, and colors
  • Accessible - Keyboard navigation and screen reader support
  • Fast - Optimized for performance and battery life

πŸ“Š Project Structure

curiosity-pwa-vite/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/         # React components
β”‚   β”‚   β”œβ”€β”€ Dashboard.jsx   # Animated dashboard with Framer Motion
β”‚   β”‚   β”œβ”€β”€ ModernEditor.jsx # Rich text editor
β”‚   β”‚   β”œβ”€β”€ SettingsPage.jsx # Settings and customization
β”‚   β”‚   β”œβ”€β”€ CalendarView.jsx # Calendar visualization
β”‚   β”‚   β”œβ”€β”€ PinLockScreen.jsx # PIN authentication
β”‚   β”‚   └── ...             # Other components
β”‚   β”œβ”€β”€ contexts/
β”‚   β”‚   β”œβ”€β”€ AppContext.jsx  # Global app state
β”‚   β”‚   └── StateProvider.jsx # State management
β”‚   β”œβ”€β”€ constants.js        # App constants and config
β”‚   β”œβ”€β”€ firebaseConfig.js   # Firebase initialization
β”‚   β”œβ”€β”€ db.js              # IndexedDB setup (Dexie)
β”‚   └── utils.js           # Utility functions
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ icons/             # PWA icons
β”‚   └── manifest.json      # PWA manifest
β”œβ”€β”€ functions/             # Firebase Cloud Functions
β”œβ”€β”€ docs/                  # Documentation
β”œβ”€β”€ firebase.json          # Firebase configuration
β”œβ”€β”€ firestore.rules        # Firestore security rules
β”œβ”€β”€ vite.config.js         # Vite configuration
└── package.json           # Dependencies

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

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

πŸ“„ License

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

πŸ™ Acknowledgments

πŸ“ž Support


Made with ❀️ by Collins β€’ Version 1.0.1 β€’ November 2025

About

Resources

License

Contributing

Stars

Watchers

Forks

Contributors