๐ฌ๐ง English ยท ๐ฉ๐ช Deutsch ยท ๐ช๐ธ Espaรฑol ยท ๐ซ๐ท Franรงais
Screenshots ยท Features ยท Installation ยท Privacy ยท FAQ
pinn. is one app for everything that keeps a household running: the shared calendar, this week's meals, the shopping list, who takes out the bins, the pocket money and the insurance that needs cancelling in March. It runs on your own NAS with Docker and installs like a native app on every iPhone, iPad and Android phone in the family.
No cloud account. No subscription. No ads, no tracking. Your family's data never leaves your home.
Hung on the wall or lying on the kitchen table: the shared iPad shows the whole family at once.
![]() Dashboard โ everyone taps their own picture, with an optional PIN |
![]() Overview โ weather, appointments, tasks, meals and the family at a glance |
Always with you: pinn. installs on every iPhone and Android phone like a native app.
| ๐ Calendar | iCloud and Google calendars per person, private or shared with the family. Public and school holidays, waste collection dates and birthdays from your contacts appear automatically. |
| ๐ Meals & recipes | Plan the week, then send the ingredients straight to the shopping list. Import recipes from text, PDF, photos or a link โ optionally with AI. Share favourite recipes with other families on your server. |
| ๐ Lists | Shopping lists per shop, a pantry that refills the list when stock runs low, packing lists from templates (holiday, hospital bag, party), gift and wish lists. |
| โ Tasks & household | Tasks with push reminders, cleaning plans and bins โ plus a kids' page with animated routines that only shows what fits the time of day. |
| ๐ถ Finance | Shared or private funds, a household budget, savings and depots with ETFs and shares, pocket money, recurring payments and contracts with cancellation reminders. Flatshares can split costs and see who owes whom. |
| ๐ Documents & vehicles | Receipts and warranties, IDs with expiry reminders. Cars and bikes with inspection dates, tyre changes, fuel use and total cost. |
| ๐ก Home | For tenants, owners and landlords: tenancy or purchase contract, loan, defects with photos, receipts, renovation plan, meter readings with forecast, keys, and rental income for flats, houses and garages you let out. Garden & plants with a watering plan that knows when it rained. |
| ๐ Family & location | Share your location right from pinn. โ once or for a chosen time โ and in the background via the free Traccar Client app (sends straight to pinn., no extra server). Plus a "way home" mode, an SOS alert with position and emergency numbers, emergency cards and arrival notifications for places. |
| ๐ School & daycare | Per child: timetable (type it in or snap a photo โ the AI fills it in), drop-off and pick-up, homework on the kids' page, parent letters with deadlines that turn into reminders, and closure days straight in the calendar. |
| ๐พ Pets | Profiles for dogs, cats, rabbits & co. with feeding times to tick off, walks, a "whose turn is it" rota, vaccinations and deworming with push reminders, weight chart, vet and emergency vet, a pet-sitter sheet to share, a printable "missing" poster and a pet feeder refill reminder. |
| ๐ฆ๏ธ Weather & holidays | Tap the weather (a tile on the phone, at the top next to date and time on iPad and computer) for 14 days with details for every day. Packing lists with destination and dates show the holiday weather โ forecast or typical values โ and suggest what to pack. |
| ๐ Smart home | Start Apple Shortcuts or Home Assistant actions from a task โ the robot vacuum cleans the kitchen when the chore is due, the robot mower and the watering follow the garden plan, the pet feeder reports when it runs empty. |
| ๐๏ธ Voice control | "Hey Siri, pinn": add to the shopping list, read it out, create tasks and hear what's on today โ also on Android. |
| ๐ Notifications | Personal push messages on iPhone, iPad and Android, plus a notification bell that collects every change in the family. |
| ๐งฉ Everything else | Family board with movable notes, global search, offline mode with automatic sync, dark mode, iPad dashboard with profile PINs, guest account, child lock. |
pinn. speaks English, Deutsch, Franรงais, Espaรฑol, Italiano, Portuguรชs and ไธญๆ, adapts currency and emergency numbers to your region, and switches between family and flatshare wording. One server can host several families, each with its own admins.
New languages: Portuguese (Brazil) and Chinese (Simplified)
- pinn. is now available in Portuguese (Brazil) and Chinese (Simplified) (Settings โ Language). The whole app is translated, including the weekly and monthly preview, the shopping hint and the export button.
- Not yet in these languages: the setup assistant, the data export files and the push messages from the server โ they show English for now.
- Changed: app files (
index.html,js/sprachen.js,js/ausblick.js,js/einrichten.js,js/exportieren.js,js/hinweise.js,js/versionslog.js, newlang/pt.jsandlang/zh.js, language filesen,fr,es,it). Nothing changes on the server.
New language: Italian
- pinn. is now available in Italian (Settings โ Language). The whole app is translated, including the weekly and monthly preview, the shopping hint and the export button.
- Not yet in Italian: the setup assistant, the data export files and the push messages from the server โ they show English for now.
- For contributors: a new check for language files (
.github/scripts/check-lang.js, part ofcheck-all.jsand of the GitHub checks) and a tool that translates new languages with the Claude API (.github/scripts/translate.js, workflow โTranslateโ). More languages will follow. - Changed: app files (
index.html,js/sprachen.js,js/ausblick.js,js/einrichten.js,js/exportieren.js,js/hinweise.js,js/versionslog.js, newlang/it.js, language filesen,fr,es) and on the serverpb_hooks/pinn-pushtext.js,pinn-ausblick.js,pinn-familie-geburtstag.js,pinn-haustiere.js,pinn-ortung.js,pinn-sprache.js,pinn-wobistdu.js. Install as usual (sudo sh pinn-*/pinn-setup.shor the update button).
Board, lists, school, pets and maintenance plan in records of their own
- Third step of moving the family data out of the one big data block: the family board, the lists (packing, gifts, wishes, checklists, ideas and templates), school & daycare, pets and the maintenance plan (Home) now live in records of their own on the server. Each part is saved and synced on its own. Nothing changes in how you use the app.
- Same safety net as before: a backup per family before the move (
pb_data/pinn_umzug/, 30 days), devices with an older app keep seeing everything. - All server functions (reminders, board messages and photos, pets, packing lists, household tasks) now read the family data including every moved part.
- Changed: app files (
index.html,js/versionslog.js) and on the serverpb_hooks/pinn-bereiche.js,pb_hooks/pinn-benutzer.js,pb_hooks/save_family_data.pb.js,pb_hooks/pinn-sprache.js,pb_hooks/pinn-vorrat.js. Install as usual (sudo sh pinn-*/pinn-setup.shor the update button).
Shopping and pantry in records of their own
- Second step of moving the family data out of the one big data block: the shopping lists (incl. shops, planned shopping trips and sorting) and the pantry now live in records of their own on the server, like recipes and the meal plan since 1.104. When several people tick off items in the shop at the same time, only the shopping list is synced โ not all family data. Nothing changes in how you use the app.
- Same safety net as in 1.104: a backup per family before the move (
pb_data/pinn_umzug/, 30 days), devices with an older app keep seeing everything. Voice control, the notification bell and the best-before reminder work with the new records. - Changed: app files (
index.html,js/bereiche.js,js/familiensync.js,js/versionslog.js) and on the serverpb_hooks/pinn-bereiche.js,pb_hooks/save_family_data.pb.js,pb_hooks/pinn-sprache.js,pb_hooks/pinn-vorrat.js. Install as usual (sudo sh pinn-*/pinn-setup.shor the update button).
flowchart LR
subgraph Home["Your home network"]
direction LR
P["๐ฑ Phones & tablets<br/>pinn. on the home screen"] -->|HTTPS| C["Caddy<br/>certificate via DuckDNS"]
C --> PB["PocketBase<br/>pinn. app + database"]
PB --- T["Traccar<br/>optional, GPS trackers"]
PB --- HA["Home Assistant<br/>optional"]
PB --- B["Nightly backup"]
end
R["๐ฑ On the go"] -.->|"WireGuard or Tailscale VPN"| C
Everything runs as Docker containers on one machine. HTTPS works without port forwarding โ the certificate is issued via a DNS check. From outside, pinn. is only reachable through your own VPN.
- A NAS or server with Docker and Docker Compose 2.17+ โ developed on a UGREEN NAS with UGOS, runs on any Linux Docker host (amd64, arm64, armv7)
- SSH access to it
- Optional but recommended: a free DuckDNS subdomain for HTTPS โ required for push notifications and installing pinn. as an app
-
Download the ZIP of the latest release and unzip it.
-
Create a folder on the NAS, e.g.
/volume1/docker/Pocketbase, and put the unzipped folder (e.g.pinn-1.106.0orpinn-main) into it as it is. -
Log in via SSH and run:
cd /volume1/docker/Pocketbase && sudo sh pinn-*/pinn-setup.sh
The script copies every file into place, downloads the libraries for PDF import and photo text recognition, and starts pinn.
-
Open
http://<NAS-IP>:8090โ Log in as main admin โ passwordAdminโ choose your own password. -
The setup assistant walks you through the rest โ HTTPS, remote access via WireGuard or Tailscale, Google, AI, location and Home Assistant โ step by step, in four languages.
-
Open pinn. via its HTTPS address on each phone and add it to the home screen:
- iPhone/iPad (Safari): Share โ Add to Home Screen (iOS 16.4 or later for notifications)
- Android (Chrome): Settings โ Notifications โ Install pinn. as an app, or Chrome menu โฎ โ Install app
Then turn on notifications on each device under Settings โ Notifications โ Activate on this device.
Updating: download the new ZIP, put the unzipped folder into the same folder and run sudo sh pinn-*/pinn-setup.sh again. Replaced files are kept in _alt/, your data stays untouched.
Backups run every night into ./backups and are kept for 14 days.
pinn. was built for data you would never hand to a cloud service: bank statements, health documents, where your children are. That's why:
- All data lives on your NAS in a single PocketBase database. There is no pinn. server and no telemetry.
- No scripts from third-party servers. All code and libraries are served from your NAS.
- Push notifications carry no content. Apple, Google and Mozilla only deliver an empty wake-up signal; the device then fetches the message from your NAS.
- Passwords for iCloud and Google are stored encrypted in a locked collection.
- Not reachable from the internet. Remote access goes through your own VPN.
pinn. only contacts outside services for features that need them:
| Service | Used for | When |
|---|---|---|
| Open-Meteo | Weather forecast | when a home address is set |
| OpenStreetMap Nominatim | Turning addresses into map positions | when entering addresses |
| OpenStreetMap tiles | Map background | on the location page, loaded through your NAS |
| Google Fonts | Typefaces | when the app loads |
| OpenHolidays API | Public and school holidays | when a home address is set |
| DuckDNS | HTTPS certificate and address | if configured |
| iCloud / Google | Calendars and contacts | only for accounts you connect |
| Google Gemini | Reading recipes and documents | only if you add an API key |
| jsDelivr | One-time download of pdf.js and Tesseract | during installation only |
Do I need to open ports on my router?
No. The HTTPS certificate is issued via a DNS check, and remote access runs through a VPN โ WireGuard on a FRITZ!Box, or Tailscale for any other router.
Does it work without a NAS?
Any always-on machine with Docker works: a mini PC, a Raspberry Pi 4/5 or a Linux server.
Is pinn. a "real" app from the App Store?
pinn. is a web app that you add to the home screen. It then opens full-screen like a native app, works offline, shows a badge with open tasks and receives push notifications โ without any app store.
Can several families use one installation?
Yes. The main admin creates families, each family gets its own admins, calendars and data. Recipes can optionally be shared between families.
What about children?
Profiles with child lock only see their own tasks and can't delete or change anything. Finance, documents and vehicles stay hidden. Younger children get their own playful page with daily routines.
What does it cost?
Nothing โ pinn. is free and open source under the MIT license. Optional services like the Gemini AI have free tiers.
The repository has the same layout as an installation on the NAS โ every file lies where it ends up:
pinn/
โโโ pb_hooks/ server: *.pb.js hooks and their helper modules (pinn-*.js, calendar-sync.js)
โโโ pb_public/ web app served by PocketBase
โ โโโ index.html the app page, built from src/ (HTML, start check) โ do not edit by hand
โ โโโ js/ app code split out of index.html, plain <script> files without a build step
โ โ (ruhemodus.js, sprachen.js, region.js, grundlagen.js, popups.js, verbindung.js, benutzer.js, mitteilungen.js, serverzugriff.js, tastatur.js, anmeldemaske.js, dashboard.js, dashboardhintergrund.js, profilauswahl.js, pineingabe.js, dashboardsitzung.js, dashboardkonto.js, familienverwalten.js, einrichten.js, exportieren.js, hauptadminseite.js, anmeldung.js, konto.js, profilverwaltung.js, zustand.js, bedienzustand.js, rezeptbilder.js, zusammenfuehren.js, speichern.js, design.js, sprache.js, uebersicht.js, familienkachel.js, wobistdu.js, geburtstagsfeier.js, wetterkachel.js, geburtstage.js, uebersichteinstellungen.js, familiensync.js, bereiche.js, kalenderquellen.js, icsparser.js, zeitleiste.js, termindetails.js, kalenderdatei.js, wetter.js, wohnort.js, feiertage.js, muellkalender.js, mitglieder.js, profilbild.js, mitglied.js, kinderseite.js, kinderroutine.js, sterne.js, kalenderansicht.js, essenplanen.js, rezeptparser.js, rezeptdialog.js, rezeptbild.js, rezeptmengen.js, einkauf.js, einkaufslisten.js, einkaufseingabe.js, rezepte.js, offline.js, aufgabenextras.js, appbadge.js, reisen.js, aufgabendaten.js, haushalt.js, reihum.js, aufgaben.js, smarthome.js, sprachsteuerung.js, termine.js, ansichten.js, versionspruefung.js, sicherungen.js, geraete.js, fehlerprotokoll.js, versionslog.js, einstellungen.js, kalenderkonto.js, finanzen.js, kassen.js, vorrat.js, vorrat2.js, sparen.js, vertraege.js, fahrzeuge.js, zuhause.js, dokumente.js, pdflesen.js, appstart.js, pinnwand.js, listen.js, familie.js, hinweise.js, ausblick.js โ ausblick.js always comes last)
โ โโโ css/ app styles split out of index.html, plain CSS without a build step (ergaenzung.css, energiesparen.css, basis.css โฆ haustierewetter.css, terminal.css, glocke.css)
โ โโโ einrichtung.js setup assistant ยท datenexport.js data export
โ โโโ lang/ translations (en, fr, es)
โ โโโ vendor/ pinn.css, pocketbase/ (pdf.js and Tesseract are downloaded by the setup)
โโโ .github/ GitHub Actions (workflows/check.yml), checks (scripts/), CONTRIBUTING.md, SECURITY.md, images โ not installed
โโโ src/ sources of index.html (build.js, rahmen.html, teile/) โ not installed
โโโ caddy/Caddyfile HTTPS reverse proxy
โโโ docker-compose.yaml all containers
โโโ env.txt template for .env
โโโ pinn-setup.sh install & update
โโโ pinn-wartung.sh backups & updates (container "wartung")
โโโ pinn-pocketbase-update.sh
โโโ index.html placeholder only, never installed (keeps the update button of 1.38 working)
โโโ README.md this page ยท README.de.md ยท README.es.md ยท README.fr.md
pinn-setup.sh copies pb_hooks/, pb_public/ and caddy/Caddyfile 1:1 into the project folder; data folders (pb_data/, konfig/, backups/, caddy/data/ โฆ) are never touched.
Bug reports, ideas and translations are very welcome โ see CONTRIBUTING.md. Please report security issues privately as described in SECURITY.md. Before a pull request, please run node .github/scripts/check-all.js โ the same checks run automatically on GitHub.
pinn. is free and stays free โ completely, for everyone. It's built in my spare time. If it makes your everyday life a little easier, a small contribution is very welcome, but entirely voluntary:
A โญ helps too โ it makes pinn. easier to find for other families.
PocketBase (MIT) ยท Tailwind CSS (MIT) ยท pdf.js (Apache-2.0) ยท Tesseract.js (Apache-2.0) ยท Traccar (Apache-2.0) ยท Caddy (Apache-2.0)
MIT โ use it, change it, share it.








