Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
완성된 퍼즐을 새 집으로 옮기고 다음 도전을 찾아보세요! JigSwap은 Next.js와 Convex 기반 오픈소스 퍼즐 거래 플랫폼입니다
Find a new home for your finished puzzles and discover your next challenge! JigSwap is an open-source puzzle trading platform powered by Next.js and Convex.
금융TypeScript · CSSGitHub @SanderVerkuil온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
JigSwap - Personal Puzzle Library & Exchange Platform
A comprehensive platform for jigsaw puzzle enthusiasts to manage their personal collections, track completion history, and engage in various types of puzzle exchanges. Built with Next.js 15, Convex, Clerk, and Tailwind CSS.
JigSwap is a family side project born from our own need to easily see and exchange puzzles with friends and family. What started as a simple solution for our puzzle-loving family has grown into a platform for the broader puzzle community.README 전문 보기 ↗A comprehensive platform for jigsaw puzzle enthusiasts to manage their personal collections, track completion history, and engage in various types of puzzle exchanges. Built with Next.js 15, Convex, Clerk, and Tailwind CSS.
JigSwap is a family side project born from our own need to easily see and exchange puzzles with friends and family. What started as a simple solution for our puzzle-loving family has grown into a platform for the broader puzzle community.
JigSwap began as a family side project in 2025. We were tired of constantly asking friends and family "What puzzles do you have?" and wanted an easy way to see and exchange puzzles within our circle. What started as a simple solution for our puzzle-loving family has grown into a platform that serves the broader puzzle community.
Our mission is to make puzzle sharing sustainable, accessible, and enjoyable for everyone - whether you're trading with family members or connecting with fellow enthusiasts worldwide.
Before you begin, ensure you have the following installed:
Clone the repository
git clone https://github.com/SanderVerkuil/jigswap.git
cd jigswap
Install dependencies This project is a pnpm workspace monorepo (tasks run via Turborepo):
pnpm install
The repo uses TypeScript 7 only. In VS Code, install the
TypeScript 7 extension
(TypeScriptTeam.native-preview), because TS 7 doesn't ship the tsserver.js the
built-in TypeScript support needs. See CONTRIBUTING.md.
Set up environment variables Copy the example environment file and fill in your values:
cp apps/web/.env.example apps/web/.env.local
Fill in the required environment variables in apps/web/.env.local:
Set up Convex
cd packages/backend
pnpm convex:dev
This will:
Start the development server In a separate terminal, from the root directory:
pnpm dev
Open your browser Navigate to http://localhost:3000
Create a .env.local file in the apps/web directory with the following variables:
# Convex Backend
CONVEX_DEPLOYMENT=dev:your-deployment-name
NEXT_PUBLIC_CONVEX_URL=https://your-convex-deployment.convex.cloud
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
NEXT_PUBLIC_CLERK_FRONTEND_API_URL=https://your-clerk-frontend.clerk.accounts.dev
# Crowdin Localization (Optional)
CROWDIN_PROJECT_ID=your_crowdin_project_id
CROWDIN_API_TOKEN=your_crowdin_api_token
NEXT_PUBLIC_CROWDIN_DISTRIBUTION_HASH=your_crowdin_distribution_hash
apps/web/.env.localcd packages/backendpnpm convex:dev to set up your Convex projectapps/web/.env.locallocales/source.json)jigswap/
├── apps/
│ └── web/ # Next.js 15 frontend application
│ ├── src/
│ │ ├── app/ # Next.js App Router pages
│ │ │ ├── (auth)/ # Authentication pages
│ │ │ └── (dashboard)/ # Protected dashboard pages
│ │ ├── components/ # React components
│ │ │ └── ui/ # Reusable UI components
│ │ └── lib/ # Utility functions and providers
│ ├── locales/ # Internationalization files
│ │ └── source.json # Source translations
│ ├── public/ # Static assets
│ ├── .env.local # Environment variables
│ ├── next.config.ts # Next.js configuration
│ └── package.json # Web app dependencies
├── packages/
│ └── backend/ # Convex backend functions and schema
│ ├── convex/ # Convex functions and schema
│ │ ├── schema.ts # Database schema
│ │ ├── users.ts # User functions
│ │ ├── puzzles.ts # Puzzle functions
│ │ ├── collections.ts # Collection management
│ │ ├── completions.ts # Completion tracking
│ │ ├── exchanges.ts # Exchange system
│ │ └── reviews.ts # Review system
│ └── package.json # Backend dependencies
├── spec/ # Platform specifications
│ ├── README.md # Main specification document
│ ├── database-schema.md # Database schema specification
│ ├── user-interface.md # UI/UX specification
│ ├── api-specification.md # API specification
│ └── feature-roadmap.md # Development roadmap
├── package.json # Root workspace configuration
├── turbo.json # Turborepo task pipeline
└── pnpm-workspace.yaml # pnpm workspace configuration
pnpm dev - Start development server for web app with Turbopackpnpm dev:web - Start web app development serverpnpm build - Build all projectspnpm build:web - Build web app for productionpnpm start - Start production server for web apppnpm start:web - Start web app production serverpnpm lint - Run oxlint on all projectspnpm lint:fix - Fix oxlint errors on all projectspnpm type-check - Run TypeScript type checking on all projectspnpm test - Run tests on all projectspnpm clean - Clean build artifacts and the Turborepo cachepnpm format - Format code with Prettierpnpm graph - Write the task graph to graph.htmlpnpm dev - Start Next.js development server with Turbopackpnpm build - Build for productionpnpm start - Start production serverpnpm lint - Run oxlintpnpm lint:fix - Fix oxlint errorspnpm type-check - Run TypeScript type checkingpnpm build:analyze - Build with bundle analyzerpnpm build:production - Build with production environmentpnpm preview - Build and start production serverpnpm clean - Clean build artifactspnpm crowdin:upload - Upload source translationspnpm crowdin:download - Download translationspnpm convex:dev - Start Convex development serverpnpm convex:deploy - Deploy Convex functions to productionJigSwap supports multiple languages using next-intl and Crowdin:
The application uses Convex with the following main entities:
The application can be deployed to any platform that supports Next.js:
git checkout -b feature/amazing-featuregit commit -m 'feat: add amazing feature'git push origin feature/amazing-featurePlease follow the Conventional Commits specification for commit messages.
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions or need help, please:
Made with ❤️ by a puzzle-loving family for the jigsaw puzzle community