Enter PIN

 

NPR
Local
Steuerliche Identifikationsnr.
Steuernummer
Finanzamt
KSK-Mitgliedsnummer
Social Security Number
IRS Filing Status
State of Tax Residence
Codice Fiscale
US Passport Number
US Passport Expiry
Italian Passport Number
Italian Passport Expiry
AGMA Member Number
VddB (Bühnenversorgung)
Rentenversicherungsnummer
Krankenversicherung
Angemeldete Adresse (DE)
US Address
Bank (DE) — IBAN
Bank (US) — Routing / Account
No documents uploaded yet. Upload files in the Documents tab first.
No invoices for this year. Click Edit to create one.
€ 0.00
📎
Drop files here or click to upload
PDF, JPG, PNG — max 10 MB per file — encrypted before storage
No trips for this year. Import from calendar or add manually.
💼 Betriebsausgaben
🏠 Persönliche Ausgaben
No debts tracked. Click Edit to add one.
No clients yet. Click Edit to add your first client.

Settings

Appearance, security, cloud sync, and data management.

Background Image
Upload an image to use as the app background
App Icon
Custom icon for the header and PWA
NT
Connection
Auto-configured — syncs data + encryption keys across all devices
✓ Connected
Sync Status
Ready
Document Sync
Checking…
API Access Token
Sync Status
Not configured
Upload logos for each entity. They appear on printed invoices.
Nicholas Tamagna
Tamagna Design Studio
Tamagna Vocal Studio
Calendar 1 — Google
Secret address from Google Calendar settings → "Auswärtstätigkeit"
Calendar 2 — iCloud / Other
Public calendar URL (webcal:// or https://). Converted automatically.
Home Base
Erste Tätigkeitsstätte — days here are excluded from per diem
Residence Home Country
Default country for days without travel — used by Residence Tracker
Change PIN
Your PIN is the encryption key — all data is re-encrypted
Export Backup
Download encrypted backup file
Import Backup
Restore from encrypted backup (requires same PIN)
Erase All Data
Permanently delete all local and cloud data

Run this in your Supabase SQL Editor. Step 1 creates the data table, Step 2 enables document storage.

-- STEP 1: Data sync table (required)
create table if not exists nt_vault (
  user_id text primary key,
  encrypted_data text not null,
  updated_at timestamptz default now()
);

alter table nt_vault enable row level security;

create policy "Allow all for anon"
  on nt_vault for all
  using (true)
  with check (true);

-- STEP 2: Document storage bucket (for cross-device file sync)
insert into storage.buckets (id, name, public, file_size_limit)
  values ('nt-documents', 'nt-documents', false, 10485760)
  on conflict (id) do nothing;

create policy "anon_insert" on storage.objects
  for insert with check (bucket_id = 'nt-documents');
create policy "anon_select" on storage.objects
  for select using (bucket_id = 'nt-documents');
create policy "anon_delete" on storage.objects
  for delete using (bucket_id = 'nt-documents');