[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"navigation":3,"url-settings":86,"blog-\u002Fblog\u002Fhow-to-write-code-with-chatgpt":663,"blog-author-\u002Fblog\u002Fhow-to-write-code-with-chatgpt":1328,"i-material-symbols:arrow-back-rounded":1340},{"id":4,"extension":5,"footer":6,"header":73,"meta":83,"stem":84,"__hash__":85},"navigation\u002Fdata\u002Fshared\u002Fnavigation.yml","yml",{"brand":7,"columns":13,"legal":63},{"name":8,"tagline":9,"downloadCta":10},"Pieces","The memory layer for modern work.",{"label":11,"href":12},"All downloads","\u002Fdownloads",[14,26,39,51],{"title":15,"links":16},"Product",[17,20,23],{"label":18,"href":19},"Pieces Desktop","\u002F",{"label":21,"href":22},"Pieces Enterprise","\u002Fenterprise",{"label":24,"href":25},"Pieces MCP","\u002Fmcp",{"title":27,"links":28},"Resources",[29,33,36],{"label":30,"href":31,"external":32},"Documentation","url:docs.home",true,{"label":34,"href":35},"Blog","\u002Fblog",{"label":37,"href":38,"external":32},"GitHub","url:github.org",{"title":40,"links":41},"Community",[42,45,48],{"label":43,"href":44,"external":32},"Discord","url:social.discord",{"label":46,"href":47,"external":32},"X \u002F Twitter","url:social.x",{"label":49,"href":50,"external":32},"LinkedIn","url:social.linkedin",{"title":52,"links":53},"Company",[54,57,60],{"label":55,"href":56},"About","\u002Fabout",{"label":58,"href":59},"Updates","\u002Fupdates",{"label":61,"href":62},"Contact","\u002Fcontact",[64,67,70],{"label":65,"href":66},"Privacy Policy","\u002Flegal\u002Fprivacy",{"label":68,"href":69},"Refund Policy","\u002Flegal\u002Frefund",{"label":71,"href":72},"Terms of Service","\u002Flegal\u002Fterms",{"links":74,"signIn":75,"contact":78,"cta":80},[],{"label":76,"href":77},"Sign in","url:portal.home",{"label":79,"href":62},"Get in touch",{"label":81,"href":82},"Download","url:routes.downloads",{},"data\u002Fshared\u002Fnavigation","VdirGIa8cUm6xLprbBeTKcw914JfyJjWfF-9hSVOX5Y",{"id":87,"extension":5,"links":88,"meta":660,"stem":661,"__hash__":662},"urlSettings\u002Fdata\u002Fshared\u002Furls.yml",[89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,295,299,303,306,310,314,318,322,326,330,334,338,342,346,350,354,358,362,366,370,374,378,382,386,390,394,398,402,406,410,414,418,422,426,430,434,438,442,446,450,453,457,461,465,469,473,477,480,483,486,489,493,497,500,504,508,512,516,520,524,528,532,536,540,544,548,551,555,559,563,567,571,574,577,580,584,587,591,595,599,603,606,610,614,617,620,623,627,631,635,638,641,644,648,652,656],{"key":90,"label":91,"href":92},"downloads.desktop","Desktop download page","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop\u002Fdownload",{"key":94,"label":95,"href":96},"downloads.macOS.dmgArm64","macOS DMG Apple Silicon","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fpieces_for_x\u002Fdmg-arm64\u002Fdownload",{"key":98,"label":99,"href":100},"downloads.macOS.dmgIntel","macOS DMG Intel","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fpieces_for_x\u002Fdmg\u002Fdownload",{"key":102,"label":103,"href":104},"downloads.macOS.pkg","macOS PKG","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fmacos_packaging\u002Fpkg\u002Fdownload",{"key":106,"label":107,"href":108},"downloads.macOS.universal","Desktop macOS Universal","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fpieces_for_x\u002Fmacos-universal\u002Fdownload",{"key":110,"label":111,"href":112},"downloads.macOS.pkgArm64","Desktop macOS PKG Apple Silicon","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fmacos_packaging\u002Fpkg-pfd-arm64\u002Fdownload",{"key":114,"label":115,"href":116},"downloads.macOS.pkgIntel","Desktop macOS PKG Intel","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fmacos_packaging\u002Fpkg-pfd\u002Fdownload",{"key":118,"label":119,"href":120},"downloads.windows.appinstaller","Windows App Installer","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fappinstaller\u002Fpieces_for_x.appinstaller",{"key":122,"label":123,"href":124},"downloads.windows.exe","Windows EXE","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fpieces_for_x\u002Fwindows-exe\u002Fdownload",{"key":126,"label":127,"href":128},"downloads.windows.msix","Windows MSIX","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fpieces_for_x\u002Fwindows-msix\u002Fdownload",{"key":130,"label":131,"href":132},"downloads.windows.suiteManager","Windows Suite Manager","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fpieces_suite_windows\u002Fappinstaller\u002Fdownload",{"key":134,"label":135,"href":136},"downloads.linux.flatpakRepo","Linux Flatpak repository","https:\u002F\u002Fbuilds.pieces.app\u002Fpieces-flatpak-repo\u002Fpieces-flatpak.flatpakrepo",{"key":138,"label":139,"href":140},"downloads.linux.snapDesktop","Linux Snap Desktop","https:\u002F\u002Fsnapcraft.io\u002Fpieces-for-developers",{"key":142,"label":143,"href":144},"downloads.linux.snapPiecesOS","Linux Snap PiecesOS","https:\u002F\u002Fsnapcraft.io\u002Fpieces-os",{"key":146,"label":147,"href":148},"downloads.linux.snap","Desktop Linux Snap package","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fpieces_for_x\u002Fsnap\u002Fdownload",{"key":150,"label":151,"href":152},"downloads.piecesOS.macOS.dmgArm64","PiecesOS macOS DMG Apple Silicon","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fos_server\u002Fdmg-arm64\u002Fdownload",{"key":154,"label":155,"href":156},"downloads.piecesOS.macOS.dmgIntel","PiecesOS macOS DMG Intel","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fos_server\u002Fdmg\u002Fdownload",{"key":158,"label":159,"href":160},"downloads.piecesOS.macOS.universal","PiecesOS macOS Universal","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fos_server\u002Fmacos-universal\u002Fdownload",{"key":162,"label":163,"href":164},"downloads.piecesOS.macOS.pkgArm64","PiecesOS macOS PKG Apple Silicon","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fmacos_packaging\u002Fpkg-pos-launch-only-arm64\u002Fdownload",{"key":166,"label":167,"href":168},"downloads.piecesOS.macOS.pkgIntel","PiecesOS macOS PKG Intel","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fmacos_packaging\u002Fpkg-pos-launch-only\u002Fdownload",{"key":170,"label":171,"href":172},"downloads.piecesOS.windows.appinstaller","PiecesOS Windows App Installer","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fappinstaller\u002Fos_server.appinstaller",{"key":174,"label":175,"href":176},"downloads.piecesOS.windows.exe","PiecesOS Windows EXE","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fos_server\u002Fwindows-exe\u002Fdownload",{"key":178,"label":179,"href":180},"downloads.piecesOS.windows.msix","PiecesOS Windows MSIX","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fos_server\u002Fwindows-msix\u002Fdownload",{"key":182,"label":183,"href":184},"downloads.piecesOS.linux.snap","PiecesOS Linux Snap package","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fos_server\u002Fsnap\u002Fdownload",{"key":186,"label":187,"href":188},"downloads.combined.macOS.appleSilicon","Combined macOS installer Apple Silicon","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fmacos_packaging\u002Fpkg-arm64\u002Fdownload",{"key":190,"label":191,"href":104},"downloads.combined.macOS.intel","Combined macOS installer Intel",{"key":193,"label":194,"href":195},"downloads.guides.macOS","macOS installation guide","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmeet-pieces\u002Fmacos-installation-guide",{"key":197,"label":198,"href":199},"downloads.guides.windows","Windows installation guide","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmeet-pieces\u002Fwindows-installation-guide",{"key":201,"label":202,"href":203},"downloads.guides.linux","Linux installation guide","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmeet-pieces\u002Flinux-installation-guide",{"key":205,"label":206,"href":207},"downloads.guides.piecesOS","PiecesOS manual installation","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fcore-dependencies\u002Fpieces-os\u002Fmanual-installation",{"key":209,"label":210,"href":211},"extensions.chrome","Chrome extension","https:\u002F\u002Fchrome.google.com\u002Fwebstore\u002Fdetail\u002Fpieces-save-code-snippets\u002Figbgibhbfonhmjlechmeefimncpekepm",{"key":213,"label":214,"href":215},"extensions.firefox","Firefox add-on","https:\u002F\u002Faddons.mozilla.org\u002Fen-US\u002Ffirefox\u002Faddon\u002Fpieces-save-code-from-the-web\u002F",{"key":217,"label":218,"href":219},"extensions.edge","Edge add-on","https:\u002F\u002Fmicrosoftedge.microsoft.com\u002Faddons\u002Fdetail\u002Fpieces-save-code-snippet\u002Fhglfimcdgonaeeobjckfdabcldfidmim",{"key":221,"label":222,"href":223},"extensions.vscode","VS Code extension","https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=MeshIntelligentTechnologiesInc.pieces-vscode",{"key":225,"label":226,"href":227},"extensions.visualStudio","Visual Studio extension","https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=MeshIntelligentTechnologiesInc.PiecesVisualStudio",{"key":229,"label":230,"href":231},"extensions.jetbrains","JetBrains plugin","https:\u002F\u002Fplugins.jetbrains.com\u002Fplugin\u002F17328-pieces--save-search-share--reuse-code-snippets",{"key":233,"label":234,"href":235},"extensions.obsidian","Obsidian plugin","https:\u002F\u002Fobsidian.md\u002Fplugins?id=pieces-for-developers",{"key":237,"label":238,"href":239},"extensions.sublime","Sublime package","https:\u002F\u002Fpackagecontrol.io\u002Fpackages\u002FPieces",{"key":241,"label":242,"href":243},"extensions.neovim","Neovim plugin","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fplugin_neo_vim",{"key":245,"label":246,"href":247},"extensions.jupyterlab","JupyterLab plugin","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fjupyterlab-pieces",{"key":249,"label":250,"href":251},"extensions.cli","Pieces CLI","https:\u002F\u002Fpypi.org\u002Fproject\u002Fpieces-cli\u002F",{"key":253,"label":254,"href":255},"docs.home","Documentation home","https:\u002F\u002Fdocs.pieces.app",{"key":257,"label":258,"href":259},"docs.getStarted","Get started docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmeet-pieces",{"key":261,"label":262,"href":263},"docs.api","API docs","https:\u002F\u002Fdocs.pieces.app\u002Fapi",{"key":265,"label":266,"href":267},"docs.desktop.overview","Desktop overview","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop",{"key":269,"label":270,"href":271},"docs.desktop.onboarding","Desktop onboarding","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop\u002Fonboarding",{"key":273,"label":274,"href":275},"docs.desktop.timeline","Desktop timeline docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop\u002Ftimeline",{"key":277,"label":278,"href":279},"docs.desktop.summaries","Desktop summaries docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop\u002Fsingle-click-summaries",{"key":281,"label":282,"href":283},"docs.desktop.search","Desktop conversational search docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop\u002Fconversational-search",{"key":285,"label":286,"href":287},"docs.desktop.drive","Desktop drive docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop\u002Fdrive",{"key":289,"label":290,"href":291},"docs.desktop.account","Desktop account settings docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop\u002Fconfiguration\u002Faccount",{"key":293,"label":294,"href":92},"docs.desktop.download","Desktop download docs",{"key":296,"label":297,"href":298},"docs.piecesOS.overview","PiecesOS overview docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fcore-dependencies",{"key":300,"label":301,"href":302},"docs.piecesOS.details","PiecesOS details docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fcore-dependencies\u002Fpieces-os",{"key":304,"label":305,"href":207},"docs.piecesOS.install","PiecesOS install docs",{"key":307,"label":308,"href":309},"docs.piecesOS.quickMenu","PiecesOS quick menu docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fcore-dependencies\u002Fpieces-os\u002Fquick-menu",{"key":311,"label":312,"href":313},"docs.piecesOS.storage","On-device storage docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fcore-dependencies\u002Fon-device-storage",{"key":315,"label":316,"href":317},"docs.piecesOS.troubleshooting","PiecesOS troubleshooting docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fcore-dependencies\u002Fpieces-os\u002Ftroubleshooting",{"key":319,"label":320,"href":321},"docs.mcp.overview","MCP overview docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp",{"key":323,"label":324,"href":325},"docs.mcp.cursor","MCP Cursor docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fcursor",{"key":327,"label":328,"href":329},"docs.mcp.vscode","MCP VS Code docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fvs-code",{"key":331,"label":332,"href":333},"docs.mcp.claudeDesktop","MCP Claude Desktop docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fclaude-desktop",{"key":335,"label":336,"href":337},"docs.mcp.claudeCode","MCP Claude Code docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fclaude-code",{"key":339,"label":340,"href":341},"docs.mcp.claudeCowork","MCP Claude Cowork docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fclaude-cowork",{"key":343,"label":344,"href":345},"docs.mcp.githubCopilot","MCP GitHub Copilot docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fgithub-copilot",{"key":347,"label":348,"href":349},"docs.mcp.goose","MCP Goose docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fgoose",{"key":351,"label":352,"href":353},"docs.mcp.windsurf","MCP Windsurf docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fwindsurf",{"key":355,"label":356,"href":357},"docs.mcp.zed","MCP Zed docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fzed",{"key":359,"label":360,"href":361},"docs.mcp.jetbrains","MCP JetBrains docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fjetbrains-ides",{"key":363,"label":364,"href":365},"docs.mcp.continueDev","MCP Continue docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fcontinue-dev",{"key":367,"label":368,"href":369},"docs.mcp.cline","MCP Cline docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fcline",{"key":371,"label":372,"href":373},"docs.mcp.raycast","MCP Raycast docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fraycast",{"key":375,"label":376,"href":377},"docs.mcp.rovoDevCli","MCP Rovo Dev CLI docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Frovo-dev-cli",{"key":379,"label":380,"href":381},"docs.mcp.openaiCodexCli","MCP OpenAI Codex CLI docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fopenai-codex-cli",{"key":383,"label":384,"href":385},"docs.mcp.googleGeminiCli","MCP Google Gemini CLI docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fgoogle-gemini-cli",{"key":387,"label":388,"href":389},"docs.mcp.amazonQ","MCP Amazon Q docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Famazon-q-developer",{"key":391,"label":392,"href":393},"docs.mcp.chatgptDev","MCP ChatGPT Developer Mode docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fchatgpt-developer-mode",{"key":395,"label":396,"href":397},"docs.mcp.openclaw","MCP OpenClaw docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fopenclaw",{"key":399,"label":400,"href":401},"docs.mcp.mcpRemote","MCP Remote docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fmcp-remote",{"key":403,"label":404,"href":405},"docs.mcp.ngrok","MCP ngrok docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fngrok-setup",{"key":407,"label":408,"href":409},"docs.troubleshooting.macOS","macOS troubleshooting docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmeet-pieces\u002Ftroubleshooting\u002Fmacos",{"key":411,"label":412,"href":413},"docs.troubleshooting.windows","Windows troubleshooting docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmeet-pieces\u002Ftroubleshooting\u002Fwindows",{"key":415,"label":416,"href":417},"docs.troubleshooting.linux","Linux troubleshooting docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmeet-pieces\u002Ftroubleshooting\u002Flinux",{"key":419,"label":420,"href":421},"docs.privacy","Privacy and security docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fprivacy-security-your-data",{"key":423,"label":424,"href":425},"docs.support","Support docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fsupport",{"key":427,"label":428,"href":429},"portal.home","Pieces portal","https:\u002F\u002Fportal.pieces.app",{"key":431,"label":432,"href":433},"site.home","Website home","https:\u002F\u002Fpieces.app",{"key":435,"label":436,"href":437},"site.about","About page","https:\u002F\u002Fpieces.app\u002Fabout",{"key":439,"label":440,"href":441},"site.features","Features page","https:\u002F\u002Fpieces.app\u002Ffeatures",{"key":443,"label":444,"href":445},"site.plugins","Plugins page","https:\u002F\u002Fpieces.app\u002Fplugins",{"key":447,"label":448,"href":449},"site.contact","Contact page","https:\u002F\u002Fpieces.app\u002Fcontact",{"key":451,"label":58,"href":452},"site.updates","https:\u002F\u002Fpieces.app\u002Fupdates",{"key":454,"label":455,"href":456},"site.news","News","https:\u002F\u002Fpieces.app\u002Fnews",{"key":458,"label":459,"href":460},"site.events","Community events","https:\u002F\u002Fpieces.app\u002Fcommunity\u002Fevents",{"key":462,"label":463,"href":464},"site.userStories","User stories","https:\u002F\u002Fpieces.app\u002Fuser-stories",{"key":466,"label":467,"href":468},"site.academy","Academy","https:\u002F\u002Fpieces.app\u002Flearn\u002Facademy",{"key":470,"label":471,"href":472},"site.support","Website support","https:\u002F\u002Fpieces.app\u002Fsupport",{"key":474,"label":475,"href":476},"site.standup","Standup","https:\u002F\u002Fpieces.app\u002Fstandup",{"key":478,"label":34,"href":479},"site.blog","https:\u002F\u002Fcode.pieces.app\u002Fblog",{"key":481,"label":43,"href":482},"social.discord","https:\u002F\u002Fdiscord.gg\u002Fgetpieces",{"key":484,"label":46,"href":485},"social.x","https:\u002F\u002Fx.com\u002Fgetpieces",{"key":487,"label":488,"href":485},"social.twitter","Twitter",{"key":490,"label":491,"href":492},"social.instagram","Instagram","https:\u002F\u002Fwww.instagram.com\u002Fgetpieces\u002F",{"key":494,"label":495,"href":496},"social.tiktok","TikTok","https:\u002F\u002Fwww.tiktok.com\u002F@getpieces",{"key":498,"label":49,"href":499},"social.linkedin","https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fgetpieces\u002F",{"key":501,"label":502,"href":503},"social.youtube","YouTube","https:\u002F\u002Fyoutube.com\u002F@getpieces",{"key":505,"label":506,"href":507},"github.org","GitHub organization","https:\u002F\u002Fgithub.com\u002Fpieces-app",{"key":509,"label":510,"href":511},"github.support","GitHub support","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fsupport",{"key":513,"label":514,"href":515},"github.issues","GitHub issues","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fsupport\u002Fissues",{"key":517,"label":518,"href":519},"github.discussions","GitHub discussions","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fsupport\u002Fdiscussions",{"key":521,"label":522,"href":523},"github.documentation","GitHub documentation","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fdocumentation",{"key":525,"label":526,"href":527},"github.opensource","GitHub open source","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fopensource",{"key":529,"label":530,"href":531},"github.sdks.python","Python SDK","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fpieces-os-client-sdk-for-python",{"key":533,"label":534,"href":535},"github.sdks.typescript","TypeScript SDK","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fpieces-os-client-sdk-for-typescript",{"key":537,"label":538,"href":539},"github.sdks.dart","Dart SDK","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fpieces-os-client-sdk-for-dart",{"key":541,"label":542,"href":543},"github.sdks.kotlin","Kotlin SDK","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fpieces-os-client-sdk-for-kotlin",{"key":545,"label":546,"href":547},"github.plugins.obsidian","Obsidian plugin repository","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fobsidian-pieces",{"key":549,"label":550,"href":247},"github.plugins.jupyterlab","JupyterLab plugin repository",{"key":552,"label":553,"href":554},"github.plugins.sublime","Sublime plugin repository","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fplugin_sublime",{"key":556,"label":557,"href":558},"github.plugins.neovim","Neovim plugin repository","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fplugin_neovim",{"key":560,"label":561,"href":562},"github.cliAgent","CLI agent repository","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fcli-agent",{"key":564,"label":565,"href":566},"github.mcpDart","MCP Dart repository","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fmcp_dart",{"key":568,"label":569,"href":570},"github.awesomePieces","Awesome Pieces repository","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fawesome-pieces",{"key":572,"label":573,"href":66},"legal.privacyPolicy","Privacy policy",{"key":575,"label":576,"href":69},"legal.refundPolicy","Refund policy",{"key":578,"label":579,"href":72},"legal.terms","Terms",{"key":581,"label":582,"href":583},"legal.security","Legal security","https:\u002F\u002Fpieces.app\u002Flegal\u002Fsecurity",{"key":585,"label":586,"href":503},"videos.youtubeChannel","YouTube channel",{"key":588,"label":589,"href":590},"videos.gettingStartedDesktop","Getting started desktop video","https:\u002F\u002Fyoutu.be\u002FdUr1lRM_TYk",{"key":592,"label":593,"href":594},"videos.snippetDiscoveryxR","Snippet discovery video","https:\u002F\u002Fyoutu.be\u002FG6vb1USw-30",{"key":596,"label":597,"href":598},"sales.bookACall","Book a sales call","https:\u002F\u002Fcalendar.app.google\u002FWVUDtUfNy5Vst3sH7",{"key":600,"label":601,"href":602},"sales.enterprise","Enterprise form","https:\u002F\u002Fgetpieces.typeform.com\u002Fto\u002FaVQFTvpE",{"key":604,"label":605,"href":519},"sales.feedback","Feedback discussions",{"key":607,"label":608,"href":609},"sales.earlyAccess","Early access form","https:\u002F\u002Fgetpieces.typeform.com\u002Fearlyaccess",{"key":611,"label":612,"href":613},"sales.supportEmail","Support email","mailto:support@pieces.app",{"key":615,"label":616,"href":19},"routes.home","Home route",{"key":618,"label":619,"href":56},"routes.about","About route",{"key":621,"label":622,"href":12},"routes.downloads","Downloads route",{"key":624,"label":625,"href":626},"routes.thanks","Post-install thanks route","\u002Finstall\u002Fthanks",{"key":628,"label":629,"href":630},"routes.pricing","Pricing route","\u002Fpricing",{"key":632,"label":633,"href":634},"cta.freeTrial","Start free trial CTA (Pieces Pro) — used by \u002Fcampaigns\u002F* landing pages","https:\u002F\u002Fcampaigns.pieces.app\u002F",{"key":636,"label":637,"href":22},"routes.enterprise","Enterprise route",{"key":639,"label":640,"href":62},"routes.contact","Contact route",{"key":642,"label":643,"href":59},"routes.updates","Updates route",{"key":645,"label":646,"href":647},"routes.migrationError","Migration error route","\u002Fmigration\u002Ferror",{"key":649,"label":650,"href":651},"routes.authenticated","Post-login authenticated route","\u002Fauth\u002Fsigned-in",{"key":653,"label":654,"href":655},"routes.signed-out","Signed out route","\u002Fauth\u002Fsigned-out",{"key":657,"label":658,"href":659},"routes.authentication-error","Authentication error route","\u002Fauth\u002Ferror",{},"data\u002Fshared\u002Furls","NLkVE1lIUws518K-1QsSB6T-GvlXYIzcRL1HDhqarGQ",{"id":664,"title":665,"author":666,"authorPhoto":667,"authorPhotoAlt":668,"authorSlug":669,"body":670,"buttonText":1314,"buttonUrl":748,"category":1315,"date":1316,"description":1317,"draft":1318,"editorsPick":1318,"extension":1319,"featured":1318,"image":1320,"imageAlt":1321,"meta":1322,"navigation":32,"ogImage":1323,"ogImageAlt":1323,"path":1324,"seo":1325,"stem":1326,"tags":1323,"__hash__":1327},"blog\u002Fblog\u002Fhow-to-write-code-with-chatgpt.md","How to write code with ChatGPT and save it as snippets","James Olaogun","https:\u002F\u002Fstorage.googleapis.com\u002Fpieces-marketing-website\u002Fimages\u002Fblog\u002Fhow-to-write-code-with-chatgpt\u002Fauthor.jpeg","Photo of the author: James Olaogun.","james-olaogun",{"type":671,"value":672,"toc":1305},"minimark",[673,677,680,683,703,706,709,716,719,752,755,760,768,776,779,782,793,797,806,812,815,818,823,826,829,854,857,860,867,870,877,881,890,893,956,960,963,966,971,976,1004,1007,1010,1015,1018,1027,1031,1034,1075,1080,1132,1137,1168,1175,1180,1183,1189,1192,1195,1207,1212,1227,1232,1252,1255,1259,1262,1265,1302],[674,675,676],"p",{},"Generative AI has changed the way we code, be it for learning how to code or for building applications. We no longer need to write everything from scratch (thanks to AI’s auto-completion powers), and also do not need to switch between multiple tabs for debugging or other coding-related queries",[674,678,679],{},"Don’t believe me? Well, when was the last time you looked up StackOverflow, instead of asking your co-pilot buddy?",[674,681,682],{},"AI can help us become a 10x dev, and for that, we need to learn:",[684,685,686,697,700],"ul",{},[687,688,689,690],"li",{},"How to ",[691,692,696],"a",{"href":693,"rel":694},"https:\u002F\u002Fpieces.app\u002Fblog\u002F10-prompt-engineering-best-practices",[695],"nofollow","prompt LLMs better",[687,698,699],{},"How to automate repetitive tasks with the help of AI and",[687,701,702],{},"How to write code using ChatGPT",[674,704,705],{},"In this article, we will use the above mentioned tips, and show how to build a blog app with Next.js using code generated by ChatGPT and some code snippets from TinaCMS's official documentation.",[674,707,708],{},"Before we start building, let us understand the flow that we will follow to build the application:",[674,710,711],{},[712,713],"img",{"alt":714,"src":715},"","https:\u002F\u002Fstorage.googleapis.com\u002Fpieces-marketing-website\u002Fimages\u002Fblog\u002Fhow-to-write-code-with-chatgpt\u002Fimg-001.png",[674,717,718],{},"Here are the prerequisites that you need to follow along with the tutorial:",[684,720,721,730,744],{},[687,722,723,724,729],{},"An ",[691,725,728],{"href":726,"rel":727},"https:\u002F\u002Fchat.openai.com\u002Fauth\u002Flogin",[695],"OpenAI account"," to use ChatGPT for prompting",[687,731,732,737,738,743],{},[691,733,736],{"href":734,"rel":735},"https:\u002F\u002Fnodejs.org\u002Fen",[695],"Node.js"," and ",[691,739,742],{"href":740,"rel":741},"https:\u002F\u002Fwww.npmjs.com\u002F",[695],"Npm"," were installed to build the application.",[687,745,746,751],{},[691,747,750],{"href":748,"rel":749},"https:\u002F\u002Fdocs.pieces.app\u002Finstallation-getting-started\u002Fwhat-am-i-installing",[695],"Pieces is installed locally"," to save the snippets for easier coding.",[674,753,754],{},"We can build the blog app in five simple steps using ChatGPT and Pieces.",[756,757,759],"h2",{"id":758},"step-1-installing-pieces-to-save-code-snippets","Step 1: Installing Pieces to save code snippets",[674,761,762,763,767],{},"To smoothen our development process, we need to install ",[691,764,8],{"href":765,"rel":766},"https:\u002F\u002Fpieces.app\u002F",[695],", that can help us in creating the snippets as mentioned in the diagram above.",[674,769,770,771,775],{},"Pieces, which is an AI-enabled productivity tool, is designed to increase developer efficiency through personalized workflow assistance across the entire toolchain. You can install it by following the instructions in the ",[691,772,774],{"href":748,"rel":773},[695],"documentation",", which provides installation steps for Mac, Windows, and Linux operating systems.",[674,777,778],{},"You need to install the desktop application, browser extension, and IDE extension for Pieces.",[674,780,781],{},"Here’s how it will be used:",[684,783,784,787,790],{},[687,785,786],{},"The desktop application will be used to create, retrieve, and transform code snippets.",[687,788,789],{},"The browser extension will be used mostly to save, copy, and share code snippets.",[687,791,792],{},"The IDE extension will be used to save, reuse, and share code snippets.",[756,794,796],{"id":795},"step-2-setting-up-the-nextjs-application","Step 2: Setting up the Next.JS application",[674,798,799,800,805],{},"The next step is to create a new Next.js application or use an existing Next.js application if you have one. As this tutorial shows how to use ChatGPT to write code, head over to ",[691,801,804],{"href":802,"rel":803},"https:\u002F\u002Fchat.openai.com\u002F",[695],"ChatGPT"," and type in the prompt below:",[674,807,808],{},[809,810,811],"em",{},"\"Show me how to initialize a Next.js application. The application should be named \"tinablog\" and the name of the folder should also be 'tinablog'.\"",[674,813,814],{},"The prompt above asks ChatGPT to show you how to write code for initializing a Next.js application and provides some context to guide ChatGPT, including the application and directory names.",[674,816,817],{},"You should get a response similar to the one in the following screenshot:",[674,819,820],{},[712,821],{"alt":714,"src":822},"https:\u002F\u002Fstorage.googleapis.com\u002Fpieces-marketing-website\u002Fimages\u002Fblog\u002Fhow-to-write-code-with-chatgpt\u002Fimg-002.png",[674,824,825],{},"With Pieces installed, you don't have to worry about losing your code snippets from ChatGPT.",[674,827,828],{},"You can save a code snippet from the ChatGPT response above.",[684,830,831,834,837,844,851],{},[687,832,833],{},"To do that, first enable the Pieces browser extension .",[687,835,836],{},"Then, go back to the ChatGPT chat thread, reload the page, and hover over any of the code snippets.",[687,838,839,840],{},"You'll see two Pieces buttons called ",[841,842,843],"strong",{},"Copy and Save and Share.",[687,845,846,847,850],{},"To save the code snippet from ChatGPT, click on the ",[841,848,849],{},"Copy and Save"," button.",[687,852,853],{},"Next, open the installed Pieces desktop application to see all the code snippets you've saved.",[674,855,856],{},"You can see that the Pieces desktop application has automatically added each snippet with titles, descriptions, tags, and related links.",[674,858,859],{},"Open your terminal or command line interface and change the directory to the preferred directory where you want your Next.js application to be initialized.",[674,861,862,863,866],{},"Copy the code snippet titled \"",[809,864,865],{},"Next.js blog creation with npx","\" from Pieces and run it in your terminal.",[674,868,869],{},"You should also see some prompts.",[674,871,872,873,876],{},"For this tutorial, you can select the default answers by hitting the ",[809,874,875],{},"Enter key"," until the package installation starts.",[756,878,880],{"id":879},"step-3-setting-up-tinacms","Step 3: Setting up TinaCMS",[674,882,883,884,889],{},"The next step in building this demo blog application is to set up ",[691,885,888],{"href":886,"rel":887},"https:\u002F\u002Ftina.io\u002F",[695],"TinaCMS",", an open-source headless CMS that supports the Markdown format.",[674,891,892],{},"This step is crucial, as by using this, we learn how to write code snippet in ChatGPT.",[684,894,895,910,913,916,923],{},[687,896,897,898,903,904,907],{},"Go to TinaCMS's official documentation on ",[691,899,902],{"href":900,"rel":901},"https:\u002F\u002Ftina.io\u002Fdocs\u002Fframeworks\u002Fnext\u002Foverview\u002F",[695],"TinaCMS and Next.js",", which explains how to set up a TinaCMS blog on a Next.js application.",[905,906],"br",{},[712,908],{"alt":714,"src":909},"https:\u002F\u002Fstorage.googleapis.com\u002Fpieces-marketing-website\u002Fimages\u002Fblog\u002Fhow-to-write-code-with-chatgpt\u002Fimg-003.png",[687,911,912],{},"Save all the code snippets to Pieces, just as you did for the ChatGPT response earlier.",[687,914,915],{},"Once you've saved the code snippets on the page, launch your Pieces desktop application.",[687,917,918,919,922],{},"Then, change the directory to the Next.js application with cd tinablog and run the \"",[841,920,921],{},"TinaCMS CLI Initialization","\" command saved in Pieces.",[687,924,925,926],{},"You'll be prompted with some questions. Use the following responses:",[684,927,928,936,943,949],{},[687,929,930,931,935],{},"When asked for your Tina Cloud Client ID, as the prompt says, you can hit ",[932,933,934],"code",{},"Enter"," to set it later.",[687,937,938,939,942],{},"Select ",[932,940,941],{},"npm"," as your package manager.",[687,944,938,945,948],{},[932,946,947],{},"Next.js"," as your framework.",[687,950,951,952,955],{},"Select \"",[841,953,954],{},"No","\" when asked whether you'd like to use TypeScript for your Tina configuration.",[756,957,959],{"id":958},"step-4-using-chatgpt-to-write-code-for-the-post-listing-page","Step 4: Using ChatGPT to write code for the post listing page",[674,961,962],{},"In this section, we will learn how to use ChatGPT4 to write code for a page that lists all blog posts.",[674,964,965],{},"Enter the following ChatGPT prompts:",[674,967,968],{},[809,969,970],{},"Show me how to add a post listing page to a Next.js and TinaCMS application.",[674,972,973],{},[809,974,975],{},"Use the guides below:",[977,978,979,984,989,994,999],"ol",{},[687,980,981],{},[809,982,983],{},"Do not create separate components or pages.",[687,985,986],{},[809,987,988],{},"Ensure you add everything in a single file.",[687,990,991],{},[809,992,993],{},"Export const getStaticProps async function that gets and returns data, query, and variables from client.queries.postConnection()",[687,995,996],{},[809,997,998],{},"Export default PostList(prop) function that gets the prop data from the returned data, query, and variables.",[687,1000,1001],{},[809,1002,1003],{},"Ensure you style the page.",[674,1005,1006],{},"The prompt above asks ChatGPT to describe how you can add a post listing page to your Next.js TinaCMS application and includes some context to guide how it should respond.",[674,1008,1009],{},"You should receive a response similar to this:",[674,1011,1012],{},[712,1013],{"alt":714,"src":1014},"https:\u002F\u002Fstorage.googleapis.com\u002Fpieces-marketing-website\u002Fimages\u002Fblog\u002Fhow-to-write-code-with-chatgpt\u002Fimg-004.png",[674,1016,1017],{},"You should note that ChatGPT may not always return the exact same response, but the prompt should produce a response with a similar goal.",[674,1019,1020,1021,1026],{},"If you would like to continue with the exact code used in this tutorial, you can save it ",[691,1022,1025],{"href":1023,"rel":1024},"https:\u002F\u002Fcd8ccabe-04ad-4159-ba09-b4369deaca2f.pieces.cloud\u002F?p=34f64aa9cd",[695],"here",".",[756,1028,1030],{"id":1029},"step-5-using-chatgpt-to-debug-code-for-the-application","Step 5: Using ChatGPT to debug code for the application",[674,1032,1033],{},"The final step before saving this code to Pieces is to debug and run it locally to ensure it is working as expected.",[684,1035,1036,1039,1042,1063],{},[687,1037,1038],{},"Change the directory to the src\u002Fpages folder of your application, create a new file called posts.js, and paste the code snippet into the newly created file.",[687,1040,1041],{},"After that, go back to the root directory and run the npm run dev command to compile the application.",[687,1043,1044,1045,1048,1049,1051,1052],{},"You can now use ChatGPT for debugging ",[932,1046,1047],{},"posts.js"," with the following prompt:",[905,1050],{},"\"*There are a few errors in the code snippet you provided above. You can fix them by doing the following:",[684,1053,1054,1057,1060],{},[687,1055,1056],{},"You should add await before client.queries.postConnection()",[687,1058,1059],{},"I guess there should be a postConnection before data.posts.edges. It should be something like data.posts.postConnection.edges",[687,1061,1062],{},"The node child should be {node.node._sys.filename} not {node.sys.filename}\"*",[687,1064,1065,1066,1068,1069,1074],{},"ChatGPT will then fix the code in response to your feedback. As mentioned before, ChatGPT might not return the same response.",[905,1067],{},"Hence, here is the ",[691,1070,1073],{"href":1071,"rel":1072},"https:\u002F\u002Fcd8ccabe-04ad-4159-ba09-b4369deaca2f.pieces.cloud\u002F?p=84b84cb060",[695],"link"," to the code snippet from the response shown in the screenshot below:",[674,1076,1077],{},[712,1078],{"alt":714,"src":1079},"https:\u002F\u002Fstorage.googleapis.com\u002Fpieces-marketing-website\u002Fimages\u002Fblog\u002Fhow-to-write-code-with-chatgpt\u002Fimg-005.png",[684,1081,1082,1085,1104,1110,1124],{},[687,1083,1084],{},"Copy the code snippet from the response, then replace the contents of the posts.js file with the copied code. Once you save the changes, the code should compile successfully.",[687,1086,1087,1088,1092,1093,1095,1096,1098,1099,1103],{},"View the page by visiting ",[1089,1090],"binding",{"value":1091},"APPLICATION\\_URL","\u002Fposts, where ",[1089,1094],{"value":1091}," is your server URL.",[905,1097],{},"In this example, it's ",[691,1100,1101],{"href":1101,"rel":1102},"http:\u002F\u002Flocalhost:3000",[695],". You can find your server URL in the compile log.",[687,1105,1106,1107],{},"When you try to load the post page, you'll get a server error. ",[809,1108,1109],{},"This is because the data.loading variable has an undefined value, and an undefined value cannot be serialized as JSON.",[687,1111,1112,1113,1115,1116],{},"Head back to ChatGPT to debug posts.js with the following ChatGPT prompt examples:",[905,1114],{},"*\"There are a few errors in the corrected code snippet you provided above. You can fix them by doing the following:",[684,1117,1118,1121],{},[687,1119,1120],{},"Remove everything that has to do with loading and error. (It should be const { data } = await client.queries.postConnection();",[687,1122,1123],{},"The node child should be {node.node._sys.filename} not {node.data.title}\"*",[687,1125,1126,1127,1131],{},"ChatGPT will again rework the code in response to your feedback. Here is the ",[691,1128,1073],{"href":1129,"rel":1130},"https:\u002F\u002Fcd8ccabe-04ad-4159-ba09-b4369deaca2f.pieces.cloud\u002F?p=08b94d83bd",[695]," to the code snippet shown in the screenshot below:",[674,1133,1134],{},[712,1135],{"alt":714,"src":1136},"https:\u002F\u002Fstorage.googleapis.com\u002Fpieces-marketing-website\u002Fimages\u002Fblog\u002Fhow-to-write-code-with-chatgpt\u002Fimg-006.png",[684,1138,1139,1142,1148,1151],{},[687,1140,1141],{},"Copy the code snippet in the response, go to your posts.js file, remove the existing code in the file, and paste the code snippet you copied into posts.js.",[687,1143,1144,1145,1147],{},"Proceed to view the page by visiting ",[1089,1146],{"value":1091},"\u002Fposts.",[687,1149,1150],{},"Upon visiting the page, the example produces another error.",[687,1152,1153,1154,1156,1157],{},"You will have to head back to ChatGPT to debug posts.js by providing the prompt below:",[905,1155],{},"\n*\"There are a few errors in the corrected code snippet you provided above. You can fix them by doing the following:\n",[684,1158,1159,1162],{},[687,1160,1161],{},"Since you are no longer returning the \"post\" key, data.posts.postConnection.edges.map(({ node }) should be data.postConnection.edges.map(({ node })",[687,1163,1164,1165,1167],{},"Remove the \"link\" tag and use \"a\" tag-",[905,1166],{},"\n The node child should be {node._sys.filename} not {node.node._sys.filename}\"*",[674,1169,1170,1171,1026],{},"The prompt above produces the following response, which you can also find ​​",[691,1172,1025],{"href":1173,"rel":1174},"https:\u002F\u002Fcd8ccabe-04ad-4159-ba09-b4369deaca2f.pieces.cloud\u002F?p=0ed24393e8",[695],[674,1176,1177],{},[712,1178],{"alt":714,"src":1179},"https:\u002F\u002Fstorage.googleapis.com\u002Fpieces-marketing-website\u002Fimages\u002Fblog\u002Fhow-to-write-code-with-chatgpt\u002Fimg-007.png",[674,1181,1182],{},"Once again, replace the contents of the posts.js file with this updated code. Save the changes, and the code will compile.",[674,1184,1185,1186,1188],{},"When you view the page by visiting ",[1089,1187],{"value":1091},"\u002Fposts, it should load successfully without any errors",[674,1190,1191],{},"Before you proceed to demo the application, save the final, corrected snippet using Pieces. To do that, head back to ChatGPT, ensure you have the Pieces browser extension enabled, and use the Copy and Save button.",[674,1193,1194],{},"Pieces also provides a transform code feature. This feature enables you to make your code snippets more readable by adding inline comments and optimizing the code for better performance.",[674,1196,1197,1198,1202,1203,1206],{},"To use the code transformation feature, open the ",[691,1199,1201],{"href":748,"rel":1200},[695],"Pieces desktop app",", select the snippet starting with \"",[841,1204,1205],{},"React Post List Component",",\" and click the Edit icon in the upper right:",[674,1208,1209],{},[841,1210,1211],{},"You'll be presented with the transform code interface (edit mode).",[684,1213,1214,1221,1224],{},[687,1215,1216,1217,1220],{},"In edit mode, you can click the ",[841,1218,1219],{},"Improve Readability"," icon on the right side of the screen to make the code more readable.",[687,1222,1223],{},"Clicking the icon will apply improvements such as adding comments and making the code more legible.",[687,1225,1226],{},"Feel free to play around with other code transformation features in edit mode.",[674,1228,1229],{},[809,1230,1231],{},"Also, the Pieces Copilot within the desktop application has ChatGPT and other proprietary AI models built in, which means you can code, write, save and reuse all within Pieces.",[977,1233,1234,1240,1247],{},[687,1235,1236,1237],{},"To view the blog demo, go to the TinaCMS admin page, by visiting ",[932,1238,1239],{},"{{APPLICATION\\_URL}}\u002Fadmin\u002Findex.html",[687,1241,1242,1243,1246],{},"Click the ",[841,1244,1245],{},"Enter Edit Mode"," button to start managing your blog application. If you want, you can add more blog posts.",[687,1248,1249,1250,1147],{},"To access all the blogs, go to ",[1089,1251],{"value":1091},[674,1253,1254],{},"Finally, you can view an individual blog post by clicking any of the listed posts.",[756,1256,1258],{"id":1257},"final-steps","Final steps",[674,1260,1261],{},"If you have read this article to the end, you have not only built a blog app for yourself but also learned how to code using ChatGPT by writing prompts and using tools like Pieces to speed up the coding process.",[674,1263,1264],{},"If you are interested in this post, you'll find the other ones to your good use:",[977,1266,1267,1274,1281,1288,1295],{},[687,1268,1269],{},[691,1270,1273],{"href":1271,"rel":1272},"https:\u002F\u002Fpieces.app\u002Fblog\u002Fopen-source-llms",[695],"Essential open source large language models to watch in 2025",[687,1275,1276],{},[691,1277,1280],{"href":1278,"rel":1279},"https:\u002F\u002Fpieces.app\u002Fblog\u002Fhacktoberfest",[695],"How to use Pieces to survive Hacktoberfest",[687,1282,1283],{},[691,1284,1287],{"href":1285,"rel":1286},"https:\u002F\u002Fpieces.app\u002Fblog\u002Fentity-resolution-with-data-flow",[695],"Acceptable and fast user entity resolution using dataflow",[687,1289,1290],{},[691,1291,1294],{"href":1292,"rel":1293},"https:\u002F\u002Fpieces.app\u002Fblog\u002Fllm-prompt-engineering",[695],"Developer’s guide to LLM prompt engineering",[687,1296,1297],{},[691,1298,1301],{"href":1299,"rel":1300},"https:\u002F\u002Fpieces.app\u002Fblog\u002Ftop-5-open-source-ai-chatbots-for-developers",[695],"8 Best open source AI chatbots to speed up your development process",[674,1303,1304],{},"This article was first published on September 21st, 2023, and was improved by Haimantika Mitra as of December 17th, 2024, to improve your experience and share the latest information.",{"title":714,"searchDepth":1306,"depth":1306,"links":1307},2,[1308,1309,1310,1311,1312,1313],{"id":758,"depth":1306,"text":759},{"id":795,"depth":1306,"text":796},{"id":879,"depth":1306,"text":880},{"id":958,"depth":1306,"text":959},{"id":1029,"depth":1306,"text":1030},{"id":1257,"depth":1306,"text":1258},"Try Pieces","Software Development","2024-12-17T00:00:00.000Z","Learn techniques to use ChatGPT for coding, generate accurate code snippets, debug effectively, and create a sustainable programming workflow.",false,"md","https:\u002F\u002Fstorage.googleapis.com\u002Fpieces-marketing-website\u002Fimages\u002Fblog\u002Fhow-to-write-code-with-chatgpt\u002Fhero.png","Photo of a person coding in their laptop.",{},null,"\u002Fblog\u002Fhow-to-write-code-with-chatgpt",{"title":665,"description":1317},"blog\u002Fhow-to-write-code-with-chatgpt","PQGF1OKe2t-TxbwMOgWfF842MQQSGabPuWJYDhr5eos",{"id":1329,"title":666,"body":1330,"description":714,"draft":1318,"extension":1319,"meta":1334,"navigation":32,"path":1335,"photo":1336,"photoAlt":1323,"seo":1337,"stem":1338,"__hash__":1339},"authors\u002Fauthors\u002Fjames-olaogun.md",{"type":671,"value":1331,"toc":1332},[],{"title":714,"searchDepth":1306,"depth":1306,"links":1333},[],{},"\u002Fauthors\u002Fjames-olaogun","https:\u002F\u002Fstorage.googleapis.com\u002Fpieces-marketing-website\u002Fimages\u002Fauthors\u002Fplaceholder.svg",{"title":666,"description":714},"authors\u002Fjames-olaogun","v_dMAuTjWE8E5EuplJvY_lIV5YoJkNpOb_ET4hxLoEk",{"left":1341,"top":1341,"width":1342,"height":1342,"rotate":1341,"vFlip":1318,"hFlip":1318,"body":1343},0,24,"\u003Cpath fill=\"currentColor\" d=\"m7.825 13l4.9 4.9q.3.3.288.7t-.313.7q-.3.275-.7.288t-.7-.288l-6.6-6.6q-.15-.15-.213-.325T4.426 12t.063-.375t.212-.325l6.6-6.6q.275-.275.688-.275t.712.275q.3.3.3.713t-.3.712L7.825 11H19q.425 0 .713.288T20 12t-.288.713T19 13z\"\u002F>"]