Skip to content

Local-First NoSQL Database Client

DocKit is built on a local-first architecture, meaning all your queries, connection profiles, and data stay on your machine. No cloud sync, no external servers, no telemetry.

What Does Local-First Mean?

A local-first application prioritizes local data storage and processing over cloud-based alternatives:

  • Data Lives on Your Device: Queries, connections, and settings stored locally
  • Works Offline: Full functionality without internet connection
  • No External Dependencies: Doesn't require cloud services to function
  • Privacy by Design: Your data never leaves your control

Why Local-First Matters for Database Tools

🔒 Security & Compliance

Many organizations have strict requirements about data handling:

  • Air-Gapped Environments: Work in isolated networks without internet
  • HIPAA/SOC2 Compliance: Keep sensitive query data on-premise
  • Financial Services: Meet regulatory requirements for data residency
  • Government/Military: Security clearance environments

Example Use Cases:

  • Healthcare: Query patient databases without exposing PHI to cloud services
  • Banking: Manage production databases with complete audit trail
  • Defense: Database management in classified environments

⚡ Performance Benefits

Local-first design means faster operations:

OperationCloud-Based ToolDocKit (Local-First)
App Launch5-10s (fetch config)< 2s (local read)
Query LoadNetwork requestInstant (local file)
Connection SwitchAPI callInstant (local profile)
Query SaveUpload to cloudInstant (local write)

💾 Data Ownership

You control where and how your data is stored:

  • File Format: Plain text files (JSON, SQL, PartiQL)
  • Location: Choose your storage directory
  • Backup: Use your own backup strategy (Time Machine, cloud sync of your choice)
  • Version Control: Commit queries to Git

How DocKit Implements Local-First

1. Query Storage

All queries saved as individual files:

~/DocKit/
  queries/
    dynamodb/
      get-user-by-email.partiql
      list-active-orders.partiql
    elasticsearch/
      search-products.json
      aggregate-sales.json

Benefits:

  • Easy to organize (folders, tags)
  • Git-friendly (commit, diff, share with team)
  • No vendor lock-in (plain text)
  • Works with any text editor

2. Connection Profiles

Encrypted local storage for database credentials:

json
{
  "name": "Production DynamoDB",
  "type": "dynamodb",
  "region": "us-east-1",
  "accessKeyId": "ENCRYPTED",
  "secretAccessKey": "ENCRYPTED"
}

Security Features:

  • Credentials encrypted with OS keychain (macOS Keychain, Windows Credential Manager)
  • Never transmitted over network
  • Not stored in plain text
  • Isolated per OS user account

3. Application Settings

All preferences stored locally:

  • Editor theme and font size
  • Keyboard shortcuts
  • UI layout preferences
  • Recent connections
  • Query history

Location:

  • macOS: ~/Library/Application Support/DocKit/
  • Windows: %APPDATA%/DocKit/
  • Linux: ~/.config/DocKit/

Local-First vs. Cloud-Sync Tools

FeatureDocKit (Local-First)Cloud Tools (Dynobase, etc.)
Query StorageLocal filesCloud database
Works Offline✅ Full features❌ Limited or none
Data Privacy✅ Never leaves device⚠️ Synced to vendor servers
Network RequiredOnly for DB connectionFor app features too
Compliance✅ Air-gap compatible❌ External dependency
Team SharingVia Git/shared drivesBuilt-in cloud sync
Backup StrategyYour choiceVendor-controlled
Vendor Lock-in❌ Plain files⚠️ Proprietary format

Use Cases for Local-First Database Tools

Development & Testing

DynamoDB Local Development:

bash
# Run DynamoDB Local in Docker
docker run -p 8000:8000 amazon/dynamodb-local

# Connect DocKit to localhost:8000
# No AWS credentials or internet required

DocKit works perfectly with:

  • DynamoDB Local
  • Elasticsearch in Docker
  • OpenSearch local instances
  • LocalStack

Production Access in Restricted Networks

Organizations with strict network policies:

  1. Jump Hosts: Install DocKit on bastion servers
  2. VPN-Only Access: Work with internal databases without internet
  3. Proxy Environments: No external traffic to worry about

Consulting & Client Work

Manage multiple client databases without mixing credentials:

  • Separate Profiles: One connection profile per client
  • Isolated Queries: Organize queries by project folders
  • No Cross-Contamination: Each client's data stays separate
  • Easy Handoff: Export connection profile (encrypted) for team members

Privacy & Telemetry

DocKit's local-first philosophy extends to telemetry:

What DocKit DOES NOT collect:

  • ❌ Query content or patterns
  • ❌ Database credentials
  • ❌ Connection strings or endpoints
  • ❌ Usage analytics
  • ❌ Error reports (unless you opt-in)
  • ❌ Device identifiers

What DocKit DOES do:

  • ✅ Crash reports (opt-in only, with your approval)
  • ✅ Anonymous feature usage (opt-in only)
  • ✅ Version check (to notify about updates)

All telemetry is opt-in, not opt-out.

Comparing to Other Database Clients

Cloud-First Tools (TablePlus Cloud, Dynobase)

Pros:

  • Easy team collaboration
  • Cross-device sync
  • Automatic backups

Cons:

  • Requires internet for core features
  • Data stored on vendor servers
  • Monthly subscription fees
  • Compliance/security concerns

Browser-Based (AWS Console, Kibana)

Pros:

  • No installation required
  • Always up-to-date

Cons:

  • Requires active connection
  • No offline query building
  • Tab-based (easy to lose work)
  • Performance overhead

DocKit (Local-First)

Pros:

  • Complete offline functionality
  • Data never leaves your device
  • Fast performance
  • Free and open-source

Cons:

  • Manual sync for team sharing (via Git)
  • Each device has separate query storage

Team Collaboration with Local-First

Q: How do teams share queries without cloud sync?

A: Git-based workflows

bash
# Create a shared repository for queries
git init dockit-queries
cd dockit-queries

# Add your queries
cp ~/DocKit/queries/*.partiql ./
git add .
git commit -m "Add user query templates"
git push

# Team members pull updates
git pull

Benefits:

  • Version control built-in
  • Code review process for queries
  • Blame/history for audit trails
  • Works with existing Git workflows

Getting Started with Local-First Workflow

1. Install DocKit

Download from dockit.geekfun.club/download

2. Choose Your Query Directory

On first launch, select where to store queries:

  • Default: ~/DocKit/queries/
  • Custom: Any folder (e.g., ~/Projects/client-queries/)

3. Set Up Connections

Create connection profiles for your databases (stored encrypted locally)

4. Start Querying

All queries automatically saved to your chosen directory

5. (Optional) Set Up Git Sync

bash
cd ~/DocKit/queries
git init
git remote add origin <your-repo>

Learn More


Questions about local-first architecture? Check our docs or open an issue on GitHub.