Create Python web applications for BlackBerry 10 devices and reach the BB10 community
Reach passionate BlackBerry 10 users who are actively using their devices in 2025
Build with Flask, FastAPI, or any Python web framework - it just works
Package once, distribute via BerryStore, automatic updates and management
BerryPy is a modern web-based application platform for BlackBerry BB10/QNX devices. It provides:
http://127.0.0.1:8001โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ BlackBerry Browser โ
โ http://127.0.0.1:8001 โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ BerryPy Flask Server โ
โ โข Manage apps โ
โ โข Process control โ
โ โข Download/Install โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ BerryStore (berrystore.sw7ft.com) โ
โ โข Web apps โ ~/apps/ โ
โ โข CLI tools โ ~/usr/local/bin/ โ
โ โข Metadata โ catalog.json โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Python web applications (Flask, FastAPI, etc.)
/accounts/1000/shared/misc/apps/Command-line utilities and binaries
/accounts/1000/shared/misc/bin/Build a simple Flask/FastAPI web application:
# app.py
from flask import Flask, render_template
app = Flask(__name__)
PORT = 8100 # Choose a unique port
@app.route('/')
def home():
return render_template('index.html')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=PORT)
๐ก Tip: Make sure to define a PORT variable or use app.run(port=XXXX) so BerryPy can detect it!
Make your app look great when added to the BB10 home screen:
<!-- Add to your HTML <head> -->
<link rel="icon" href="https://berrystore.sw7ft.com/apps/app-icons/yourapp.png">
<link rel="apple-touch-icon" href="https://berrystore.sw7ft.com/apps/app-icons/yourapp.png">
<link rel="apple-touch-icon-precomposed" href="https://berrystore.sw7ft.com/apps/app-icons/yourapp.png">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="Your App">
<meta name="theme-color" content="#9b59b6">
Design a 48x48 pixel PNG icon for your app:
yourapp.png (lowercase, no spaces)Create a .zip file with this structure:
YourApp.zip
โโโ app.py # Main Python file
โโโ templates/
โ โโโ index.html # HTML templates
โโโ static/
โ โโโ style.css # Stylesheets
โ โโโ script.js # JavaScript
โโโ requirements.txt # Python dependencies
Command to create:
zip -r YourApp.zip app.py templates/ static/ requirements.txt
Create an entry in catalog.json:
{
"YourApp": {
"name": "Your App Name",
"description": "A brief description of what your app does",
"category": "Productivity", // or Tools, Social, Entertainment, etc.
"version": "1.0.0",
"author": "Your Name",
"icon": "yourapp.png", // Your 48x48 icon filename
"requirements": [ // Optional: Python packages needed
"flask",
"requests"
]
}
}
BlackBerry 10 doesn't have bash or GNU utilities. Using Linux-specific commands will cause your app to fail.
| Rule | โ Wrong (Linux) | โ Correct (QNX) |
|---|---|---|
| Shebang | #!/bin/bash | #!/bin/sh |
| Process Check | ps -p $PID | pidin -p $PID |
| Shell Test | [[ condition ]] | [ condition ] |
| String Compare | == | = |
๐ Full compatibility guide: docs/QNX-COMPATIBILITY.md
Before submitting, you MUST test on an actual BlackBerry 10 device:
# Copy your app to BB10 device
scp YourApp.zip bb10:/accounts/1000/shared/misc/apps/
# SSH to device
ssh bb10
# Extract and test
cd /accounts/1000/shared/misc/apps/
unzip YourApp.zip -d YourApp
cd YourApp
python3 app.py
# Open browser to http://127.0.0.1:XXXX
Ready to publish? Here's how:
/apps//apps/app-icons//apps/catalog.jsonJoin the BlackBerry 10 developer community and help keep BB10 alive!
© 2025 Your Company. All rights reserved.