Skip to content

DeukPack kits lineup

Lineup & portal (overview): stack introductions, clone URLs, and shared prerequisites—what each kit is and where it lives. (The starter-kits URL slug stays for existing links.)

!!! info "Overview vs kits documentation site" This page (deukpack.app/starter-kits): overview—what to clone and what you need up front.
Hands-on labs, copy-paste drills, the Ruins course, saga journey, and topic pages for walking the kits end-to-end live on the official kits site kits.deukpack.app (same navigation as the StarterKit/ READMEs).

!!! note "Growing under “Kits” (roadmap)" Main-line kits (StarterKit/) and the app-kit (AppKit/) teaser are expected to open and deepen over time under the DeukPack Kits umbrella—docs, templates, and teaser areas without a fixed product ship calendar. Watch kits.deukpack.app for what unlocks next.

Each kit lives in a separate repository from the core (or a folder in the unified repo); its README lists required tools, codegen commands, and build steps.

Note: Some kits may not have repositories yet. If a link shows TBD, try the DeukPack OSS GitHub · DeukPackKits (unified) · DeukPackKitsOSS · npm deukpack · core examples first.

Unified kits repository (GitHub)
- joygram/DeukPackKits — Unity, C++, Network, TypeScript, and other stack samples in one repo. git clone https://github.com/joygram/DeukPackKits.git
- Kits docs site (hands-on · journey): kits.deukpack.app — public MkDocs (KO/EN); in-site links match the repo README scheme.
- joygram/DeukPackKitsOSS — OSS-oriented clone. git clone https://github.com/joygram/DeukPackKitsOSS.git


Prerequisites

Each starter is stack-specific (Unity, C++, Console, TS, etc.), so you install DeukPack inside each starter repo.
Before that, you need Node.js, npm, and other environment prerequisites.

Required setup & automatic checks

Item Description
Node.js v16+ required, v18+ recommended. nodejs.org
npm Included with Node. Verify with npm -v
DeukPack CLI npm install deukpack in the repo, then npx deukpack. Match the version in the kit README
Per-starter C# → .NET SDK, C++ → CMake & compiler, Unity → Unity Editor, etc. See each kit README
IDL .thrift / .deuk files — included in the kit or as submodules

DeukPackKits provides npm run check-env to verify Node (≥16) and npm automatically; npm run init or npm run bootstrap (same as setup) runs the same check first. If requirements are not met, an OS-specific install guide is shown.

OS-specific initial setup: Only Node/npm installation varies by OS; after that, npm run check-env / npm run init are the same.
- Windows: nodejs.org or winget install OpenJS.NodeJS.LTS
- macOS: nodejs.org or brew install node
- Linux: nodejs.org or distro package

After setup, run npm install → codegen → build from the project (repo) root.

We recommend treating each starter as "one project = one repository" and installing DeukPack inside that repo.
Copy only the starter you want into a new repo, then run npm install deukpack → codegen → build/run from that repo root.

Use the unified repo (full DeukPackKits clone) only when you want all starters together; in that case, run initialization from the root.

Basic flow after cloning

git clone <repo URL below>
cd <project folder>
# 1) Verify Node.js / npm prerequisites
# 2) npm install (or npm install deukpack) in the repo
# 3) Follow kit README → codegen → build

DeukPackKits one-time initialization (after cloning the unified repo)

After cloning the full DeukPackKits, run the following once — it will attempt to install Node if missing, then initialize:

git clone https://github.com/joygram/DeukPackKits.git
cd DeukPackKits

One-shot init — Linux / macOS

./scripts/bootstrap.sh

Windows (cmd)

scripts\bootstrap.cmd
  • bootstrap.sh / bootstrap.cmd: runs setup when Node exists; otherwise tries nvm, winget, or Docker first.

Node already installed — interactive setup (registry vs sibling source, R vs K)

npm run init

(Same: node scripts/setup.js, npm run bootstrap)

Non-interactive / CI — defaults

npm run init -- --skip-prompt

Non-interactive — source + per-kit (env)

export DEUKPACK_BOOTSTRAP_CHANNEL=source
export DEUKPACK_KIT_RUNTIME=per-kit
export DEUKPACK_SRC=../DeukPack
npm run init -- --skip-prompt

Non-interactive — flags only

npm run init -- --use-source --kit-runtime=per-kit --skip-prompt

Core-dev shortcut

npm run bootstrap:dev

Relink source only

npm run install:from-source

Version + C# DLL check

npm run check-env -- --versions

Then: open a room under StarterKit/… and follow its README. Example:

cd StarterKit/csharp/prologue
npx deukpack _deuk_define/csharp.deuk out -I _deuk_define --csharp
  • Copying one starter into its own repo — from that project root:
npm install deukpack

Then paste the npx deukpack … line from that kit’s README.

Details: DeukPackKits README.


Unity

For teams that want to use C# types and protocol generated by DeukPack in the client/editor.

Includes (examples)

  • Sample IDL → codegen script (or documented npx deukpack commands)
  • Paths and asmdef guidance for placing generated code in a Unity project
  • (Optional) minimal send/receive/load demo

Requirements

  • Unity Editor version (LTS recommended) — specified in README
  • .NET / Player settings summary
Repository (HTTPS) TBD — will be updated to https://github.com/joygram/DeukPack.git or a dedicated starter repo
Clone git clone TBD_URL
Docs Repo root README.md → prerequisites → generate → open in Unity

C++

For teams that want to quickly validate IDL → C++ headers/sources for servers or toolchains.

Includes (examples)

  • Minimal CMake (or team-standard build) target to compile generated artifacts
  • Include paths, C++17, etc. specified in README

Requirements

  • CMake, MSVC / GCC / Clang
Repository TBD
Clone git clone TBD_URL
Docs README.md → codegen → cmake --build

Network (client + server)

For teams that want to wire a minimal echo/ping level with the same IDL on both C# and C++ (or any language combination).

Includes (examples)

  • One shared IDL
  • Server start, client connect, one or two message round-trips

Requirements

  • Depends on kit: Unity + server binary, or console client/server only
Repository TBD
Clone git clone TBD_URL
Docs README.md — port, protocol (binary/compact), execution order

Fan-out & per-recipient fields (messenger pattern)

For chat, push, or any flow where one in-memory message goes to many recipients and only a few fields differ (display name, read flag, locale).

Built into codegen (no IDL change):

  • C#: Write(oprot, fieldIds, overrides?) on every struct — see Unified Write tutorial and API reference.
  • JavaScript (--js): toJson / toBinary (and pack helpers) with (obj, fieldIds, overrides) on each struct helper in generated_deuk.js.
  • C++: kFieldId_* constants and the generated pack/binary write path next to each struct (same field-ID model as C#/JS).

Kit sample authors: in send loops, prefer Write(oprot, null, overrides) + a small overrides map per recipient instead of Clone() per user. Full spec: DEUKPACK_WRITE_WITH_OVERRIDES_API.md.


TypeScript / Node

For teams using CLI codegen or parsing API in BFF, internal tools, or AI agent scripts.

Includes (examples)

  • package.json + codegen npm script
  • (Optional) TS sample using DeukPackEngine parsing only
  • Example of running npx deukpack in CI

Requirements

  • Node 18+
Repository TBD
Clone git clone TBD_URL
Docs README.mdnpm installnpm run codegen

Web App (deukpack-webapp)

Status: To be added to the kits lineup.

Location: starters/deukpack-webapp/ folder in the DeukPackKits repository. Clone the unified repo, then navigate to that path.

For teams that need a ready-to-use base for building web apps with DeukPack: Next.js (TS) frontend + C# REST API backend, microservice-style.

Included features

  • Authentication (login / logout)
  • Sign-up, user profile view / edit
  • Next.js (TypeScript) FE + C# REST API BE — currently OpenAPI (Orval/NSwag) codegen for type/DTO alignment, planned to unify under DeukPack schema/codegen
  • Admin / dashboard are separate (security / role separation recommended)

What the included features enable

Feature What it enables Practical value
Authentication Session management, API access control, login/logout flow ✅ Required by most web apps. Ready to use.
Sign-up New user registration, terms / validation flow ✅ Core requirement for production services.
User profile View / edit my info, profile ✅ Core requirement for production services.
Next.js + C# REST Same schema for FE/BE type/DTO alignment; one codegen updates both sides ✅ Key value when adopting DeukPack. Immediately useful after schema setup.
Separate admin Separate admin app/domain for management features ✅ Recommended for security and operations. Useful during design.

Is it useful when AI agents are involved?

  • Agents are good at: Spec drafts, API design suggestions, business logic and code generation.
  • Agents struggle with: Deterministic type/wire layouts, FE/BE and multi-language simultaneous alignment, build reproducibility, and end-to-end flows like sessions and auth working out of the box.
  • What this kit does: Provides working base flows (auth, sign-up, profile) and DeukPack schema/codegen so that "agent-generated specs → same types/contracts in code" just works.
  • Summary: Use agents for spec/logic generation; this kit handles actual type/API/runtime alignment and ready-to-use auth/user flows, making it useful even alongside AI agents.

Requirements

  • Node 18+, .NET (specified in kit README), (optional) Docker
Repository joygram/DeukPackKits — path starters/deukpack-webapp/
Clone git clone https://github.com/joygram/DeukPackKits.git then cd DeukPackKits/starters/deukpack-webapp
Docs README-FRAMEWORK.md in the folder — pnpm, codegen:all, web & backend run order

Java

For teams aligning Protobuf / legacy contracts with JVM services and preparing for future DeukPack Java emit/integration.

Includes (examples)

  • v1 baseline: Field ID / wire alignment guide with existing Apache Thrift Java or similar stacks
  • Contract checklist for teams sharing the same IDL with C# / C++

Requirements

  • JDK, (per guide) Protobuf/Thrift compilation or existing artifacts
Repository TBD
Clone git clone TBD_URL
Docs README.md — procedure for byte compatibility with types generated by DeukPack

At a glance (clone URLs)

Kit Repository URL Status
Unity See table above Updated when ready
C++ See above Updated when ready
Network See above Updated when ready
TypeScript / Node See above Updated when ready
Web App (deukpack-webapp) DeukPackKits/starters/deukpack-webapp Planned
Java See above Updated when ready

Starting with core only