Skip to content

Commit 7c2bf13

Browse files
committed
docs: update Yaci DevKit link in advanced README and add new session on default developer environment for Cardano
1 parent 2602c54 commit 7c2bf13

6 files changed

Lines changed: 352 additions & 1 deletion

File tree

website/docs/how-to-guide/advanced/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Welcome to the Advanced Guides section! These guides are for experienced develop
55
### Ecosystem Projects
66
- **Cardano DB Sync**: Check out this awesome guide to Cardano DB Sync [here](./cardano-db-sync.md)
77
- **Cardano API**: Check out this awesome guide to Cardano API [here](./cardano-api.md)
8-
- **Yaci DevKit**: Setup a local Cardano devnet step by step [here](./yaci-devkit.md)
8+
- **Yaci DevKit**: Setup a local Cardano devnet step by step [here](./yaci-devkit.mdx)
99

1010

1111
## Getting Involved
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"label": "Session 17: Default Developer Environment for Cardano",
3+
"position": 17
4+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
title: "Session 17: Default Developer Environment for Cardano - Recordings"
3+
sidebar_label: Recordings
4+
---
5+
6+
# Session 17: Default Developer Environment for Cardano - Recordings
7+
8+
- *(Recording link will be added after the session.)*
9+
10+
---
11+
12+
*These recordings belong to the Q2 2026 Developer Experience Working Group.*
Lines changed: 254 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,254 @@
1+
---
2+
title: "Session 17: Default Developer Environment for Cardano - Notes"
3+
sidebar_label: Session Notes
4+
slug: /working-group/q2-2026/sessions/17-default-developer-environment/session-notes
5+
---
6+
7+
# Session 17: Default Developer Environment for Cardano - Notes
8+
9+
A working-group discussion on what the **default developer environment** on Cardano should be: what we recommend first to a developer who has never built on the chain before, and how the ecosystem can lower the cost of "day one."
10+
11+
> **Opening Question**
12+
> *"If a new developer wanted to build on Cardano today, what environment should we recommend first by default?"*
13+
14+
Cardano currently offers many ways to build and test, but there is **no universally accepted "default path."** This session maps those options, weighs their trade-offs, and proposes a recommended flow for newcomers, intermediate builders, and production teams.
15+
16+
---
17+
18+
## Why this matters
19+
20+
The first 30 minutes a developer spends with Cardano shape whether they stay. Today a new builder is faced with a menu of choices (local devnet vs public testnet, self-hosted node vs hosted provider, container vs bare install) with no clear "start here" arrow. Each option is correct for *some* audience, but presenting all of them at once is the problem.
21+
22+
A good default environment should be:
23+
24+
- **Fast to start**: minutes, not hours
25+
- **Realistic enough**: behaves like the network the dApp will eventually ship on
26+
- **Reset-friendly**: easy to wipe and start over without losing courage
27+
- **Path-forward**: graduating to production should not require throwing away what you learned
28+
29+
---
30+
31+
## Landscape at a glance
32+
33+
```mermaid
34+
flowchart LR
35+
Dev["New developer<br/>day 1"] --> Choice{"Which environment<br/>do we recommend?"}
36+
Choice --> Local["Local devnets<br/>Yaci DevKit / cardano-node-devnet"]
37+
Choice --> Public["Public testnets<br/>Preview / PreProd"]
38+
Choice --> Hosted["Hosted providers<br/>Blockfrost / Maestro / Koios"]
39+
Choice --> SelfNode["Self-hosted node<br/>Preview / PreProd / Mainnet"]
40+
Choice --> OneClick["One-click sandbox<br/>Docker / Codespaces / Devcontainer"]
41+
42+
Local -->|graduate| Public
43+
Hosted -->|graduate| Public
44+
OneClick -->|graduate| Public
45+
Public -->|graduate| SelfNode
46+
```
47+
48+
The arrows are the *real* question: **what should the path look like, end to end?**
49+
50+
---
51+
52+
## Core discussion areas
53+
54+
### 1) Local devnet vs public testnet
55+
56+
The first decision a builder faces.
57+
58+
| Aspect | Local devnet | Public testnet (Preview / PreProd) |
59+
|---|---|---|
60+
| Startup time | seconds | depends on node sync / faucet |
61+
| Realism | low (one node, sometimes no protocol-accurate params) | high (real consensus, real timing) |
62+
| Reset cost | trivial | painful (re-fund, re-deploy) |
63+
| Offline work | yes | no |
64+
| Collaboration | hard (everyone has their own chain) | easy (shared state) |
65+
| CI friendliness | excellent | possible but slow + flaky |
66+
67+
**Questions for the room**
68+
69+
- Should developers start locally first, or jump straight to Preview/PreProd?
70+
- What creates the **least friction** for the very first transaction?
71+
- What gives the **most realistic experience** without overwhelming a newcomer?
72+
- Is "realism" even useful before a developer can confidently build a tx?
73+
74+
---
75+
76+
### 2) Compare the main options
77+
78+
#### Local devnets (Yaci DevKit, cardano-node devnet)
79+
80+
**What works well**
81+
82+
- Fast iteration loop
83+
- Full control of slot / epoch / time
84+
- Offline / local development
85+
- Easier reset between tests
86+
- Great for CI and automated testing
87+
88+
**Where it falls short**
89+
90+
- Doesn't reflect real network conditions (mempool, propagation, fees under load)
91+
- Additional setup complexity (Docker, ports, schemas)
92+
- Possible parameter drift from public networks
93+
94+
**Best fit for**
95+
96+
- SDK development
97+
- Validator / contract unit + integration testing
98+
- Rapid prototyping
99+
- CI pipelines
100+
101+
---
102+
103+
#### Public testnets: Preview / PreProd
104+
105+
**What works well**
106+
107+
- Real consensus, real block times, real fee market
108+
- Closer to production behavior
109+
- Shared ecosystem state (other devs' contracts you can interact with)
110+
- Easier collaboration and demos
111+
112+
**Where it falls short**
113+
114+
- Faucet dependency (rate limits, downtime)
115+
- Occasional network instability
116+
- Slower feedback loop (epochs, propagation)
117+
- Coordination complexity for teams
118+
119+
**Questions**
120+
121+
- Should **Preview** become the default for newcomers?
122+
- Is **PreProd** too "late-stage" for first-day builders, or is its closer-to-mainnet parity worth the extra friction?
123+
124+
---
125+
126+
#### Hosted providers (Blockfrost, Maestro, Koios)
127+
128+
**What works well**
129+
130+
- Fast onboarding, no infra to manage
131+
- Managed reliability and indexing
132+
- Less operational burden on the developer
133+
- Strong UX for newcomers
134+
135+
**Where it falls short**
136+
137+
- Centralization concerns
138+
- Paid dependency past free tiers
139+
- Abstracts infrastructure knowledge that becomes important later
140+
- Rate limits can mask real-world tx behavior
141+
142+
**Discussion**
143+
144+
- Is managed infra **good for onboarding**, or does it create a knowledge gap that hurts developers later?
145+
- Should learning node operations come **earlier** in the journey, or be deferred until it's actually needed?
146+
147+
---
148+
149+
#### Self-hosted nodes
150+
151+
**What works well**
152+
153+
- Maximum sovereignty
154+
- Full network understanding (sync, peers, mempool, ledger)
155+
- Production realism
156+
- Aligned with Cardano's decentralization values
157+
158+
**Where it falls short**
159+
160+
- Heavy setup (sync time, disk, RAM)
161+
- Ongoing maintenance burden
162+
- Hardware / resource requirements
163+
164+
**Question**
165+
166+
- Should **running a node** still be considered a *core* Cardano developer skill, or is it now an SRE concern that most app developers can skip?
167+
168+
---
169+
170+
### 3) Dockerized / one-click environments
171+
172+
The interesting middle ground.
173+
174+
**Should Cardano provide an official:**
175+
176+
- Docker Compose setup?
177+
- Dev container?
178+
- One-click sandbox?
179+
- Cloud workspace (GitHub Codespaces / Gitpod)?
180+
- Preconfigured VSCode extension pack?
181+
182+
> *"Could Cardano reduce onboarding friction with a **one-command** developer environment?"*
183+
184+
**Candidate shapes**
185+
186+
- `docker compose up` → node + indexer + faucet + provider stub, ready in minutes
187+
- Browser-based playground (no install, no wallet; write a tx, sign with a generated key, submit to a sandboxed devnet)
188+
- GitHub Codespaces template: clone, click, code
189+
- Preconfigured `.devcontainer/` shipped with starter templates
190+
191+
**Trade-offs to discuss**
192+
193+
- Who owns and maintains the official image? (Intersect? CF? community?)
194+
- How do we keep parameters in sync with mainnet?
195+
- Is "browser playground" too far from real workflows to be useful, or is it the *perfect* first ten minutes?
196+
197+
---
198+
199+
### 4) Recommended flow debate
200+
201+
The deliverable for this session: **propose a default path.** Below is a strawman to argue with, not a conclusion.
202+
203+
```mermaid
204+
flowchart TB
205+
S0["Hour 0<br/>One-click playground<br/>browser or Codespaces"] --> S1
206+
S1["Hour 1<br/>Local devnet<br/>Yaci DevKit (docker compose up)"] --> S2
207+
S2["Day 1–7<br/>Preview testnet<br/>hosted provider for chain reads"] --> S3
208+
S3["Week 2+<br/>Preview + self-hosted node<br/>introduce Ogmios / Kupo"] --> S4
209+
S4["Pre-mainnet<br/>PreProd<br/>full infra mirror of prod"] --> S5["Mainnet"]
210+
```
211+
212+
**Open questions**
213+
214+
- Is the playground step worth the maintenance cost, or do we send people straight to a local devnet?
215+
- Where should **hosted provider vs self-hosted node** sit on the path?
216+
- Should **Aiken + Mesh/Lucid/Blaze + Yaci DevKit + Preview** be branded as the "default stack", or is naming a stack overreach?
217+
- What is the **single command** we want to be able to tell every new developer to run?
218+
219+
---
220+
221+
## Strawman recommendation
222+
223+
For the session to converge on something concrete, the proposal is:
224+
225+
1. **Default starting environment**: **Yaci DevKit** (local devnet via Docker). Run `docker compose up` and you have a node, faucet, and indexer.
226+
2. **Default chain access for tutorials**: **Blockfrost free tier** on **Preview**. No faucet anxiety, no node sync, real consensus.
227+
3. **Default SDK lane**: one of MeshJS / Lucid-evo / Blaze, picked per tutorial track but **not all three in one tutorial**.
228+
4. **Graduation path**: introduce **Ogmios + Kupo + self-hosted node** *after* the developer has shipped their first working tx, not before.
229+
230+
This is a starting point for debate, not a decree. The point of the session is to **agree on a default** so the ecosystem can point newcomers at one path with confidence.
231+
232+
---
233+
234+
## Decisions to bring out of the session
235+
236+
- [ ] One canonical "default environment" recommendation (or a small matrix by audience)
237+
- [ ] A position on whether Cardano should ship an official one-command dev environment
238+
- [ ] Assignment of who maintains it (Intersect / CF / community working group)
239+
- [ ] A documentation owner for keeping the recommendation current
240+
- [ ] A follow-up session if scope expands (e.g. a deep dive on Yaci DevKit or a playground prototype)
241+
242+
---
243+
244+
## Related sessions
245+
246+
- [Session 14: SDK Repo Walkthrough](../../14-sdk-repo-walkthrough/session-notes/readme.md)
247+
- [Session 15: dApp Architecture](../../15-dapp-architecture-demo/session-notes/readme.md)
248+
- [Session 16: UI ↔ Smart Contracts](../../16-ui-smart-contract-interaction/session-notes/readme.md)
249+
250+
See the curated links in [Resources](../session-resources/readme.md).
251+
252+
---
253+
254+
*These notes belong to the Q2 2026 Developer Experience Working Group.*
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
title: "Session 17: Default Developer Environment for Cardano - Resources"
3+
sidebar_label: Resources
4+
---
5+
6+
# Session 17: Default Developer Environment for Cardano - Resources
7+
8+
Curated references for the debate on what Cardano's default developer environment should be: local devnets, public testnets, hosted providers, self-hosted nodes, and one-click sandboxes.
9+
10+
## Local devnets
11+
12+
- **Yaci DevKit** (one-command local Cardano devnet): [github.com/bloxbean/yaci-devkit](https://github.com/bloxbean/yaci-devkit)
13+
- **Yaci Store** (lightweight indexer that pairs with Yaci): [github.com/bloxbean/yaci-store](https://github.com/bloxbean/yaci-store)
14+
- **cardano-node devnet templates**: [github.com/IntersectMBO/cardano-node](https://github.com/IntersectMBO/cardano-node)
15+
- **Aiken local test harness**: [aiken-lang.org/language-tour/tests](https://aiken-lang.org/language-tour/tests)
16+
17+
## Public testnets
18+
19+
- **Cardano testnets (Preview / PreProd) overview**: [docs.cardano.org/cardano-testnets/getting-started](https://docs.cardano.org/cardano-testnets/getting-started/)
20+
- **Preview testnet faucet**: [docs.cardano.org/cardano-testnets/tools/faucet](https://docs.cardano.org/cardano-testnets/tools/faucet/)
21+
- **Cardano Developer Portal (testnets)**: [developers.cardano.org/docs/get-started/testnets-and-devnets](https://developers.cardano.org/docs/get-started/testnets-and-devnets/)
22+
23+
## Hosted providers
24+
25+
- **Blockfrost** (REST API, free tier covers most onboarding): [blockfrost.io](https://blockfrost.io)
26+
- **Maestro** (chain API + indexing + tx evaluation): [gomaestro.org](https://www.gomaestro.org/)
27+
- **Koios** (community-run public API): [koios.rest](https://koios.rest)
28+
- **Demeter.run** (managed Cardano workspaces and infra): [demeter.run](https://demeter.run)
29+
30+
## Self-hosted infrastructure
31+
32+
- **cardano-node**: [github.com/IntersectMBO/cardano-node](https://github.com/IntersectMBO/cardano-node)
33+
- **Ogmios** (WebSocket bridge to a node, tx eval + submission): [ogmios.dev](https://ogmios.dev)
34+
- **Kupo** (lightweight UTxO indexer): [cardanosolutions.github.io/kupo](https://cardanosolutions.github.io/kupo/)
35+
- **Mithril** (fast bootstrap of node state via snapshots): [mithril.network](https://mithril.network/doc/)
36+
37+
## SDKs and tx-building
38+
39+
Pick one lane per project and standardize.
40+
41+
- **MeshJS**: [meshjs.dev](https://meshjs.dev)
42+
- **Lucid-evo**: [github.com/Anastasia-Labs/lucid-evolution](https://github.com/Anastasia-Labs/lucid-evolution)
43+
- **Blaze**: [github.com/butaneprotocol/blaze-cardano](https://github.com/butaneprotocol/blaze-cardano)
44+
45+
## Smart contract languages
46+
47+
- **Aiken** (recommended track for new builders): [aiken-lang.org](https://aiken-lang.org)
48+
- **Plutus** (reference docs and type system): [plutus.readthedocs.io](https://plutus.readthedocs.io/en/latest/)
49+
50+
## Dev container / one-click ideas
51+
52+
- **VSCode Dev Containers spec**: [containers.dev](https://containers.dev)
53+
- **GitHub Codespaces**: [github.com/features/codespaces](https://github.com/features/codespaces)
54+
- **Aiken starter template**: [github.com/aiken-lang/aiken-starter-kit](https://github.com/aiken-lang/aiken-starter-kit)
55+
- **Cardano Starter Kit (community templates)**: [developers.cardano.org/docs/get-started/cardano-starter-kit](https://developers.cardano.org/docs/get-started/cardano-starter-kit/)
56+
57+
## Standards referenced in the discussion
58+
59+
- **CIP-30** (dApp connector / browser wallet API): [CIP-0030](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0030)
60+
- **CIP-33** (reference scripts): [CIP-0033](https://github.com/cardano-foundation/CIPs/blob/master/CIP-0033/README.md)
61+
- **All CIPs**: [cardano-foundation/CIPs](https://github.com/cardano-foundation/CIPs)
62+
63+
## Prior sessions worth re-reading before this one
64+
65+
- [Session 14: SDK Repo Walkthrough](../../14-sdk-repo-walkthrough/session-notes/readme.md)
66+
- [Session 15: dApp Architecture](../../15-dapp-architecture-demo/session-notes/readme.md)
67+
- [Session 16: UI ↔ Smart Contracts](../../16-ui-smart-contract-interaction/session-notes/readme.md)
68+
69+
---
70+
71+
*These resources belong to the Q2 2026 Developer Experience Working Group.*

website/docs/working-group/sessions/q2-2026/index.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ The Developer Experience (DevEx) Working Group continues to support and empower
1515
| **14** | **Repository Walkthrough: Offchain and SDK building** | Deep dive into offchain architecture | Workshop |
1616
| **15** | **dApp Architecture: From Wallet to Backend** | Modular breakdown of full-stack dApp flow | Workshop |
1717
| **16** | **UI ↔ Smart Contracts: Wallets, Tx Building, and Submission** | End-to-end dApp interaction patterns + architecture trade-offs | Workshop |
18+
| **17** | **Default Developer Environment for Cardano** | Working-group debate on what we recommend by default to new builders | Discussion |
1819

1920
## Session Details
2021

@@ -43,6 +44,15 @@ The Developer Experience (DevEx) Working Group continues to support and empower
4344
- Indexers and data providers (Kupo/Ogmios, Blockfrost/Koios/Maestro)
4445
- **Deliverable**: Best-practice integration guide + diagrams
4546

47+
### Session 17: Default Developer Environment for Cardano
48+
- **Objective**: Agree on a default developer environment to recommend to newcomers, and the graduation path from "first ten minutes" to mainnet.
49+
- **Key Topics**:
50+
- Local devnets (Yaci DevKit, cardano-node devnet) vs public testnets (Preview / PreProd)
51+
- Hosted providers (Blockfrost / Maestro / Koios) vs self-hosted nodes (cardano-node + Ogmios + Kupo)
52+
- One-click / Dockerized / Codespaces-style sandboxes
53+
- Recommended flow debate: what is the *single* environment we point new builders at?
54+
- **Deliverable**: [Default Developer Environment Session Notes](./17-default-developer-environment/session-notes/readme.md)
55+
4656
## Working Group Information
4757
For operational details, roles, repository structure, and participation guidelines, please see the [Working Group Overview](../../readme.md).
4858

0 commit comments

Comments
 (0)