Skip to content

dr5hn/ilovejson

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

116 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

I ❤️ JSON

Free, open-source online tools to convert, transform, and work with JSON files.

Live: ilovejson.com

Features

  • 20+ Conversion Tools — JSON to/from CSV, YAML, XML, PHP, Markdown, HTML, TOML, SQL, TypeScript, Excel
  • Utility Tools — Beautify, Minify, Compress, Validate, Viewer, Editor, Repair, Diff, Merge, Query, Faker, Generate Schema
  • File Upload — Drag-and-drop with up to 100MB file support
  • Keyboard Shortcuts — Cmd/Ctrl+Enter to process, Escape to reset
  • Privacy First — Files are automatically deleted after 30 minutes

Prerequisites

Getting Started

# Install dependencies
npm install

# Start development server (runs on port 3002)
npm run dev

The dev server runs on port 3002.

Using Docker

docker-compose up

Enabling Authentication (optional)

Authentication is off by default. To enable it:

  1. Copy the example env file:

    cp .env.example .env.local
  2. Set DATABASE_URL to a PostgreSQL connection string (e.g. Neon, Supabase, or local Postgres).

  3. Run Prisma migrations:

    DATABASE_URL=your-url npx prisma@7.2.0 migrate dev
  4. Set NEXTAUTH_SECRET (generate one with openssl rand -base64 32).

  5. Add credentials for any providers you want:

    • Magic link — set EMAIL_SERVER and EMAIL_FROM.
      Dev shortcut: leave these blank and magic links are printed to the server console instead.
    • Google OAuth — set GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET.
    • GitHub OAuth — set GITHUB_ID and GITHUB_SECRET.

Providers not configured are silently skipped. The app works without auth for all conversion tools.

Development Commands

npm run dev          # Start dev server (port 3002)
npm run build        # Build for production
npm start            # Start production server (port 3000)
npm run lint         # Run linting
npm run lint:fix     # Fix lint issues

Project Structure

pages/
  [slug].tsx         # Dynamic conversion tool pages
  api/               # API routes for all conversions
  viewer/            # JSON viewer
  diff/              # JSON diff tool
  repair/            # JSON repair tool
  faker.jsx          # Fake data generator
  merge.jsx          # JSON merge tool
  query.jsx          # JSON query tool
  dashboard/         # User dashboard (auth required)
src/
  components/        # React components
  constants/         # Tool definitions, MIME types
  middleware/        # API middleware (rate limit, file parser)
  utils/             # Shared utilities
  hooks/             # Custom React hooks
  lib/               # Auth and Prisma config
styles/              # Tailwind CSS
prisma/              # Prisma schema and migrations

Contributing

Contributions, bug reports, and feature requests are welcome on GitHub.

Contributors

Made with contrib.rocks.

Sponsors

Make the world more Greener 🌴

Contribute towards a better earth by buying the world a tree.

Follow me at

Github @dr5hn Twitter @dr5hn LinkedIn @dr5hn

License

Open source. See repository for details.

Powered by Next.js

To learn more about Next.js, take a look at the following resources: