- A personal Control Center for your browser and Homey Pro
StartPanel is a lightweight and customizable browser start page and dashboard, built with TypeScript and Vite.
It allows you to collect links, widgets, and Homey Pro controls in one place, running entirely in the browser with no backend or database required.
All settings and layout data are stored locally in your browser, giving you full control of your configuration.
- Customizable start page with links and widgets
- Homey dashboard with live capability updates via Homey Cloud
- Flexible layouts including column layout or free placement
- Support for background images / floorplan dashboards
- Multiple tabs (for example per room, floor, or function)
- Installable as a Progressive Web App (PWA) for tablet or kiosk setups
- Runs directly from GitHub Pages or can be hosted locally
Just go to:
https://startpanelapp.github.io/
This is a web-based start page / dashboard written in TypeScript, developed with significant help from Google AI Studio.
Note: This is not an official Homey app. It is a personal project that I originally built for my own use.
StartPanel combines a start page and dashboard where you can collect links and different widgets in one place.
All settings, widgets, favorite links, and layout data are automatically stored in your browser's LocalStorage, meaning nothing is stored externally (unless you choose cloud sync).
For common questions, see the FAQ section further down on this page.
To use StartPanel with Homey Pro 2023, you can connect through the Homey Cloud, run the app locally on a NAS, or simply use webhooks.
Depending on how you run the app, you can view device status and control devices directly from the page.
Simply open:
👉 https://startpanelapp.github.io/
This is the easiest way to use StartPanelApp.
Requirements:
- A Homey Pro 2023 or newer
- Your Homey ID
- A Homey API Key
The connection is made through Homey Cloud, which provides live updates.
Alternatively, you can use webhooks only, which requires no authentication but provides limited functionality.
(Webhooks also work with older Homey models.)
Go to:
Settings → General → Cloud → Homey Cloud
Copy the Homey ID and paste it into:
StartPanel → Settings → Homey → Homey ID
Go to:
Settings → API Keys
Create a new API key and give it the required permissions
(at minimum Devices, Flows, and Variables).
Copy the key and paste it into:
StartPanel → Settings → Homey → API Key / Bearer Token
This web app can be installed on Android using Google Chrome as a Progressive Web App (PWA).
This provides a cleaner interface without the browser address bar and works perfectly for tablet dashboards or kiosk setups.
Steps may vary depending on device and Android version.
- Open the web app in Google Chrome
- Tap ⋮ (three dots) in the top-right corner
- Select Add to Home screen or Install App
- Confirm by tapping Install
The app will now appear among your other apps and can be launched like a normal application.
The app updates automatically whenever a new version is published on GitHub.
No manual reinstallation is required.
This is perfect for a dedicated Homey control panel on a wall-mounted tablet.
Steps (may vary between Android devices):
- Go to Settings → Security
- Enable Screen Pinning
- Open the StartPanel app
- Tap the Recent Apps button
- Tap the pin icon
The user can now not leave the app without entering the device PIN.
(Some Android devices may not support this feature.)
If you want to avoid cloud services or GitHub dependencies, you can run StartPanel locally on a NAS such as:
- Asustor
- Synology
- QNAP
When running locally, the system uses polling instead of live updates, meaning device updates occur with a small delay based on the selected polling interval.
⭐ Do I need to be on the same network as Homey?
Yes – if you connect locally using polling.
Exception: If you use VPN, everything works normally because the connection behaves as if you were on the same local network.
No – if you connect through Homey Cloud, which works regardless of where the web page itself is hosted.
If you do not already have a web server installed, see the instructions further below.
https://github.com/StartPanelApp/StartPanelApp.github.io
You only need:
index.html- the entire
/assetsfolder
(The folder contains all JavaScript, CSS, and image files.)
Log into your NAS and open the web server (Apache, Nginx, etc.).
Most NAS systems have a folder called something like: “web”, “www” or similar.
Copy index.html and the entire /assets folder into that directory.
Important:
index.htmlmust keep its name/assetsmust be located in the same folder
Example structure:
/web
├── index.html
└── assets/
└── (all JS/CSS/bilder)
Go to for exempel:
http://tour-nas-ip-address/
Or if you placed it in a subfolder, for example StartPanel:
http://your-nas-ip-address/StartPanel/
To control devices and read status locally:
- You must be on the same network as your Homey Pro
- Or use VPN
Alternatively, you can still connect via Homey Cloud.
All settings and links are stored in LocalStorage.
This means settings are unique for each browser and device.
However, you can create a backup file and restore it on another browser or device.
Webhooks work even when you are not on the same network as Homey.
However, reading device status requires the page to run:
- on the same network
- or through VPN.
Most NAS systems can run a simple web server capable of hosting static websites (HTML, CSS, JavaScript).
That is all StartPanel requires.
Open your NAS control panel in a browser, for example:
http://your-nas-ip:5000
(or another port depending on your NAS model)
Search for something like:
“Web Server”
“Apache”
“Nginx”
“Web Station”
“Hosting”
“WWW Server”
Install it with default settings.
Some NAS systems may also install:
- PHP
- MySQL
These are not required for StartPanel and can be ignored.
After installation, a web directory will be created, usually named something like:
/web
/www
/var/www
/home/www
/WebServer
/volume1/web (Synology)
This folder is what the web server serves when visiting your NAS IP address.
Restart the service via the NAS control panel.
Your NAS is now running a web server, and you can proceed with the earlier instructions to install StartPanel.
💡 Tip:
If you want to access the dashboard outside your home network, consider using VPN.
The dashboard is stored locally in your browser using LocalStorage and you can either sync / copy it manually by following the steps below:
Steps:
- Go to Settings → Backup & Restore
- Click Export Data to download the JSON file
- Move the file to another device (for example an iPad)
- On the other device: Settings → Backup & Restore → Import Data
Done ✔ NOTE! Keep in mind that the layout is NOT dynamic, and may not fit a different type of device with a smaller / larger screen, or a different orientation.
Make sure to create manual backups regularly.
Store the backup file safely since it is not encrypted.
OR
You can use the Cloud Sync. feature, see below.
Yes. (But there are some things you have to keep in mind, see below at Cloud Sync.)
Cloud Sync lets you keep your dashboard in sync across multiple devices by storing your configuration in the cloud.
- Go to Settings → Cloud Sync
- Select a Cloud Provider
- Enter your credentials (see setup guides below)
- Click Test Connection
- If it shows ✅ OK:
- Enable "Cloud Sync"
- Choose your preferred sync interval
- Your settings are automatically uploaded when:
- You make changes (edit widgets, layout, etc.)
- A scheduled sync runs
- The latest version is downloaded when:
- You open the app
- You manually refresh the page
- Background sync triggers
- Sync is not real-time
- If two devices edit at the same time: → the last saved version wins
- This is intentional to avoid API limits on free plans
Cloud providers have strict size limits:
- GitHub Gist → ~1 MB
- jsonbin.io (free) → ~100 KB
Images (especially base64) can quickly exceed these limits.
👉 Recommendation:
- Avoid storing images in your dashboard
- Use external image URLs instead
Each sync and each edit creates API requests.
- Frequent sync intervals = more requests
- Free tiers allow many requests, but not unlimited
👉 Recommendation:
- Use a reasonable sync interval (e.g. 30 minutes or more)
StartPanel uses a fixed column layout, not responsive auto-layout.
This means:
- Layout is based on your column setup
- Different screen sizes (desktop vs mobile) may look different!
👉 Recommendation:
- Test your layout on multiple devices
Yes, on the cloud service it is encrypted. But not when you save it locally. Read more about that in a later chapter below.
You have two cloud service provider to choose between. And that is GitHub gist and jsonbin.io.
-
Go to https://github.com
→ Sign up / Log in -
Go to https://github.com/settings/tokens
→ Generate new token (classic)- Expiration: optional
- Scope: ✅
gist
-
Copy the token
→ Paste into StartPanel
-
Go to https://gist.github.com
→ Create a Secret Gist- Description:
StartPanelSync - Filename:
startpanel_backup.json - Content:
{}
- Description:
-
Click Create secret gist
-
Copy the Gist ID from the URL
→ Paste into StartPanel
-
Go to https://jsonbin.io
→ Sign up / Log in -
Go to API Keys
→ Copy your X-MASTER-KEY
→ Paste into StartPanel -
Go to Bins
→ Create a new BinContent:
{ "users": [] } -
Save the Bin
-
Copy the BIN ID → Paste into StartPanel
The expanded/collapsed state of widgets is not synced.
- This state is stored locally in each browser
- A widget can be expanded on one device and collapsed on another
👉 This is intentional to reduce unnecessary sync traffic and API usage.
Cloud Sync requires a public API endpoint that your browser can access directly.
A local file on your NAS:
- is not accessible via a standard cloud API
- cannot handle authentication or remote updates in the same way
👉 Therefore, Cloud Sync only works with supported cloud providers (e.g. GitHub Gist, jsonbin.io)
To avoid large sync files:
👉 Store images externally instead of inside your dashboard data.
Recommended options:
- OneDrive
- Google Drive (public/shared links)
- Other image hosting services
Then link to the image in StartPanel.
✔ Prevents hitting size limits
✔ Keeps your JSON small and fast
- No size limitations (images work fine)
- Full control of your data
- No dependency on external services
- Works completely offline
- Not encrypted
- Manual handling required (export/import)
- Easy multi-device sync
- Automatic updates
- No manual file handling
- Limited storage (depending on provider)
- API rate limits may apply
- Dependent on third-party services
- Not real-time sync
- Risk of overwriting changes ("last write wins")
👉 Always keep a local backup!
Cloud Sync is convenient, but a local backup ensures you never lose your data.
Yes, the backup file may contain:
- your dashboard layout
- widget configurations
- authentication tokens (for example Homey PAT)
This is not a security issue per se, but the file should be treated as a personal configuration file as the data is not encrypted when saved locally!
Recommendations:
- store it in a safe location
- avoid sending it unencrypted
- do not share it unless you want to share your setup
No.
However, running locally can be useful if you want to access local network resources, such as images from IP cameras.
Yes, for full functionality (reading device status and controlling devices) when using Cloud or polling.
Using webhooks only may work with older Homey models.
Full functionality requires an API token / PAT, which is available on Homey Pro 2023 and newer.
Yes, but several conditions must be met.
Example setup:
- The camera must provide an RTSP stream
- StartPanel must run locally on a web server (for example on a NAS)
- go2rtc must run on the NAS using Docker
- The RTSP stream must be H.264 (not H.265)
- The video can normally only be viewed on the same network or via VPN
- Use the Iframe widget with the go2rtc stream URL, for example: http://192.168.1.3:1984/stream.html?src=kamera1
go2rtc acts as a bridge, converting the RTSP stream into a format that browsers can play.
It works well but requires some setup.
Possibly.
If the app runs locally on a NAS web server, the Image widget may be able to fetch camera snapshots.
Each manufacturer uses different URLs, and not all cameras support this feature.
Example (Foscam V5P):
https://192.168.1.X/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=NAME&pwd=PASSWORD
Insert the URL into the Image widget and set a refresh interval (for example 60 seconds).
Note that browser security restrictions may sometimes block such requests.
The Layout feature lets you place Homey device capabilities freely on top of a background image.
This makes it possible to create visual dashboards such as:
- a house floor plan
- a room layout
- a technical overview
- or any custom graphic or picture you want to use
The background image is created in another program (for example a drawing tool or floor-plan editor) and then imported into StartPanel. After that you can place capabilities anywhere on the screen.
If you want to design a floor-plan image, there are several free alternatives you can use.
Here are some tools to help you create one:
Examples of what you can display and control:
- Turn lights on/off
- Adjust dimmer levels
- See if doors or windows are open
- View temperature or humidity
- Monitor power consumption
- Display sensor values
- Display variables
This allows you to build an intuitive and visual dashboard where your smart home devices are positioned exactly where they belong. And this will get you an fast and easy way to see whats on and off and so on.
Go to Settings > Dashboards
Click "Add Homey Layout"
This behavior is caused by factors outside the app's control:
Icon service caching
Icon providers use their own cache. If they fail to fetch an icon once, they may remember the failure for a while.
Temporary service outages
Icon services may be temporarily unavailable or overloaded.
Websites blocking icon scraping
Some websites block automated services that try to fetch their icons.
Browser cache
Your browser may cache a broken image or failed request.
In many cases the icon appears again automatically later.
Yes.
Go to Settings → Dashboards.
There you can:
- create additional dashboards
- edit existing ones
- choose whether they appear as tabs or in a dropdown menu
If a new version causes problems, you can revert to a previous version by editing index.html and pointing it to an older .js file in /assets.
You can see which file belongs to which version on GitHub under:
/docs/assets
No.
Normally no.
The dashboard configuration is stored in LocalStorage, which is not affected by normal code updates.
However, data could be lost if:
- the browser clears storage
- the storage schema changes
- major version upgrades occur
- browser extensions interfere
- the environment changes (for example moving to a new NAS)
For this reason, regular backups are strongly recommended.
Yes.
Occasionally a small donation banner may appear encouraging support for a cat shelter.
This is completely optional.
Yes when connected through Homey Cloud.
No when running locally using polling.
Polling means the app checks Homey for updates at a set interval, for example:
- every 10 seconds
- every 20 seconds
- every 30 seconds
You can configure this under:
Settings → Homey → Polling Interval
No.
You can use StartPanel purely as a start page with widgets.
Homey integration is simply an optional feature.
Example for Sweden (Trafikverket / Trafiken.nu)
You can add traffic cameras as automatically refreshing still images.
Examples:
- Trafiken.nu (Stockholm, Gothenburg, etc.)
- Trafikverket (nationwide Sweden)
Images typically update about once per minute.
The image URLs are not publicly listed, but you can find them like this:
- Open the camera page in Chrome or Firefox
- Press F12 to open Developer Tools
- Go to the Network tab
- Wait for the camera image to refresh
- Look for a file ending in .jpg
- Right-click → Copy URL
That is the direct image URL.
- Add the Image widget
- Paste the image URL
- Set a refresh interval (for example 60 seconds)
Done ✔
Browsers block links that attempt to open local files or launch apps directly for security reasons.
This prevents links such as:
file://
C:\…
app://
or local .html-files.
This is a standard browser security feature designed to protect users.
Visit https://startpanelapp.github.io/ to try the app live.



