impress.js animates these slides with CSS 3D transforms, which this browser does not support. Open the deck in a current version of Chrome, Firefox, Safari, or Edge.
What messaging protocols do apps use beyond plain HTTP REST?
Learn a tool stack you can use for pure web applications and later scale into IoT, firmware, and hardware.
Master deploying cloud environments by practicing first on a local Linux SSH server.
Core goal: kickstart your journey, help you build things with MQTT, and prepare you for future software, hardware, and IoT projects.
Ubuntu is roughly 1 to 3 GB. Start it now and let it download in the background while we talk. Do not wait for it to finish.
Ubuntu 24.04.Mac and Linux users: skip this. You already have a terminal, nothing to install.
Windows browses. Linux runs servers. WSL2 is a real Ubuntu kernel inside Windows, with its own filesystem, networking, and always-on services.
# verify you are on a Linux kernel uname -a # if the Store failed, use an Admin PowerShell wsl --install -d Ubuntu-24.04
Password is invisible. When you type it, nothing appears. No dots, no stars. That is Linux security, not a broken keyboard.
Virtualization error? Enable Virtual Machine Platform and Windows Subsystem for Linux in Windows Features, then reboot.
What is Kiro? An agentic development environment that turns plain English specification into working code, tooling, and terminal workflows.
Action pause. Redeem your credits and confirm your tier now. Raise your hand for login or access errors and we fix it together.
Steering via a single plain English file such as project.md beats unstructured chat prompts: the intent stays stable, reviewable, and repeatable across sessions.
Under the hood: Kiro harnesses powerful models such as Claude or Sonnet. Raw model quality is the engine, not the whole vehicle.
What Kiro adds: a spec-driven workspace and orchestration harness that manages context, files, tools, and execution order, so you keep strict control over your code generation.
Tip: use Kiro as your real-time learning assistant. Ask it to explain every command before you run it.
Interactive check. Who here uses Linux or Unix devices?
Reveal: Your iPhone runs iOS on Darwin, a direct descendant of Unix. Your Android phone runs the Linux kernel. Your pocket is full of Unix and Linux.
You have been using Unix and Linux for years without calling it that. Today we just give it a terminal.
# connect to your server ssh user@host # confirm who and where you are whoami hostname uname -a # packages need root sudo apt update
| Polling | Client asks again and again, wasting requests and battery to discover nothing changed |
| Headers | Every REST call carries kilobytes of text overhead before any payload |
| Real time | Needs WebSockets or SSE bolted on just to fake a push |
| Devices | Sensors on constrained networks cannot afford HTTP round trips |
workshop/chatInstall the broker, test it in the terminal, then prompt Kiro for the web app.
# install the broker and clients sudo apt update sudo apt install -y mosquitto mosquitto-clients # start it and check it sudo systemctl enable mosquitto sudo systemctl start mosquitto sudo systemctl status mosquitto
# terminal 1: subscribe mosquitto_sub -h localhost -t workshop/chat # terminal 2: publish mosquitto_pub -h localhost -t workshop/chat -m "hello"
Two terminals is the whole lesson. One listens, one talks, the broker connects them.
# Project: Minimal MQTT Chat WebApp and Linux Broker Setup ## Objective Help the user learn how to set up an MQTT broker on a Linux SSH server, test it using terminal commands, and build a barebones web application to demonstrate real-time pub/sub messaging. ## Tech Stack - Broker: Mosquitto MQTT Broker running on Linux via SSH - Terminal Tools: `mosquitto_pub` and `mosquitto_sub` - Web Frontend: Simple HTML, CSS, and JS using MQTT.js via CDN ## Core Requirements 1. Linux and SSH Instructions: Provide clear terminal commands to install and start Mosquitto on Linux. 2. Terminal Testing: Show how to open two terminal windows to publish and subscribe to a test topic (`workshop/chat`). 3. Chat WebApp: Generate a single `index.html` file with a basic input field, send button, and raw message log box without complex styling.
Leverage the steering file to have Kiro generate a barebones web app tied to the broker. One file, no build step, no framework.
| Connect | MQTT.js client points at the broker WebSocket port |
| Subscribe | Client listens on workshop/chat and appends incoming text to the log |
| Publish | Send button publishes the input value to the same topic |
Open two or more tabs. Every connected browser joins the topic and updates instantly, with no refresh and no polling. The SSH subscriber prints the same message, proving one broker serves all clients.
You have a broker running on Linux, a terminal-proven pub/sub path, and a browser client you built by describing it.
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░ █████╗ ██╗██╗██╗███████╗ ██╗ ██╗██████╗ ██████╗███████╗██████╗ ██╗ ██╗ ░░
░░ ██╔══██╗██║██║██║██╔════╝ ██║ ██║██╔════╝ ██╔════╝██╔════╝██╔══██╗██║ ██║ ░░
░░ ███████║██║██║██║███████╗ ██║ ██║██║ ███╗ ██║ █████╗ ██████╔╝██║ ██║ ░░
░░ ██╔══██║██║██║██║╚════██║ ██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║ ██║ ░░
░░ ██║ ██║╚█████╔╝███████║ ╚██████╔╝╚██████╔╝ ╚██████╗███████╗██████╔╝╚██████╔╝ ░░
░░ ╚═╝ ╚═╝ ╚════╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝╚══════╝╚═════╝ ╚═════╝ ░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
▲ ▼ ▲ A W S U G C E B U ▲ ▼ ▲
Community-led · Tech-driven · Inclusive
A grassroots community dedicated to peer-to-peer cloud learning, builder empowerment, and technology sharing across Cebu.
Open to everyone. Join regardless of educational attainment or job title. All you need is a drive to learn.
Visit our central hub: awsugcebu.org
Meetup
Meetup.com Group
Luma
lu.ma/awsugcebu
Messenger
m.me/awsugcebu
Facebook
facebook.com/awsugcebu
Point your phone camera at any QR code above to join our events, chats, and social channels.
MQTT on Linux with Kiro CLI · arrow keys, space, or swipe