Skip to content

DomainThings/DomainThings.dev

Repository files navigation

🌐 DomainThings

A modern Progressive Web App for domain analysis and management

CodeQL External Services


🎯 Overview

DomainThings is a Progressive Web Application that allows you to search for domain availability and track domains of interest. Built with modern web standards and focusing on client-side processing for privacy, it provides a fast and reliable domain analysis experience.

πŸ† Key Benefits

  • πŸ”’ Privacy-First: No server-side data storage - everything stays in your browser
  • ⚑ Fast Performance: Quick domain lookups with intelligent caching
  • πŸ“± Progressive Web App: Installable as a native app with service worker support
  • 🎨 Modern Design: Clean, responsive interface with dark/light theme support
  • πŸ”§ Developer-Friendly: Built with TypeScript and modern tooling

✨ Features

πŸ” Domain Search

  • DNS Analysis: Domain availability checking using Cloudflare's DNS-over-HTTPS
  • RDAP Data: Registry information via IANA's RDAP bootstrap services
  • Multi-TLD Search: Search across all available top-level domains
  • Smart Results: Intelligent domain availability assessment

οΏ½ Domain Management

  • Watch List: Bookmark and track domains of interest
  • TLD Bookmarks: Save favorite extensions for quick searching
  • Search History: Navigate through your search queries
  • Local Storage: All data stored locally for privacy

πŸ› οΈ Technical Features

  • Service Worker: Background caching and PWA functionality
  • Smart Caching: DNS and RDAP response caching for better performance
  • Error Handling: Robust error recovery with user-friendly messages
  • Responsive Design: Works seamlessly on desktop and mobile devices

πŸ—οΈ Architecture

Tech Stack

Vue 3 + Composition API  β†’  Modern reactive framework with TypeScript
Pinia                    β†’  State management for search and app data
Vue Router               β†’  Client-side routing with query parameters
TailwindCSS              β†’  Utility-first CSS framework
IndexedDB (via idb)      β†’  Client-side data persistence

Build Tools

Vite                     β†’  Fast development and optimized builds
TypeScript               β†’  Type safety and better developer experience
Workbox                  β†’  Service worker and PWA features
ESLint                   β†’  Code quality and consistency

External Services

Cloudflare DNS           β†’  DNS-over-HTTPS for domain lookups
IANA RDAP               β†’  Official domain registry data
Cloudflare Pages        β†’  Static hosting and deployment

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm
  • Modern web browser
  • Git

Installation

# Clone the repository
git clone https://github.com/DomainThings/DomainThings.dev.git
cd DomainThings.dev

# Install dependencies
npm install

# Start development server
npm run dev

Development Commands

# Development server with hot reload
npm run dev

# Type checking
npm run type-check

# Build for production
npm run build

# Preview production build
npm run preview

Production Build

# Build optimized bundle
npm run build

# Files will be generated in dist/ directory

πŸ“± Progressive Web App

PWA Features

  • Service Worker: Automatic caching and background updates
  • Installable: Add to home screen on mobile and desktop
  • Responsive: Optimized for all screen sizes
  • Fast Loading: Precached resources for instant loading

Installation

  • Desktop: Look for the install prompt in your browser
  • Mobile: Use "Add to Home Screen" from your browser menu

πŸ”§ Technical Details

Data Storage

  • IndexedDB: Local storage for bookmarked domains and TLDs
  • Browser Cache: DNS and RDAP responses cached for performance
  • No Server Storage: All data remains on your device

API Integration

  • DNS Service: Uses Cloudflare's 1.1.1.1 DNS-over-HTTPS
  • RDAP Service: Connects to official registry providers via IANA bootstrap
  • Error Handling: Comprehensive error recovery and user feedback

Performance

  • Caching Strategy: Intelligent caching of DNS and RDAP responses
  • Code Splitting: Optimized bundle loading with vendor chunks
  • Lazy Loading: Components and routes loaded on demand

🀝 Contributing

We welcome contributions! Here's how to get started:

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-feature)
  3. Make your changes with proper TypeScript types
  4. Test your changes thoroughly
  5. Commit with clear messages (git commit -m 'Add: new feature')
  6. Push to your branch (git push origin feature/new-feature)
  7. Open a Pull Request

Code Standards

  • Follow existing TypeScript and Vue 3 patterns
  • Use the Composition API for new components
  • Maintain responsive design principles
  • Add proper error handling and user feedback

πŸ“„ License

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


πŸ™ Acknowledgments


Built with ❀️ for the domain community

About

A modern PWA for domain analysis and management

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages