Kevin Leiva
es · Leer en español← Projects
02Case studyKiosk · Government · CMS

Tótem Independencia.

A touchscreen kiosk for the Municipality of Independencia at Mall Barrio Independencia: a 43″ vertical 4K screen with public services, benefits and news, editable at any hour and still running when the mall's network goes down.

Role

Full-stack development (Awna)

Year

2026

Tótem Independencia

The problem

It's not a website: it's a single screen in a mall with nobody next to it. If text overflows or the network drops, it looks broken in front of everyone, and every change has to be publishable from the office.

The solution

01

Works offline

It boots from its local cache, syncs with ETag and downloads only the media that changed. New content loads when it returns to idle, never while someone is using it.

02

Publish and see it instantly

On publish, the CMS notifies the kiosk over an open connection. If that drops, it keeps updating on its own every 90 seconds.

03

A CMS that won't let you break it

Payload CMS in Spanish, with drafts, versions and scheduling. Every text limit was measured against the design so nothing overflows.

04

Visual builder

Custom pages on a 1080×1920 canvas with reach guides (1.75 m) and a warning if a button is smaller than 100×100 px. External links become QR codes.

Stack

Application

Next.jsPayload CMS 3ReactPWA

Data

PostgreSQLIndexedDBS3-compatible

Kiosk

WindowsChrome in kiosk modeWatchdog

Infra

AWS LightsailDockerCaddy
Next.jsPayload CMS 3ReactPWAPostgreSQLIndexedDBNext.jsPayload CMS 3ReactPWAPostgreSQLIndexedDBNext.jsPayload CMS 3ReactPWAPostgreSQLIndexedDBNext.jsPayload CMS 3ReactPWAPostgreSQLIndexedDB

Architecture

The screen doesn't query the CMS: it receives a pre-resolved, versioned bundle and renders it. The kiosk evaluates scheduling against its own clock, so an 08:00 notice shows up at 08:00 even after a night without network.

1

CMS

Payload CMS

Videos, banners, notices, news, programs and services.

Visual builder

GrapesJS with the kiosk's fixed canvas.

2

Server

Versioned bundle

With ETag: usually a 304 and nothing transferred.

Change notice

A stream that only says "ask again".

3

Kiosk

PWA player

Content in IndexedDB and media by sha256.

Heartbeat

Liveness signal, clock drift and the "Was this helpful?" survey.

4

Device

Kiosk mode

Auto-start, no sleep and a daily restart.

Watchdog

Checks the kiosk every 5 minutes.

Screens

01 / 06
Idle
01 IdleAttract mode
Home
02 HomeKiosk
Tarjeta Vecino
03 Tarjeta VecinoBenefit
Classes
04 ClassesProgram
Vehicle registration permit
05 Vehicle registration permitPublic service
News item
06 News itemWith QR

Next project · 03

Ñuñoa Deportes→

Kevin Leiva · kilp.dev03@gmail.com
LinkedIn
© 2026