2026-01-24 23:40:22 +01:00
<!DOCTYPE html>
<!-- retoor <retoor@molodetz.nl> -->
< html lang = "en" >
< head >
< meta charset = "UTF-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< title > Tutorials - Wren-CLI Manual</ title >
< link rel = "stylesheet" href = "../css/style.css" >
</ head >
< body >
< button class = "mobile-menu-toggle" > Menu</ button >
< div class = "container" >
< aside class = "sidebar" >
< div class = "sidebar-header" >
< h1 >< a href = "../index.html" > Wren-CLI</ a ></ h1 >
< div class = "version" > v0.4.0</ div >
</ div >
< nav class = "sidebar-nav" >
< div class = "section" >
< span class = "section-title" > Getting Started</ span >
< ul >
< li >< a href = "../getting-started/index.html" > Overview</ a ></ li >
< li >< a href = "../getting-started/installation.html" > Installation</ a ></ li >
< li >< a href = "../getting-started/first-script.html" > First Script</ a ></ li >
< li >< a href = "../getting-started/repl.html" > Using the REPL</ a ></ li >
</ ul >
</ div >
< div class = "section" >
< span class = "section-title" > Language</ span >
< ul >
< li >< a href = "../language/index.html" > Syntax Overview</ a ></ li >
< li >< a href = "../language/classes.html" > Classes</ a ></ li >
< li >< a href = "../language/methods.html" > Methods</ a ></ li >
< li >< a href = "../language/control-flow.html" > Control Flow</ a ></ li >
< li >< a href = "../language/fibers.html" > Fibers</ a ></ li >
< li >< a href = "../language/modules.html" > Modules</ a ></ li >
</ ul >
</ div >
< div class = "section" >
< span class = "section-title" > API Reference</ span >
< ul >
< li >< a href = "../api/index.html" > Overview</ a ></ li >
2026-01-25 04:58:39 +01:00
< li >< a href = "../api/string.html" > String</ a ></ li >
< li >< a href = "../api/number.html" > Num</ a ></ li >
2026-01-25 19:02:02 +01:00
< li >< a href = "../api/argparse.html" > argparse</ a ></ li >
2026-01-24 23:40:22 +01:00
< li >< a href = "../api/base64.html" > base64</ a ></ li >
< li >< a href = "../api/crypto.html" > crypto</ a ></ li >
2026-01-25 19:02:02 +01:00
< li >< a href = "../api/dataset.html" > dataset</ a ></ li >
2026-01-24 23:40:22 +01:00
< li >< a href = "../api/datetime.html" > datetime</ a ></ li >
2026-01-25 19:02:02 +01:00
< li >< a href = "../api/dns.html" > dns</ a ></ li >
< li >< a href = "../api/env.html" > env</ a ></ li >
< li >< a href = "../api/fswatch.html" > fswatch</ a ></ li >
< li >< a href = "../api/html.html" > html</ a ></ li >
< li >< a href = "../api/http.html" > http</ a ></ li >
2026-01-24 23:40:22 +01:00
< li >< a href = "../api/io.html" > io</ a ></ li >
2026-01-25 19:02:02 +01:00
< li >< a href = "../api/jinja.html" > jinja</ a ></ li >
< li >< a href = "../api/json.html" > json</ a ></ li >
< li >< a href = "../api/markdown.html" > markdown</ a ></ li >
2026-01-24 23:40:22 +01:00
< li >< a href = "../api/math.html" > math</ a ></ li >
2026-01-25 19:02:02 +01:00
< li >< a href = "../api/net.html" > net</ a ></ li >
< li >< a href = "../api/os.html" > os</ a ></ li >
< li >< a href = "../api/pathlib.html" > pathlib</ a ></ li >
< li >< a href = "../api/regex.html" > regex</ a ></ li >
< li >< a href = "../api/scheduler.html" > scheduler</ a ></ li >
< li >< a href = "../api/signal.html" > signal</ a ></ li >
< li >< a href = "../api/sqlite.html" > sqlite</ a ></ li >
< li >< a href = "../api/subprocess.html" > subprocess</ a ></ li >
< li >< a href = "../api/sysinfo.html" > sysinfo</ a ></ li >
< li >< a href = "../api/tempfile.html" > tempfile</ a ></ li >
< li >< a href = "../api/timer.html" > timer</ a ></ li >
< li >< a href = "../api/tls.html" > tls</ a ></ li >
< li >< a href = "../api/udp.html" > udp</ a ></ li >
< li >< a href = "../api/uuid.html" > uuid</ a ></ li >
< li >< a href = "../api/wdantic.html" > wdantic</ a ></ li >
< li >< a href = "../api/web.html" > web</ a ></ li >
< li >< a href = "../api/websocket.html" > websocket</ a ></ li >
2026-01-24 23:40:22 +01:00
</ ul >
</ div >
< div class = "section" >
< span class = "section-title" > Tutorials</ span >
< ul >
< li >< a href = "index.html" class = "active" > Tutorial List</ a ></ li >
< li >< a href = "http-client.html" > HTTP Client</ a ></ li >
< li >< a href = "websocket-chat.html" > WebSocket Chat</ a ></ li >
< li >< a href = "database-app.html" > Database App</ a ></ li >
2026-01-25 19:02:02 +01:00
< li >< a href = "template-rendering.html" > Templates</ a ></ li >
2026-01-24 23:40:22 +01:00
< li >< a href = "cli-tool.html" > CLI Tool</ a ></ li >
2026-01-25 19:02:02 +01:00
< li >< a href = "web-server.html" > Web Server</ a ></ li >
2026-01-24 23:40:22 +01:00
</ ul >
</ div >
< div class = "section" >
< span class = "section-title" > How-To Guides</ span >
< ul >
< li >< a href = "../howto/index.html" > How-To List</ a ></ li >
2026-01-25 19:02:02 +01:00
< li >< a href = "../howto/http-requests.html" > HTTP Requests</ a ></ li >
< li >< a href = "../howto/json-parsing.html" > JSON Parsing</ a ></ li >
< li >< a href = "../howto/regex-patterns.html" > Regex Patterns</ a ></ li >
< li >< a href = "../howto/file-operations.html" > File Operations</ a ></ li >
< li >< a href = "../howto/async-operations.html" > Async Operations</ a ></ li >
< li >< a href = "../howto/error-handling.html" > Error Handling</ a ></ li >
</ ul >
</ div >
< div class = "section" >
< span class = "section-title" > Contributing</ span >
< ul >
< li >< a href = "../contributing/index.html" > Overview</ a ></ li >
< li >< a href = "../contributing/module-overview.html" > Module Architecture</ a ></ li >
< li >< a href = "../contributing/pure-wren-module.html" > Pure-Wren Modules</ a ></ li >
< li >< a href = "../contributing/c-backed-module.html" > C-Backed Modules</ a ></ li >
< li >< a href = "../contributing/foreign-classes.html" > Foreign Classes</ a ></ li >
< li >< a href = "../contributing/async-patterns.html" > Async Patterns</ a ></ li >
< li >< a href = "../contributing/testing.html" > Writing Tests</ a ></ li >
< li >< a href = "../contributing/documentation.html" > Documentation</ a ></ li >
2026-01-24 23:40:22 +01:00
</ ul >
</ div >
</ nav >
</ aside >
< main class = "content" >
< nav class = "breadcrumb" >
< a href = "../index.html" > Home</ a >
< span class = "separator" > /</ span >
< span > Tutorials</ span >
</ nav >
< article >
< h1 > Tutorials</ h1 >
< p > Step-by-step tutorials that guide you through building complete applications with Wren-CLI. Each tutorial introduces new concepts and builds upon previous knowledge.</ p >
< div class = "card-grid" >
< div class = "card" >
< h3 >< a href = "http-client.html" > Building an HTTP Client</ a ></ h3 >
< p > Learn to make HTTP requests, parse JSON responses, and handle errors while building a REST API client.</ p >
< div class = "card-meta" >
< span class = "tag" > http</ span >
< span class = "tag" > json</ span >
</ div >
</ div >
< div class = "card" >
< h3 >< a href = "websocket-chat.html" > WebSocket Chat Application</ a ></ h3 >
< p > Build a real-time chat application using WebSockets with both client and server components.</ p >
< div class = "card-meta" >
< span class = "tag" > websocket</ span >
< span class = "tag" > fibers</ span >
</ div >
</ div >
< div class = "card" >
< h3 >< a href = "database-app.html" > Database Application</ a ></ h3 >
< p > Create a complete CRUD application using SQLite for persistent data storage.</ p >
< div class = "card-meta" >
< span class = "tag" > sqlite</ span >
< span class = "tag" > io</ span >
</ div >
</ div >
< div class = "card" >
< h3 >< a href = "template-rendering.html" > Template Rendering</ a ></ h3 >
< p > Use Jinja templates to generate HTML pages, reports, and configuration files.</ p >
< div class = "card-meta" >
< span class = "tag" > jinja</ span >
< span class = "tag" > io</ span >
</ div >
</ div >
< div class = "card" >
< h3 >< a href = "cli-tool.html" > Building a CLI Tool</ a ></ h3 >
< p > Create a command-line application with argument parsing, user input, and subprocess management.</ p >
< div class = "card-meta" >
< span class = "tag" > os</ span >
< span class = "tag" > subprocess</ span >
</ div >
</ div >
2026-01-25 19:02:02 +01:00
< div class = "card" >
< h3 >< a href = "web-server.html" > Building a Web Server</ a ></ h3 >
< p > Build HTTP servers with routing, sessions, middleware, and REST APIs using the web module.</ p >
< div class = "card-meta" >
< span class = "tag" > web</ span >
< span class = "tag" > http</ span >
</ div >
</ div >
2026-01-24 23:40:22 +01:00
</ div >
< h2 > Learning Path</ h2 >
< p > If you are new to Wren-CLI, we recommend following the tutorials in this order:</ p >
< ol >
< li >< strong > HTTP Client</ strong > - Introduces async operations and JSON handling</ li >
< li >< strong > Database Application</ strong > - Covers data persistence and file I/O</ li >
< li >< strong > Template Rendering</ strong > - Learn the Jinja template system</ li >
< li >< strong > WebSocket Chat</ strong > - Advanced async patterns with fibers</ li >
< li >< strong > CLI Tool</ strong > - Bringing it all together in a real application</ li >
2026-01-25 19:02:02 +01:00
< li >< strong > Web Server</ strong > - Build complete web applications with the web module</ li >
2026-01-24 23:40:22 +01:00
</ ol >
< h2 > Prerequisites</ h2 >
< p > Before starting the tutorials, you should:</ p >
< ul >
< li > Have Wren-CLI < a href = "../getting-started/installation.html" > installed</ a ></ li >
< li > Understand the < a href = "../language/index.html" > basic syntax</ a ></ li >
< li > Be familiar with < a href = "../language/classes.html" > classes</ a > and < a href = "../language/methods.html" > methods</ a ></ li >
</ ul >
</ article >
< footer class = "page-footer" >
< a href = "../api/math.html" class = "prev" > math</ a >
< a href = "http-client.html" class = "next" > HTTP Client</ a >
</ footer >
</ main >
</ div >
< script src = "../js/main.js" ></ script >
</ body >
</ html >