MCPcopy Index your code
hub / github.com/Dyan-Dev/dyan

github.com/Dyan-Dev/dyan @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
86 symbols 214 edges 47 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Dyan Logo

Dyan

Visually build, test, and deploy REST APIs without backend boilerplate

🌐 dyan.live


🔥 Key Features

  • 🧱 Visual REST API builder
  • ⚙️ Supports GET, POST, PUT, DELETE
  • ✍️ Write endpoint logic in JavaScript (Python support coming soon)
  • ⚡ Instant test mode with live input/output
  • 🧪 Validate logic before execution
  • 💻 Self-hosted & open-source

🎥 Demo Video

Watch the demo

Watch how Dyan lets you build, test, and run APIs in seconds with no backend boilerplate.


🚀 Getting Started

Choose your preferred setup method:

Option 1: 🐳 Docker (Recommended)

The fastest way to get Dyan running with production-ready containers.

Prerequisites

1. Clone the repo

git clone https://github.com/dyan-dev/dyan.git
cd dyan

2. Set up environment variables

Create a .env file in the project root:

# .env
JWT_SECRET=your_super_secret_jwt_key
VITE_API_URL=http://backend:3000

3. Build and run

docker compose up --build

That's it! 🚀 Visit http://localhost:5173 to start building your APIs.

Managing Docker setup

# Stop services
docker compose down

# Remove all data (including database)
docker compose down -v

Option 2: 🛠️ Local Development

For contributors or those who want to modify the source code.

1. Clone the repo

git clone https://github.com/dyan-dev/dyan.git
cd dyan

2. Install dependencies

Make sure you have pnpm installed.

pnpm install

3. Set up your environment

cp .env.example .env

To skip email sending in development:

EMAIL_MOCK=true

Note: The magic link will be printed on console of backend.

4. Run backend and frontend

In the root folder, run:

# Start the frontend (localhost:5173)
pnpm --filter frontend dev

# Start the backend (localhost:3000)
pnpm --filter backend exec prisma generate
pnpm --filter backend exec prisma migrate deploy
pnpm --filter backend dev

Visit http://localhost:5173 to start building your APIs.


📦 Architecture

  • Frontend: React + Tailwind CSS
  • Backend: NestJS (TypeScript)
  • Sandbox Runtime: Secure execution via vm2
  • Database: Local SQLite (PostgreSQL/MySQL support planned)

💡 Example Use Cases

  • Build and test REST APIs visually — no backend required
  • Quickly prototype business logic for internal tools
  • Share and collaborate on API logic
  • Host a lightweight backend API layer in seconds

🧪 Project Status

This is an early-stage project in active development.

  • ✅ Supports: GET, POST, PUT, DELETE
  • ✨ JavaScript logic + runtime
  • 🧪 Input/output testing panel
  • ⏳ Python support coming soon
  • 💬 Community contributions welcome!

🤝 Contributing

We welcome issues, feature ideas, and PRs from the community.

Start with good first issue tags or join our Discord to chat and collaborate.


📄 License

MIT © Dyan Dev

Extension points exported contracts — how you extend this code

RouteSchema (Interface)
(no doc)
packages/codegen/src/index.ts
Props (Interface)
(no doc)
apps/frontend/src/components/LiveIOPanel.tsx
Endpoint (Interface)
(no doc)
apps/backend/src/endpoint.store.ts
Endpoint (Interface)
(no doc)
apps/frontend/src/components/SavedEndpointsSidebar.tsx
SidebarProps (Interface)
(no doc)
apps/frontend/src/components/SavedEndpointsSidebar.tsx
ButtonProps (Interface)
(no doc)
apps/frontend/src/components/ui/button.tsx
BadgeProps (Interface)
(no doc)
apps/frontend/src/components/ui/badge.tsx

Core symbols most depended-on inside this repo

cn
called by 34
apps/frontend/src/lib/utils.ts
boilerplate
called by 5
apps/frontend/src/lib/utils.ts
validateJSONWithDetails
called by 3
apps/frontend/src/components/LiveIOPanel.tsx
getValidationIcon
called by 3
apps/frontend/src/components/LiveIOPanel.tsx
validateJS
called by 2
apps/frontend/src/lib/utils.ts
handleBodyChange
called by 1
apps/frontend/src/components/LiveIOPanel.tsx
handleHeadersChange
called by 1
apps/frontend/src/components/LiveIOPanel.tsx
handleQueryChange
called by 1
apps/frontend/src/components/LiveIOPanel.tsx

Shape

Function 35
Method 24
Class 20
Interface 7

Languages

TypeScript100%

Modules by API surface

apps/frontend/src/pages/builder.tsx8 symbols
apps/frontend/src/components/LiveIOPanel.tsx7 symbols
apps/backend/src/endpoint/endpoint.controller.ts7 symbols
apps/backend/src/endpoint.store.ts7 symbols
apps/backend/src/auth/auth.controller.ts7 symbols
apps/frontend/src/components/SavedEndpointsSidebar.tsx5 symbols
apps/backend/src/auth/auth.service.ts5 symbols
apps/backend/src/auth/jwt.middleware.ts4 symbols
apps/backend/src/app.controller.ts4 symbols
apps/frontend/src/pages/login.tsx3 symbols
apps/frontend/src/lib/utils.ts3 symbols
apps/frontend/src/context/ThemeContext.tsx3 symbols

For agents

$ claude mcp add dyan \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact