Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
d0535fb
Expand example widget reference
andreasmolnardev Jul 3, 2026
3b76145
feat: randomize text in blurred widgets
andreasmolnardev Aug 23, 2026
f0847fa
feat: add dashboard privacy mode toggle
andreasmolnardev Aug 23, 2026
84ee615
docs: correct configuration settings
andreasmolnardev Aug 23, 2026
dd49d1f
Merge pull request #328 from andreasmolnardev/doc-config-fixes
andreasmolnardev Aug 23, 2026
9bdd31c
Toggle privacy mode from search bar
andreasmolnardev Aug 24, 2026
bc2cefb
Merge branch 'dev' into docs/example-widget-reference
andreasmolnardev Aug 24, 2026
9fb151b
Merge pull request #251 from andreasmolnardev/docs/example-widget-ref…
andreasmolnardev Aug 24, 2026
684eded
Merge pull request #330 from andreasmolnardev/widget-blur
andreasmolnardev Aug 24, 2026
9b9c5e9
feat(news): add feed hierarchy
andreasmolnardev Aug 24, 2026
a988339
Merge pull request #331 from andreasmolnardev/news-hierachy
andreasmolnardev Aug 24, 2026
9a3c947
feat(news): suggest blacklist words from feed articles
andreasmolnardev Aug 24, 2026
173dbcc
feat(components/button): add destructive-ghost button style
andreasmolnardev Aug 24, 2026
a24ca88
fix(theming): update frosted-lite classes and settings/notification t…
andreasmolnardev Aug 24, 2026
a713aa4
feat(notifications/topics): replace dropdown with revamped topic deta…
andreasmolnardev Aug 24, 2026
891347b
feat(config): add shoutrrr binary path
andreasmolnardev Aug 24, 2026
eea1aad
fix(docker): configure shoutrrr binary
andreasmolnardev Aug 24, 2026
f1159ff
fix(notification): run queued forwarders
andreasmolnardev Aug 24, 2026
3e6287c
feat(activity websocket): realtime notification updates
andreasmolnardev Aug 24, 2026
ce88c00
Merge pull request #332 from andreasmolnardev/test-notification-forwa…
andreasmolnardev Aug 24, 2026
a1e2cc2
Merge pull request #333 from andreasmolnardev/news-topic-blacklist-su…
andreasmolnardev Aug 24, 2026
c6ed301
feat(dashboard links): add compact link layout
andreasmolnardev Aug 24, 2026
051e655
feat(search): add toggle link layout action
andreasmolnardev Aug 24, 2026
a82ac53
fix(mobile dashboard): consider page padding
andreasmolnardev Aug 24, 2026
881f8e9
Merge pull request #335 from andreasmolnardev/link-tiles
andreasmolnardev Aug 24, 2026
067fd9a
fix(news): limit feed modal lists
andreasmolnardev Aug 25, 2026
c9f1ca3
fix(layout): hide empty scrollbars
andreasmolnardev Aug 25, 2026
c87ba42
Merge pull request #336 from andreasmolnardev/news-modal-fix
andreasmolnardev Aug 25, 2026
4360500
feat(news): add feed deletion action
andreasmolnardev Aug 25, 2026
0f67d42
feat: add news feed widget selector
andreasmolnardev Aug 25, 2026
0499782
feat: add curated integrations settings
andreasmolnardev Aug 27, 2026
27ad202
feat: add glanceables to screensaver clock
andreasmolnardev Aug 27, 2026
dc90b5d
add new subscription button to news feed page top bar
andreasmolnardev Aug 27, 2026
8f3979b
feat(customization): add max px setting to widget
andreasmolnardev Aug 27, 2026
052c118
fix(frame): render glanceables correctly (both in settings and in frame
andreasmolnardev Aug 28, 2026
0d17331
Merge pull request #342 from andreasmolnardev/screensaver-glanceablec…
andreasmolnardev Aug 28, 2026
b7198fe
Merge pull request #343 from andreasmolnardev/news-modal-fix
andreasmolnardev Aug 28, 2026
d4b6f34
integrations settings: visual makeover
andreasmolnardev Aug 28, 2026
0f64352
Merge pull request #339 from andreasmolnardev/integrations-store
andreasmolnardev Aug 28, 2026
db63dbb
feat: add identifiable client sessions
andreasmolnardev Aug 28, 2026
05f620e
feat: add apps settings and HTML link transfer
andreasmolnardev Aug 28, 2026
d2f74ce
Add GitHub Sponsors funding config
Copilot Aug 28, 2026
f181024
Merge pull request #345 from andreasmolnardev/copilot/add-github-fund…
andreasmolnardev Aug 28, 2026
ccfbb30
Delete .github/FUNDING.yml
andreasmolnardev Aug 28, 2026
29d2349
Update GitHub Sponsors username in FUNDING.yml
andreasmolnardev Aug 28, 2026
140a405
fix: rename brightness filter in wallpaper settings
andreasmolnardev Aug 28, 2026
ec89aea
fix(account settings): use dialog for device name setting
andreasmolnardev Aug 28, 2026
78faf2e
Merge pull request #346 from andreasmolnardev/device-ids
andreasmolnardev Aug 28, 2026
aa15052
fix(alerts): icon overlap
andreasmolnardev Aug 28, 2026
c907add
feat(dev): delete local links
andreasmolnardev Aug 28, 2026
f37346e
draft(news settings): bulk import feed urls
andreasmolnardev Aug 28, 2026
0fc227d
feat(news settings): Open bulk import news modal from add subscription
andreasmolnardev Aug 28, 2026
2b73a95
Merge origin/dev and resolve API client conflicts
Copilot Aug 28, 2026
72e2a96
fix(session): avoid insecure fallback randomness
Copilot Aug 28, 2026
201f174
Merge pull request #350 from andreasmolnardev/apps-settings
andreasmolnardev Aug 28, 2026
4124cfe
chore: start shortcuts migration
andreasmolnardev Aug 28, 2026
ff62307
feat: migrate search items to shortcuts
andreasmolnardev Aug 28, 2026
8a9eeb2
feat: route shortcuts to client sessions
andreasmolnardev Aug 28, 2026
739a723
minor apps settings style changes
andreasmolnardev Aug 28, 2026
9993473
fix: repeat endpoint fetching, caldav performance issues with websocket
andreasmolnardev Aug 30, 2026
53cf8db
Merge pull request #351 from andreasmolnardev/shortcuts-migration
andreasmolnardev Aug 30, 2026
c12e465
Clarify features in README
andreasmolnardev Sep 1, 2026
b416b2a
feat: improve add to list modal
andreasmolnardev Sep 2, 2026
48920d8
fix: restore link picker text colors
andreasmolnardev Sep 2, 2026
b19d724
fix(components): apply theme correctly
andreasmolnardev Sep 2, 2026
8b44b9a
feat(icon picker): accept urls
andreasmolnardev Sep 2, 2026
f914632
fix(icons): dont apply monocolor in default styling
andreasmolnardev Sep 2, 2026
d1aa90a
feat(add to list modal): add tabs, link details auto fill
andreasmolnardev Sep 2, 2026
951d7b1
fix(link folders): add icon support
andreasmolnardev Sep 2, 2026
f5709de
Merge pull request #353 from andreasmolnardev/links-add-modal-improve…
andreasmolnardev Sep 2, 2026
558ce16
Update README to remove outdated disclaimer
andreasmolnardev Sep 2, 2026
5b29fc4
Make subscription feed retention configurable
andreasmolnardev Sep 2, 2026
e344a33
Merge pull request #354 from andreasmolnardev/configurable-subscripti…
andreasmolnardev Sep 2, 2026
f1aecb9
fix: disable moving links on mobile
andreasmolnardev Sep 3, 2026
40dc29b
Merge pull request #357 from andreasmolnardev/fix/mobile-disable-link…
andreasmolnardev Sep 3, 2026
6d5e04f
bump version to v1.0-rc2
andreasmolnardev Sep 3, 2026
f7ea546
Add GitHub Sponsors profile link
andreasmolnardev Sep 3, 2026
d1d5477
Merge pull request #359 from andreasmolnardev/support-link
andreasmolnardev Sep 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
github: andreasmolnardev
17 changes: 17 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,21 @@ RUN case "${TARGETARCH}" in \
rm /tmp/pocketbase.zip && \
chmod +x /usr/local/bin/pocketbase

FROM alpine:latest AS shoutrrr
ARG SHOUTRRR_VERSION=0.8.0
ARG TARGETARCH

RUN case "${TARGETARCH}" in \
"arm64") ARCH="arm64" ;; \
"amd64") ARCH="amd64" ;; \
*) echo "Unsupported architecture: ${TARGETARCH}" && exit 1 ;; \
esac && \
apk add --no-cache wget && \
wget -O /tmp/shoutrrr.tar.gz "https://github.com/containrrr/shoutrrr/releases/download/v${SHOUTRRR_VERSION}/shoutrrr_linux_${ARCH}.tar.gz" && \
tar -xzf /tmp/shoutrrr.tar.gz -C /usr/local/bin shoutrrr && \
rm /tmp/shoutrrr.tar.gz && \
chmod +x /usr/local/bin/shoutrrr

FROM oven/bun:1-alpine AS deps
WORKDIR /app

Expand Down Expand Up @@ -52,8 +67,10 @@ WORKDIR /app
RUN apk add --no-cache valkey

COPY --from=pocketbase /usr/local/bin/pocketbase /usr/local/bin/pocketbase
COPY --from=shoutrrr /usr/local/bin/shoutrrr /usr/local/bin/shoutrrr
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
ENV PB_BINARY_PATH=/usr/local/bin/pocketbase
ENV SHOUTRRR_BINARY_PATH=/usr/local/bin/shoutrrr
ENV NODE_PATH=/app/apps/backend:/app/packages

RUN mkdir -p /app && touch /app/.root.ind
Expand Down
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,15 @@
I've been self hosting for a while but did not find a dashboard that suits my needs and that I like the look of.
This is my attempt to solving that.

> **Disclaimer:** Since the last major release, this project has been partly rewritten. Proceed with caution. Measures include creating a backup of your pocketbase directory before upgrading.

> **Use of AI:** The development of this project is AI-Assisted by using it as a tool - not as a substitute for real programming skills.

## Screenshot
<img width="1165" height="828" alt="Screenshot 2025-11-18 at 17 24 19" src="https://github.com/user-attachments/assets/e5315f99-4a9f-49f6-8778-0e7cf77d2990" />


## Features
- **Principles**: Configure dashwise using its UI. No need to touch config files. Dashwise also has Authentication (including SSO) built in.
- **GUI Editing**: Configure dashwise using its UI. No need to touch config files.
- **Secure by default**: Dashwise has Authentication (including SSO via OIDC) built in.
- **Dashboards** show Glanceables and Widgets, for example Links (which can be grouped into Link groups and folders)
- **Glanceables**: Customizable bits of one-line information next to the clock.
- **Widgets**: Modular blocks on the dashboard that show key info or actions at a glance. They can be moved and customized individually.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v1.0-rc1
v1.0-rc2
168 changes: 156 additions & 12 deletions apps/backend/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ tags:
- name: news
- name: notifications
- name: pageConfig
- name: search
- name: shortcuts
- name: sessions
- name: test
- name: wallpapers
- name: widgets
Expand Down Expand Up @@ -167,6 +168,29 @@ paths:
$ref: "#/components/responses/JsonOk"
"401":
$ref: "#/components/responses/JsonUnauthorized"
/sessions/current:
get:
tags:
- sessions
summary: Get the current client session
responses:
"200":
$ref: "#/components/responses/JsonOk"
"401":
$ref: "#/components/responses/JsonUnauthorized"
patch:
tags:
- sessions
summary: Rename the current client session
requestBody:
$ref: "#/components/requestBodies/JsonBody"
responses:
"200":
$ref: "#/components/responses/JsonOk"
"400":
$ref: "#/components/responses/JsonBadRequest"
"401":
$ref: "#/components/responses/JsonUnauthorized"
/integrations:
get:
tags:
Expand Down Expand Up @@ -236,6 +260,36 @@ paths:
responses:
"200":
$ref: "#/components/responses/JsonOk"
/links/metadata:
get:
tags:
- links
summary: Get link metadata
parameters:
- name: url
in: query
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
title:
type: string
description:
type: string
iconUrl:
type: string
required:
- title
- description
- iconUrl
additionalProperties: false
/links/home/groups:
get:
tags:
Expand Down Expand Up @@ -343,6 +397,14 @@ paths:
responses:
"200":
$ref: "#/components/responses/JsonOk"
/links/dev/user-links:
delete:
tags:
- links
summary: Wipe development user links
responses:
"200":
$ref: "#/components/responses/JsonOk"
/links/tags:
get:
tags:
Expand All @@ -360,11 +422,11 @@ paths:
responses:
"200":
$ref: "#/components/responses/JsonOk"
/jobs/searchItems:
/jobs/shortcuts:
get:
tags:
- jobs
summary: Search items job
summary: Shortcuts indexing job
responses:
"200":
$ref: "#/components/responses/JsonOk"
Expand Down Expand Up @@ -695,6 +757,16 @@ paths:
responses:
"200":
$ref: "#/components/responses/JsonOk"
/notifications/forwarders/test:
post:
tags:
- notifications
summary: Test forwarder
requestBody:
$ref: "#/components/requestBodies/JsonBody"
responses:
"200":
$ref: "#/components/responses/JsonOk"
/notifications/markAsRead:
post:
tags:
Expand Down Expand Up @@ -757,6 +829,15 @@ paths:
responses:
"200":
$ref: "#/components/responses/JsonOk"
put:
tags:
- notifications
summary: Update topic token
requestBody:
$ref: "#/components/requestBodies/JsonBody"
responses:
"200":
$ref: "#/components/responses/JsonOk"
get:
tags:
- notifications
Expand All @@ -773,11 +854,11 @@ paths:
responses:
"200":
$ref: "#/components/responses/JsonOk"
/searchItems:
/shortcuts:
get:
tags:
- search
summary: Search items
- shortcuts
summary: List shortcuts
responses:
"200":
$ref: "#/components/responses/JsonOk"
Expand Down Expand Up @@ -1234,6 +1315,19 @@ paths:
responses:
"200":
$ref: "#/components/responses/JsonOk"
delete:
tags:
- news
summary: Delete news feed record
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
"200":
$ref: "#/components/responses/JsonOk"
/news/feed-records:
post:
tags:
Expand Down Expand Up @@ -1306,19 +1400,57 @@ paths:
responses:
"200":
$ref: "#/components/responses/JsonOk"
/searchItems/frequentlyUsed:
/shortcuts/apps:
post:
tags:
- shortcuts
summary: Create an on-demand shortcut app
requestBody:
$ref: "#/components/requestBodies/JsonBody"
responses:
"200":
$ref: "#/components/responses/JsonOk"
"400":
$ref: "#/components/responses/JsonBadRequest"
"401":
$ref: "#/components/responses/JsonUnauthorized"
/shortcuts/on-demand/{appId}:
put:
tags:
- shortcuts
summary: Replace an on-demand app's shortcuts
parameters:
- name: appId
in: path
required: true
schema:
type: string
requestBody:
$ref: "#/components/requestBodies/JsonBody"
responses:
"200":
$ref: "#/components/responses/JsonOk"
"400":
$ref: "#/components/responses/JsonBadRequest"
"401":
$ref: "#/components/responses/JsonUnauthorized"
"404":
$ref: "#/components/responses/JsonNotFound"
"409":
$ref: "#/components/responses/JsonConflict"
/shortcuts/frequentlyUsed:
get:
tags:
- search
summary: List frequently used search items
- shortcuts
summary: List frequently used shortcuts
responses:
"200":
$ref: "#/components/responses/JsonOk"
/searchItems/usageStats:
/shortcuts/usageStats:
post:
tags:
- search
summary: Log search item usage
- shortcuts
summary: Log shortcut usage
requestBody:
$ref: "#/components/requestBodies/JsonBody"
responses:
Expand Down Expand Up @@ -1365,6 +1497,18 @@ components:
application/json:
schema:
$ref: "#/components/schemas/Error"
JsonNotFound:
description: Not Found
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
JsonConflict:
description: Conflict
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
securitySchemes:
bearerAuth:
type: http
Expand Down
Loading
Loading