Skip to content

kody-w/localFirstTools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

632 Commits
Sorry, we had to truncate this directory to 1,000 files. 216 entries were omitted from the list.
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Local First Tools ๐Ÿ› ๏ธ

A curated collection of 100+ self-contained HTML applications following the "local-first" philosophy. Every tool works completely offline, with no external dependencies, no build process, and no tracking.

https://kody-w.github.io/localFirstTools/index.html

License

Local First Tools Gallery

โœจ Features

  • ๐Ÿ”’ Offline-First: Every application works completely offline
  • ๐ŸŽฏ Zero Dependencies: No CDN links, no npm packages, no build process
  • ๐Ÿ“ฆ Self-Contained: Each HTML file is a complete application
  • ๐ŸŽจ Beautiful Gallery: Browse tools in a modern, animated gallery interface
  • ๐ŸŒ 3D Experience: Explore tools in an immersive 3D virtual gallery
  • ๐Ÿ’พ Data Privacy: All data stays local in your browser
  • ๐Ÿ“ฅ Import/Export: Full JSON import/export for data portability
  • ๐ŸŽฎ 100+ Tools: Games, creative tools, productivity apps, and more

๐Ÿš€ Quick Start

Option 1: Use Online

Visit the live gallery: kody-w.github.io/localFirstTools

Option 2: Run Locally

# Clone the repository
git clone https://github.com/kody-w/localFirstTools.git
cd localFirstTools

# Start a local server
python3 -m http.server 8000

# Open in browser
open http://localhost:8000

Option 3: Use Individual Tools

Each HTML file can be opened directly in your browser without any server. Just download and double-click!

๐Ÿ“‚ Project Structure

localFirstTools/
โ”œโ”€โ”€ index.html                    # Main gallery launcher
โ”œโ”€โ”€ vibe_gallery_config.json      # Auto-generated app registry
โ”œโ”€โ”€ tools-manifest.json           # Simple tool listing
โ”œโ”€โ”€ [100+ HTML apps]              # Self-contained applications
โ”œโ”€โ”€ vibe_gallery_updater.py       # Gallery metadata extractor
โ”œโ”€โ”€ update-tools-manifest.py      # Manifest generator
โ””โ”€โ”€ CLAUDE.md                     # Developer guide

๐ŸŽจ Application Categories

The gallery organizes applications into 9 thematic categories:

Category Description Examples
๐ŸŽจ Visual Art Interactive visual experiences and design tools Drawing apps, SVG editors, color palettes
๐ŸŒŒ 3D & Immersive Three-dimensional and WebGL experiences 3D worlds, VR experiences, games
๐ŸŽต Audio & Music Sound synthesis and music creation Drum machines, synthesizers, audio tools
๐ŸŽฎ Games & Puzzles Interactive games and playful experiences Card games, arcade games, puzzles
๐Ÿค– Experimental AI AI-powered interfaces and demos Chatbots, AI assistants, automation
๐Ÿ› ๏ธ Creative Tools Productivity and creative utilities Text editors, todo apps, converters
๐ŸŒ€ Generative Art Algorithmic art generation systems Procedural art, fractals, patterns
โš›๏ธ Particle & Physics Physics simulations and particle systems Physics engines, particle effects
๐Ÿ“š Educational Learning resources and tutorials Interactive tutorials, demos

๐Ÿ› ๏ธ Development

Adding a New Application

  1. Create a self-contained HTML file following the structure:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Your App Name</title>
    <meta name="description" content="Brief description">
    <style>
        /* All CSS inline here */
    </style>
</head>
<body>
    <!-- Your app UI -->
    <script>
        /* All JavaScript inline here */
    </script>
</body>
</html>
  1. Save to the root directory with a descriptive name: my-awesome-tool.html

  2. Update the gallery:

python3 vibe_gallery_updater.py
  1. Refresh the gallery to see your new tool!

Key Principles

  • โœ… Self-Contained: All CSS and JavaScript must be inline
  • โœ… No External Dependencies: No CDN links, no npm packages
  • โœ… Offline-First: Must work without internet connection
  • โœ… Data Import/Export: Include JSON import/export functionality
  • โœ… Responsive Design: Works on desktop and mobile devices
  • โœ… Local Storage: Use browser localStorage for persistence

Development Commands

# Update gallery configuration (extracts metadata from all HTML files)
python3 vibe_gallery_updater.py

# Quick shell wrapper
./update-gallery.sh

# Update tools manifest
python3 update-tools-manifest.py

# Watch for changes and auto-update
python3 vibe_gallery_watcher.py

# Run once and exit
python3 vibe_gallery_watcher.py --once

# Organize files into categories
python3 vibe_gallery_organizer.py

# Preview mode (shows what would be organized)
python3 vibe_gallery_organizer.py --dry-run

๐ŸŽฏ Auto-Categorization

The gallery automatically categorizes applications based on code analysis:

  • Keywords Detection: Scans for technology-specific keywords (3D, canvas, audio, game, etc.)
  • Metadata Extraction: Pulls title, description from HTML tags
  • Complexity Analysis: Determines simple/intermediate/advanced based on file size and features
  • Interaction Type: Identifies as game, drawing, visual, interactive, audio, or interface

Influencing Auto-Categorization

Include relevant keywords in your HTML:

<!-- Keywords: 3d, canvas, animation, physics -->

Or use specific technologies in your code:

  • 3D/WebGL: three.js, webgl, perspective
  • Canvas: canvas, getContext
  • Audio: webaudio, audiocontext
  • Game: game, score, player, level
  • Interactive: click, drag, touch
  • Generative: random, generate, procedural

๐Ÿ—๏ธ Architecture

Local-First Philosophy

Every application in this collection adheres to these principles:

  1. Privacy by Design: No data leaves your browser
  2. Offline Functionality: Works without internet connection
  3. No External Dependencies: Self-contained and portable
  4. Data Ownership: You control your data through import/export
  5. No Build Process: Open in any browser, no compilation needed

Gallery System

The gallery uses a dual-config system:

  • vibe_gallery_config.json: Rich metadata with categories, tags, complexity
  • tools-manifest.json: Simple file listing with timestamps

Both are auto-generated by scanning HTML files in the repository.

๐Ÿ“ฑ Browser Compatibility

  • โœ… Chrome/Edge (latest 2 versions)
  • โœ… Firefox (latest 2 versions)
  • โœ… Safari (latest 2 versions)
  • โœ… Mobile browsers (iOS Safari, Chrome Mobile)

๐Ÿค Contributing

Contributions are welcome! Here's how you can help:

  1. Add New Tools: Create self-contained HTML applications
  2. Improve Existing Tools: Enhance features, fix bugs, improve UX
  3. Documentation: Improve guides, add examples, create tutorials
  4. Testing: Report bugs, test on different browsers/devices

Contribution Guidelines

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-tool)
  3. Follow the development principles (self-contained, offline-first, no dependencies)
  4. Test in multiple browsers
  5. Update the gallery (python3 vibe_gallery_updater.py)
  6. Commit your changes (git commit -m 'Add amazing tool')
  7. Push to the branch (git push origin feature/amazing-tool)
  8. Open a Pull Request

๐Ÿ“„ License

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

๐ŸŒŸ Acknowledgments

  • Built with vanilla HTML, CSS, and JavaScript
  • 3D gallery powered by Three.js (only external dependency in gallery)
  • Inspired by the local-first software movement

๐Ÿ”— Links

๐Ÿ“Š Stats

Tools Count Categories No Dependencies Offline First


Made with โค๏ธ for the local-first community

About

localFirstTools

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •