Two places a team becomes visible to a person rather than an API: the Dashboard tab that administers it, and the share dialog that shares with it. Squashed because they are one change to a reviewer. Both are the first GUI consumers of `puter.teams`, both add strings to the same `en.js`, and both had to answer the same question -- what a team looks like to someone who has never seen one. Splitting them would mean reviewing that answer twice and resolving the same translation conflict twice. TabTeams (PUT-1740) Registered in `builtinTabs` after `TabFiles`, as a plain object with `html()` and `init($el_window)` like every other tab. The member table carries the operations the API allows and nothing it does not: provision, resend an activation, disable, restore, delete. Deleting asks for confirmation naming the account, because the API deletes on a single call -- PUT-1732 places the reversible step at disable, not in front of the request, so the client is where a confirmation belongs. The wording says plainly that disabling stops the per-account charge and keeps the storage one, and that deleting is the only thing that ends it. This is the one place a person decides between the two, so leaving them to infer the difference costs them money. Rendering and the billing arithmetic are pure functions in `teamsConsole.js`, with tests beside them; the tab file is the DOM. Share dialog (PUT-1762) `UIWindowShare` gains the teams the caller owns as recipients. A team is one entry in the list, not its members expanded -- sharing reaches every member, and the per-person wording would understate what the grant does. `shareWorkspaces.js` holds the resolution and the deduplication, so the dialog does not gain a second source of truth about who a recipient is. Closes PUT-1740 and PUT-1762.
The Open-Source Internet Computer!
« LIVE DEMO »
Puter.com
·
App Store
·
Developers
·
X
Puter
Puter is an advanced, open-source, self-hostable internet computer designed to be feature-rich, fast, and highly extensible.
For Users
Puter's goal is to provide you with every app and feature you need to work, create, and play under one roof. From a simple Notepad and Voice Recorder to Spreadsheet and Camera, Puter wants to be the all-in-one solution for your digital life.
For Developers
Puter provides everything you need to build and publish web apps and games. From AI to Cloud Storage and Database to Serverless Workers, Puter has you covered. Puter also helps you get users! Once you build your app, you can publish it on our App Store to reach and monetize users.
Getting Started
💻 Local Development
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
→ This should launch Puter at http://puter.localhost:4100
🚀 Self-Hosting
Linux/macOS
curl -fsSL https://puter.com/selfhost | sh
Windows
irm https://puter.com/selfhost?os=windows | iex
→ For more details, see Self-Hosting Puter.
☁️ Puter.com
Puter is available as a hosted service at puter.com.
Support
Connect with the maintainers and community through these channels:
- Bug report or feature request? Please open an issue.
- X (Twitter): x.com/HeyPuter
- Security issues or abuse reports? security@puter.com
- Email maintainers at hi@puter.com
We are always happy to help you with any questions you may have. Don't hesitate to ask!
License
This repository, including all its contents, sub-projects, modules, and components, is licensed under AGPL-3.0 unless explicitly stated otherwise. Third-party libraries included in this repository may be subject to their own licenses.
Translations
- Arabic / العربية
- Armenian / Հայերեն
- Bengali / বাংলা
- Chinese / 中文
- Danish / Dansk
- English
- Farsi / فارسی
- Finnish / Suomi
- French / Français
- German / Deutsch
- Hebrew/ עברית
- Hindi / हिंदी
- Hungarian / Magyar
- Indonesian / Bahasa Indonesia
- Italian / Italiano
- Japanese / 日本語
- Korean / 한국어
- Malay / Bahasa Malaysia
- Malayalam / മലയാളം
- Dutch / Nederlands
- Polish / Polski
- Odia / ଓଡ଼ିଆ
- Portuguese / Português
- Punjabi / ਪੰਜਾਬੀ
- Romanian / Română
- Russian / Русский
- Spanish / Español
- Swedish / Svenska
- Tamil / தமிழ்
- Telugu / తెలుగు
- Thai / ไทย
- Turkish / Türkçe
- Ukrainian / Українська
- Urdu / اردو
- Vietnamese / Tiếng Việt

