A directory for MeshCore contact details, allowing users to find each other
Find a file
2026-04-01 14:47:24 +02:00
.claude Initial commit 2026-04-01 14:47:24 +02:00
prisma Initial commit 2026-04-01 14:47:24 +02:00
src Initial commit 2026-04-01 14:47:24 +02:00
static Initial commit 2026-04-01 14:47:24 +02:00
.dockerignore Initial commit 2026-04-01 14:47:24 +02:00
.gitignore Initial commit 2026-04-01 14:47:24 +02:00
.npmrc Initial commit 2026-04-01 14:47:24 +02:00
ARCHITECTURE.md Initial commit 2026-04-01 14:47:24 +02:00
CLAUDE.md Initial commit 2026-04-01 14:47:24 +02:00
CONTRIBUTING.md Initial commit 2026-04-01 14:47:24 +02:00
docker-compose.yml Initial commit 2026-04-01 14:47:24 +02:00
docker-entrypoint.sh Initial commit 2026-04-01 14:47:24 +02:00
Dockerfile Initial commit 2026-04-01 14:47:24 +02:00
package-lock.json Initial commit 2026-04-01 14:47:24 +02:00
package.json Initial commit 2026-04-01 14:47:24 +02:00
PRODUCT.md Initial commit 2026-04-01 14:47:24 +02:00
README.md Initial commit 2026-04-01 14:47:24 +02:00
svelte.config.js Initial commit 2026-04-01 14:47:24 +02:00
tsconfig.json Initial commit 2026-04-01 14:47:24 +02:00
vite.config.ts Initial commit 2026-04-01 14:47:24 +02:00

MC Yellow Pages

A MeshCore public key registry where users can register and look up MeshCore public keys.

Tech Stack

  • SvelteKit — Full-stack framework
  • TypeScript — Type safety
  • Tailwind CSS — Styling
  • Prisma — ORM with SQLite database

Getting Started

Prerequisites

  • Node.js 18+
  • npm

Setup

# Install dependencies
npm install

# Generate Prisma client
npx prisma generate

# Run database migrations
npx prisma migrate dev

# Start dev server
npm run dev

The app will be available at http://localhost:5173.

Database

The project uses SQLite, stored locally as prisma/dev.db.

# View database in browser
npx prisma studio

# Create a new migration after editing schema.prisma
npx prisma migrate dev --name <migration_name>

Project Structure

src/
├── lib/
│   ├── server/
│   │   └── prisma.ts         # Prisma client instance
│   └── validation.ts         # Public key validation
├── routes/
│   ├── +layout.svelte        # App layout with nav
│   ├── +page.svelte          # Browse / search directory
│   ├── +page.server.ts       # Directory data loading
│   └── register/
│       ├── +page.svelte      # Registration form
│       └── +page.server.ts   # Form action (validation + insert)
├── app.css                   # Tailwind CSS
└── app.html                  # HTML shell
prisma/
├── schema.prisma             # Database schema
└── migrations/               # Migration history

Features

  • Register a MeshCore public key with display name, location, and description
  • Browse all registered keys
  • Search by name, key, location, or description
  • Validation of 64-character hex public keys (client + server)
  • Duplicate detection — prevents registering the same key twice