2026-01-26 05:12:14 +01:00
{# retoor < retoor @ molodetz . nl > #}
{% extends 'page.html' %}
{% set page_title = "Tutorials" %}
{% set breadcrumb = [{"title": "Tutorials"}] %}
{% set prev_page = {"url": "api/math.html", "title": "math"} %}
{% set next_page = {"url": "tutorials/http-client.html", "title": "HTTP Client"} %}
{% block 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 >
2026-01-26 10:21:03 +01:00
< div class = "card" >
< h3 >< a href = "dataset-orm.html" > Dataset ORM</ a ></ h3 >
< p > Master the dataset module for effortless database operations with automatic schema management.</ p >
< div class = "card-meta" >
< span class = "tag" > dataset</ span >
< span class = "tag" > sqlite</ span >
</ div >
</ div >
2026-01-26 05:12:14 +01:00
< 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 >
< 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 >
</ 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 >
2026-01-26 10:21:03 +01:00
< li >< strong > Database Application</ strong > - Covers raw SQLite data persistence</ li >
< li >< strong > Dataset ORM</ strong > - Effortless database operations with automatic schema</ li >
2026-01-26 05:12:14 +01:00
< 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 >
< li >< strong > Web Server</ strong > - Build complete web applications with the web module</ li >
</ 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 >
{% endblock %}