There are 5 services that comprise create-patchwork applications:
Ponder (event indexing, API)
Postgres (event persistence)
Anvil
www (React frontend)
Dozzle (container logs)
If you have Docker installed, the easiest way to run these all is using the pnpm pnpm pdk localDev command:
pnpm pdk dev up
This command will start all containers, deploy contracts to your preferred network (automatically if you are using Anvil), configure environment variables, and rerun any generators that need it because of downstream changes.To stop development, do:
pnpm pdk dev down
If you’d like to switch networks, you can run:
pnpm pdk network switch <network>
You can see a list of supported networks by running:
pnpm pdk network list
You can also manually rerun any generator by running them with pnpm pdk.From your created project root, run pnpm pdk to see a list of all available commands.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Patchwork Docs","colors":{"primary":"#000","light":"#fff","dark":"#000"},"favicon":"/icon.svg","logo":{"light":"https://mintcdn.com/runiclabs/pBoNL0BpwwCwyXHV/logo/light.svg?fit=max\u0026auto=format\u0026n=pBoNL0BpwwCwyXHV\u0026q=85\u0026s=954e1fde40720c569f3c63ee40b389c6","dark":"https://mintcdn.com/runiclabs/pBoNL0BpwwCwyXHV/logo/dark.svg?fit=max\u0026auto=format\u0026n=pBoNL0BpwwCwyXHV\u0026q=85\u0026s=95dae9a824e755b0b20f65fce9913a18"},"background":{"decoration":null,"color":{"light":"#fff","dark":"#030712"}},"navbar":{"links":[{"label":"Patchwork Home","href":"https://patchwork.dev"}],"primary":null},"footer":{"socials":{"github":"https://github.com/runic-inc/patchwork-docs"}},"navigation":{"global":{"anchors":[{"anchor":"GitHub","href":"https://github.com/runic-inc/patchwork","icon":"github"},{"anchor":"Patchwork Wizard","href":"https://wizard.patchwork.dev/","icon":"wand-magic-sparkles"},{"anchor":"Join our Discord","href":"https://discord.gg/vq43ss25Bu","icon":"discord"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"runiclabs","hasAudioNarration":false,"actualSubdomain":"runiclabs","customDomains":["docs.patchwork.dev"],"gitSource":{"type":"github","owner":"runic-inc","repo":"patchwork-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21e621bd0a90f91cb4440a","collectionId":"3807bd93-45e7-43e5-abb4-53bbe467219a","schemaVersion":"v2"},"entitlements":{},"buildId":"6a21e621bd0a90f91cb4440a:success","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Example Projects","count":29},{"language":"default","tag":"Patchwork Development Kit","count":16},{"language":"default","tag":"Patchwork Protocol","count":16},{"language":"default","tag":"Contracts Reference","count":13},{"language":"default","tag":"Patchwork Project examples","count":11},{"language":"default","tag":"Working with Patchwork","count":8},{"language":"default","tag":"Core Interfaces","count":4},{"language":"default","tag":"Get Started","count":4},{"language":"default","tag":"Info","count":4},{"language":"default","tag":"Fragment extensions","count":3}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"pdk/local-development","slug":"/pdk/local-development","pageMetadata":{"title":"Local development","description":null,"href":"/pdk/local-development"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`There are 5 services that comprise create-patchwork applications:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Ponder`}),` (event indexing, API)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Postgres`}),` (event persistence)`]}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Anvil`})}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`www`}),` (React frontend)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Dozzle`}),` (container logs)`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`If you have Docker installed, the easiest way to run these all is using the `,_jsx(_components.code,{children:`pnpm pnpm pdk localDev`}),` command:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`pnpm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pdk`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` dev`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` up`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`This command will start all containers, deploy contracts to your preferred network (automatically if you are using Anvil), configure environment variables, and rerun any generators that need it because of downstream changes.`}),`\n`,_jsx(_components.p,{children:`To stop development, do:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`pnpm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pdk`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` dev`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` down`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`If you’d like to switch networks, you can run:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`pnpm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pdk`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` network`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` switch`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`networ`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`k`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`You can see a list of supported networks by running:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`pnpm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pdk`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` network`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` list`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`You can also manually rerun any generator by running them with `,_jsx(_components.code,{children:`pnpm pdk`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`From your created project root, run `,_jsx(_components.code,{children:`pnpm pdk`}),` to see a list of all available commands.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Local development","description":null,"href":"/pdk/local-development"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"subdomain":"runiclabs","siteName":"Patchwork Docs","title":"Local development - Patchwork Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-07T01:41:16.485Z","originalFileLocation":"pdk/local-development.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Patchwork Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/runiclabs/iKEP9_80QnaRXhjJ/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/runiclabs/iKEP9_80QnaRXhjJ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/runiclabs/iKEP9_80QnaRXhjJ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/runiclabs/iKEP9_80QnaRXhjJ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/runiclabs/iKEP9_80QnaRXhjJ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/runiclabs/iKEP9_80QnaRXhjJ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/runiclabs/iKEP9_80QnaRXhjJ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/runiclabs/iKEP9_80QnaRXhjJ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/runiclabs/iKEP9_80QnaRXhjJ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Local development - Patchwork Docs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Patchwork Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.patchwork.dev/pdk/local-development\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://runiclabs.mintlify.app/_mintlify/api/og/v2?division=Configuration+and+Development\u0026amp;title=Local+development\u0026amp;theme=222559b92ce2be210aa9b69d\u0026amp;signature=d9ff51ea66e6ac7ac11016867e55c1ae4b722d4bf92ae3ad536d055f8d49fd04\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Local development - Patchwork Docs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://runiclabs.mintlify.app/_mintlify/api/og/v2?division=Configuration+and+Development\u0026amp;title=Local+development\u0026amp;theme=222559b92ce2be210aa9b69d\u0026amp;signature=d9ff51ea66e6ac7ac11016867e55c1ae4b722d4bf92ae3ad536d055f8d49fd04\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/runiclabs/iKEP9_80QnaRXhjJ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Patchwork Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.patchwork.dev/pdk/local-development\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/pdk/local-development.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.patchwork.dev/#organization\",\"name\":\"Patchwork Docs\",\"url\":\"https://docs.patchwork.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/runiclabs/pBoNL0BpwwCwyXHV/logo/light.svg?fit=max\u0026auto=format\u0026n=pBoNL0BpwwCwyXHV\u0026q=85\u0026s=954e1fde40720c569f3c63ee40b389c6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.patchwork.dev#website\",\"name\":\"Patchwork Docs\",\"url\":\"https://docs.patchwork.dev\",\"publisher\":{\"@id\":\"https://docs.patchwork.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.patchwork.dev/pdk/local-development#webpage\",\"url\":\"https://docs.patchwork.dev/pdk/local-development\",\"name\":\"Local development\",\"dateModified\":\"2026-01-07T01:41:16.485Z\",\"isPartOf\":{\"@id\":\"https://docs.patchwork.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.patchwork.dev/pdk/local-development#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.patchwork.dev/pdk/local-development#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Configuration and Development\",\"item\":\"https://docs.patchwork.dev/pdk/configuration\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Local development\",\"item\":\"https://docs.patchwork.dev/pdk/local-development\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.patchwork.dev/pdk/local-development#article\",\"headline\":\"Local development\",\"name\":\"Local development\",\"url\":\"https://docs.patchwork.dev/pdk/local-development\",\"mainEntityOfPage\":{\"@id\":\"https://docs.patchwork.dev/pdk/local-development#webpage\"},\"dateModified\":\"2026-01-07T01:41:16.485Z\",\"publisher\":{\"@id\":\"https://docs.patchwork.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.patchwork.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Patchwork Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Patchwork Docs","nav":{"global":{"anchors":[{"anchor":"GitHub","href":"https://github.com/runic-inc/patchwork","icon":"github"},{"anchor":"Patchwork Wizard","href":"https://wizard.patchwork.dev/","icon":"wand-magic-sparkles"},{"anchor":"Join our Discord","href":"https://discord.gg/vq43ss25Bu","icon":"discord"}]},"tabs":[{"tab":"Patchwork Protocol","pages":[{"title":"Patchwork Protocol","href":"/protocol/getting-started/introduction"}]},{"tab":"Patchwork Development Kit","groups":[{"group":"Introduction","pages":[{"title":"Overview","href":"/pdk/overview"},{"title":"Getting started","href":"/pdk/getting-started"}]},{"group":"Configuration and Development","pages":[{"title":"Project configuration","href":"/pdk/configuration"},{"title":"Patchwork Wizard","description":"Build your Patchwork config using our visual editor","href":"/pdk/wizard"},{"title":"Local development","href":"/pdk/local-development"}]},{"group":"Patchwork Project examples","pages":[{"title":"Basic Patchwork721","description":null,"href":"/pdk/config/basic"},{"title":"Complex metadata with arrays","href":"/pdk/config/arrays"},{"group":"Fragment examples","pages":[{"title":"Single-assignable Fragment","href":"/pdk/config/fragmentsingle"},{"title":"Multi-assignable Fragment","href":"/pdk/config/fragmentmulti"}]},{"group":"Assignee examples","pages":[{"title":"Fixed-length references","href":"/pdk/config/literef8"},{"title":"Dynamic references","href":"/pdk/config/dynref"}]},{"group":"Patch examples","pages":[{"title":"Patch for ERC721 targets","href":"/pdk/config/patch"},{"title":"Patch for ERC1155 targets","href":"/pdk/config/1155patch"},{"title":"Patch for account targets","href":"/pdk/config/accountpatch"}]},{"title":"Patch + Fragment","href":"/pdk/config/patchfragment"},{"title":"Patch + Assignee","href":"/pdk/config/patchassignee"}]}]},{"tab":"Contracts Reference","pages":[{"title":"Contracts Reference","href":"/contracts/core/IPatchworkProtocol"}]},{"tab":"Example Projects","pages":[{"title":"Example Projects","href":"/projects"}]}]},"basePath":"","title":"Local development - Patchwork Docs","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}