A collection of awesome apps, mods, and resources for WebScreen! Share your creative applications and discover what the community has built for the WebScreen IoT display device.
-
Clone this repository
git clone https://github.com/HW-Lab-Hardware-Design-Agency/WebScreen-Awesome.git cd WebScreen-Awesome
-
Create your app configuration (
webscreen.json
){ "settings": { "wifi": { "ssid": "your_network", "pass": "your_password" }, "mqtt": { "enabled": false } }, "screen": { "background": "#000000", "foreground": "#FFFFFF" }, "script": "app.js" }
-
Write your JavaScript app (
app.js
)"use strict"; print("Hello WebScreen!"); // Wait for WiFi connection while (!wifi_status()) { delay(500); print("Connecting to WiFi..."); } print("Connected! IP: " + wifi_get_ip()); // Create and display a label let label = create_label(210, 100); label_set_text(label, "Hello World!");
-
Copy files to SD card and insert into WebScreen device
WebScreen-Awesome/
โโโ examples/ # Community WebScreen applications
โ โโโ blink/ # Simple GIF animation display
โ โโโ timeapi_app/ # Time display with API integration
โ โโโ sd_reader/ # SD card file listing
โ โโโ [your-app-here]/ # Submit your awesome app!
โโโ CLAUDE.md # AI assistant documentation
โโโ LICENSE # MIT License
โโโ README.md # This file
This repository is inspired by the "awesome" lists tradition on GitHub - a place where the community comes together to share the best resources, tools, and creations. We want this to be THE place to discover cool WebScreen apps, learn from others' code, and showcase your own creative projects!
Simple app that displays an animated GIF from the SD card.
Files:
examples/blink/blink.js
- Main applicationexamples/blink/webscreen.json
- Configurationexamples/blink/blink.gif
- Animation asset
Fetches current time from an API and displays it with a clock widget.
Features:
- HTTPS API calls with certificate validation
- JSON parsing
- Dynamic UI updates with timer
- Custom styling for labels
Files:
examples/timeapi_app/timeapi_app.js
- Main applicationexamples/timeapi_app/webscreen.json
- Configurationexamples/timeapi_app/timeapi.pem
- SSL certificateexamples/timeapi_app/cat.gif
- Decorative animation
Credits: Based on the clock example by @nishad2m8
Lists files on the SD card and displays WiFi connection status.
Files:
examples/sd_reader/sd_reader.js
- Main applicationexamples/sd_reader/webscreen.json
- Configuration
// System
print(message) // Console output
delay(milliseconds) // Blocking delay
toNumber(string) // Convert string to number
numberToString(number) // Convert number to string
// WiFi
wifi_status() // Check connection status
wifi_get_ip() // Get assigned IP address
// HTTP
http_get(url) // GET request
http_set_ca_cert_from_sd(path) // Load SSL certificate
// JSON
parse_json_value(json, key) // Extract value from JSON
// SD Card
sd_list_dir(path) // List directory contents
show_gif_from_sd(path, x, y) // Display GIF at position
// UI - Labels
create_label(x, y) // Create text label
label_set_text(label, text) // Update label text
obj_add_style(obj, style, selector) // Apply style
// UI - Styling
create_style() // Create new style object
style_set_text_font(style, size) // Set font size
style_set_text_color(style, color) // Set text color (0xRRGGBB)
style_set_pad_all(style, pixels) // Set padding
style_set_text_align(style, align) // Set alignment
// Timers
create_timer(function_name, interval_ms) // Create periodic timer
{
"settings": {
"wifi": {
"ssid": "network_name", // WiFi network name
"pass": "password" // WiFi password
},
"mqtt": {
"enabled": false // Enable/disable MQTT
}
},
"screen": {
"background": "#000000", // Background color (hex)
"foreground": "#FFFFFF" // Text color (hex)
},
"script": "app.js" // JavaScript file to run
}
Use our web-based IDE for rapid development without SD card swapping:
- Access: serial.webscreen.cc
- Features:
- Live serial console with command history
- JavaScript editor with syntax highlighting and WebScreen API autocomplete
- File manager for uploading/downloading files
- Direct code execution on device (F5 or Run button)
- Dual theme support (Retro amber phosphor or VS Code-like Focus theme)
- Browser Support: Chrome, Edge, or Opera (requires Web Serial API)
-
Always use strict mode
"use strict";
-
Wait for WiFi before network operations
while (!wifi_status()) { delay(500); }
-
File paths use forward slashes
show_gif_from_sd("/animation.gif");
-
Timer callbacks use function name as string
let update = function() { /* ... */ }; create_timer("update", 1000);
-
Colors use 0xRRGGBB format in styles
style_set_text_color(style, 0xFF0000); // Red
- WebScreen Software: GitHub Repository
- Documentation: WebScreen.cc
- Hardware: CrowdSupply
- Web Flasher: flash.webscreen.cc
Share your awesome WebScreen apps with the community!
We welcome contributions of:
- ๐ฎ Your Apps: Share your creative WebScreen applications
- ๐ ๏ธ Mods & Hacks: Hardware modifications, custom cases, integrations
- ๐ Tutorials: How-to guides and learning resources
- ๐จ Themes & Assets: Custom graphics, animations, and UI themes
- ๐ง Tools & Utilities: Development tools and helper scripts
- ๐ Documentation: API improvements and examples
- Fork this repository
- Add your app to the
examples/
directory with its own folder - Include a README with description, screenshots/GIFs, and setup instructions
- Submit a pull request with your awesome creation!
- Include all necessary files (
*.js
,webscreen.json
, assets) - Add clear documentation and comments
- Test your app on actual WebScreen hardware
- Include attribution/credits where appropriate
This project is licensed under the MIT License - see the LICENSE file for details.
- Discord Community: Join our Discord - Get help with your apps and connect with other developers
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Website: WebScreen.cc