TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
Meet Anna Alldone, your 24/7 AI virtual assistant on WhatsApp. Get super organized with minimal effort - Anna uses the tool on your behalf so you never have to. 100x cheaper than hiring an executive a
생산성JavaScript · HTMLGitHub @alldoneapp온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Team up with AI to get it all done. Level up our life with your personal all-in-one project management tool. Full source code available for non-commercial use.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗This repository contains both the frontend and backend (Google Cloud Functions) code for the Alldone app.
Use the repository-wide toolchain:
.nvmrc)npm install -g [email protected])Run nvm use at the repository root before installing dependencies. The legacy Expo CLI toolchain is retired. The Cloudflare email worker is the one exception: cloudflare/email-worker/ uses its own .nvmrc to pin Node 20 for Wrangler.
Run nvm use, then npm run dev. This starts the full Firebase emulator suite
before starting the web server and keeps both running together. Open
https://localhost:19006; the Emulator UI is at http://127.0.0.1:4000.
Java 11+ and the root, functions/, and web-bundler/ npm dependencies are required.
Browser localhost automatically uses local Auth, Firestore, Functions, Storage
(including note content), and Realtime Database. No ?emulator=true is needed.
The alldonestaging project ID is only the local emulator namespace; localhost
does not fall back to staging when an emulator is unavailable. Hosted staging,
production, and native mobile shells retain their configured Firebase backend.
Local accounts and data are separate from staging. Google sign-in uses the Auth
emulator's test account screen. Emulator data is saved under the gitignored
.firebase/local-data directory on a graceful shutdown and restored on startup.
Push notifications are unavailable locally. firebase.local.json contains the
local service setup; deployment continues to use firebase.json.
The web server proxies Auth's handler, iframe, sign-in, and token-refresh requests through the app origin to port 9099. Keep that proxy in place: redirect sign-in otherwise loses its result when browser storage is partitioned across origins.
For separate terminals, use npm run emulators and npm run dev:web. Do not run
npm run dev alongside an already running emulator suite, since it owns its own
suite on the same ports. Stop the combined command with Ctrl+C to export local data.
The project is configured for GitLab CI/CD using the .gitlab-ci.yml file.
If you want to use a different CI/CD platform (such as GitHub Actions, Bitbucket Pipelines, or CircleCI), you will need to create your own configuration files. You can refer to the existing setup as a starting point, but some adjustments may be necessary.
Note:
If you are contributing to the main Alldone app, you can skip this section.
If you plan to deploy your own instance of the app, please continue reading.
The Alldone app relies on several external services. To run your own instance, you must create accounts and configure these services as outlined below.
Alldone uses Algolia for search functionality and user mentions.
You can create an account at Algolia.
Algolia offers a free tier with limited resources, but for production, we recommend the Pay-as-you-go plan.
You should create two separate accounts, one for staging and other for production
To run the app locally, add the following variables:
ALGOLIA_APP_IDALGOLIA_SEARCH_ONLY_API_KEYAdd these to:
.env (current environment)envs/env.developenvs/env.masterAdd these variables to GitLab CI/CD:
ALGOLIA_APP_ID_DEVALGOLIA_SEARCH_ONLY_API_KEY_DEVALGOLIA_APP_ID_PRODALGOLIA_SEARCH_ONLY_API_KEY_PRODTo support functions, include the following in each environment:
ALGOLIA_APP_IDALGOLIA_ADMIN_API_KEYAdd these to:
.envenv_functions.jsonenv_functions_master.jsonenv_functions_dev.jsonNote: The
.envfile must match the currently active environment.
Alldone uses the GA4 web stream G-HR3PWMHKQQ on my.alldone.app. The Google tag is loaded dynamically only
after the visitor grants analytics consent. Local, preview and staging hosts do not load or send analytics.
Client events must go through utils/analytics/analytics.js; do not add direct gtag or Firebase Analytics calls.
The module owns consent, user identity, SPA page views, event normalization and parameter allowlisting.
Cloud Functions use GA4 Measurement Protocol for confirmed server events. Production function configuration requires:
ANALYTICS_ENABLED=trueGOOGLE_ANALYTICS_KEY=G-HR3PWMHKQQGOOGLE_ANALYTICS_MEASURE_PROTOCOL_API_SECRET=<secret for this web stream>Set ANALYTICS_ENABLED=false and omit the key and secret in non-production function environments. Google Ads
conversions are imported from GA4 key events; the app does not load a Google Tag Manager container or direct Ads tags.
Alldone uses Firebase for authentication, real-time database access, storage and other functionalities.
You can manage your project at Firebase Console.
To run the app locally, add the following variables:
GOOGLE_FIREBASE_WEB_CLIENT_IDGOOGLE_FIREBASE_WEB_API_KEYGOOGLE_FIREBASE_DEPLOY_TOKENGOOGLE_FIREBASE_WEB_APP_IDGOOGLE_FIREBASE_WEB_AUTH_DOMAINGOOGLE_FIREBASE_WEB_DATABASE_URLGOOGLE_FIREBASE_STORAGE_BUCKETGOOGLE_FIREBASE_WEB_NOTES_STORAGE_BUCKETGOOGLE_FIREBASE_WEB_MESSAGING_SENDER_IDGOOGLE_FIREBASE_WEB_PROJECT_IDAdd these to:
.env (current environment)envs/env.developenvs/env.masterAdd these variables to GitLab CI/CD:
GOOGLE_FIREBASE_WEB_CLIENT_ID_DEVGOOGLE_FIREBASE_WEB_CLIENT_ID_PRODGOOGLE_FIREBASE_WEB_API_KEY_DEVGOOGLE_FIREBASE_WEB_API_KEY_PRODGOOGLE_FIREBASE_DEPLOY_TOKENGOOGLE_FIREBASE_WEB_APP_ID_DEVGOOGLE_FIREBASE_WEB_APP_ID_PRODGOOGLE_FIREBASE_WEB_AUTH_DOMAIN_DEVGOOGLE_FIREBASE_WEB_AUTH_DOMAIN_PRODGOOGLE_FIREBASE_WEB_DATABASE_URL_DEVGOOGLE_FIREBASE_WEB_DATABASE_URL_PRODGOOGLE_FIREBASE_STORAGE_BUCKET_DEVGOOGLE_FIREBASE_STORAGE_BUCKET_PRODGOOGLE_FIREBASE_WEB_NOTES_STORAGE_BUCKET_DEVGOOGLE_FIREBASE_WEB_NOTES_STORAGE_BUCKET_PRODGOOGLE_FIREBASE_WEB_MESSAGING_SENDER_ID_DEVGOOGLE_FIREBASE_WEB_MESSAGING_SENDER_ID_PRODGOOGLE_FIREBASE_WEB_PROJECT_ID_DEVGOOGLE_FIREBASE_WEB_PROJECT_ID_PRODTo support functions, include the following in each environment:
GOOGLE_FIREBASE_WEB_CLIENT_IDGOOGLE_FIREBASE_DEPLOY_TOKENGOOGLE_FIREBASE_WEB_NOTES_STORAGE_BUCKETAdd these to:
.envenv_functions.jsonenv_functions_master.jsonenv_functions_dev.jsonIn the firebase-messaging-sw.js file, include:
apiKeyappIdauthDomaindatabaseURLmessagingSenderIdstorageBucketIn the google-services.json file, include:
client_idfirebase_urlproject_numberAlldone uses SendinBlue for transactional emails and marketing communication services.
You can learn more at SendinBlue.
To run the app locally with SendinBlue, add the following variables:
SIB_API_KEYSIB_MARKETING_SERVICE_LISTAdd these to:
.env (current environment)envs/env.developenvs/env.masterFor staging and production environments, add the following variables to GitLab CI/CD:
SIB_API_KEYSIB_MARKETING_SERVICE_LIST_DEVSIB_MARKETING_SERVICE_LIST_PRODTo support functions, include the following in each environment:
SIB_API_KEYAdd this to:
.envenv_functions.jsonenv_functions_master.jsonenv_functions_dev.jsonAlldone uses Sentry for error monitoring and performance tracking.
You can learn more at Sentry.
To run the app locally with Sentry, add the following variable:
SENTRY_DSNAdd this to:
.env (current environment)envs/env.developenvs/env.masterFor staging and production environments, add the following variable to GitLab CI/CD:
SENTRY_DSNAlldone uses OpenAI for AI-powered features and automation.
You can learn more at OpenAI.
To support functions, include the following variable in each environment:
OPEN_AI_KEYAdd this to:
.envenv_functions.jsonenv_functions_master.jsonenv_functions_dev.jsonAlldone integrates Perplexity for advanced AI query capabilities.
Learn more at Perplexity.
To run the app locally with Perplexity, add the following variable:
PERPLEXITY_API_KEYAdd this to:
.env (current environment)envs/env.developenvs/env.masterFor staging and production environments, add the following variable to GitLab CI/CD:
PERPLEXITY_API_KEYTo support functions, include the following variable:
PERPLEXITY_API_KEYAdd this to:
env_functions.jsonenv_functions_master.jsonenv_functions_dev.jsonAlldone uses the Quill editor for creating notes and tasks, enabling rich text and embedded content.
We’ve made custom modifications to the Quill library to support our specific use cases.
After installing Quill, replace the default file with the modified version:
replacement_node_modules/quill/dist/quill.jsnode_modules/quill/dist/quill.jsQuill supports real-time collaborative editing, allowing multiple users to edit a note simultaneously.
To enable collaboration, you can use one of the following public signaling servers:
wss://signaling.yjs.devwss://y-webrtc-signaling-eu.herokuapp.comwss://y-webrtc-signaling-us.herokuapp.com⚠️ These public servers may become unavailable. For long-term use, we recommend hosting your own.
You can run your own signaling server. We provide a reference implementation here:
Collaboration Server Repo
This implementation is designed for Google App Engine but can be adapted for other environments.
If using your own server, update the environment configurations accordingly.
To support collaboration locally, add the following variable:
NOTES_COLLABORATION_SERVERAdd this to:
.env (current environment)envs/env.developenvs/env.masterFor staging and production environments, add the following variable to GitLab CI/CD:
NOTES_COLLABORATION_SERVERAlldone uses a repository mirror to GitHub to provide free public access to the codebase.
If you're setting up your own instance, you likely won't need this functionality.
However, if you wish to replicate your repository to GitHub, the integration is already configured and ready to use.
You can learn more at GitHub.
To run the app locally with GitHub integration, add the following variables:
GITHUB_TOKENGITHUB_USERAdd these to:
.env (current environment)envs/env.developenvs/env.masterFor staging and production environments, add the following variables to GitLab CI/CD:
GITHUB_TOKENGITHUB_USERAlldone uses ipregistry to handle geolocation.
You can learn more at Ipregistry.
To run the app locally, add the following variables:
IP_REGISTRY_API_KEYAdd these to:
.env (current environment)envs/env.developenvs/env.masterFor staging and production environments, add the following variables to GitLab CI/CD:
IP_REGISTRY_API_KEYAlldone uses Giphy to handle gif animations.
You can learn more at Giphy.
To run the app locally, add the following variables:
GIPHY_API_KEYAdd these to:
.env (current environment)envs/env.developenvs/env.masterFor staging and production environments, add the following variables to GitLab CI/CD:
GIPHY_API_KEY_DEVGIPHY_API_KEY_PRODAlldone uses Mollie to handle premium subscription payments.
Alldone is free to use under a non-commercial license.
If you wish to use Alldone for commercial purposes, you must first contact us to reach an agreement.
If granted permission for commercial use, you can use the current premium payment system. You’ll need to configure the Mollie integration as described below.
To enable Mollie in functions, add the following environment variable:
MOLLIE_API_KEYMOLLIE_WEBHOOKMOLLIE_SEND_MONTHLY_INVOICEAdd this to:
.envenv_functions.jsonenv_functions_master.jsonenv_functions_dev.jsonIf you're not using Alldone commercially or prefer not to integrate payments, you can disable premium features:
Replace the PremiumTab with a placeholder tab.
⚠️ We do not recommend removing it, as some links may point to it, which could cause runtime errors. This is why you need to replace the tab only.
You’ll find the component here:
components/Premium/PremiumTab.jsSettingsView componentTo make all users premium by default:
getNewDefaultUser function.premium entry:premium: { status: PLAN_STATUS_PREMIUM },
#### Alternative: Manually Set Premium Users and Remove Cloud Functions
Alternatively, you can manually update specific users in the database to have premium access:
- Go to the `users` collection.
- Set the field `premium.status` to `premium` for any user you want to treat as premium.
---
You can also remove premium-related **Google Cloud Functions** to reduce costs.
> ⚠️ This is optional and should only be done if you’ve replaced or disabled the `PremiumTab`.
The following functions can be safely removed:
- `updateCreditCardNumberSecondGen`
- `createCompanySubscriptionSecondGen`
- `removeUserFromSubscriptionSecondGen`
- `addedPaidUsersToSubscriptionSecondGen`
- `addedPaidUsersWhenActivateSubscriptionSecondGen`
- `removePaidUsersFromSubscriptionSecondGen`
- `addedUsersToSubscriptionSecondGen`
- `addedUsersWhenActivateSubscriptionSecondGen`
- `cancelSubscriptionSecondGen`
- `webhookSecondGen`
- `webhook`
- `updateMollieSubscription`
- `sendMonthlyInvoiceSecondGen`
- `sendMonthlyInvoice`
- `resetUserFreePlanSecondGen`
- `autoCancelSubscriptionsSecondGen`
## 4. Alldone company data
> **Note:**
> If you are contributing to the main Alldone app, you can skip this section.
> If you plan to deploy your own instance of the app, please continue reading.
The codebase includes references to company-specific data related to Alldone.
If you're setting up your own instance, make sure to search for and replace these values with your own company information.
Below is a list of placeholders you should look for and update accordingly:
- `Karsten`
- `Wysk`
- `[email protected]`
- `[email protected]`
- `Kolonnenstr. 8 10827 Berlin`
- `Alldone GmbH`
- `HRB 214608B`
- `30 205 51005`
- `DE334674051`
- `CEO Alldone.app`
Be thorough when replacing these values to ensure your deployment is fully customized and legally compliant.
Check the files `.env.alldonealeph` and `.env.alldonestaging`
## 5. Alldone hostings
> **Note:**
> If you are contributing to the main Alldone app, you can skip this section.
> If you plan to deploy your own instance of the app, please continue reading.
The codebase contains links pointing to the official Alldone application.
When deploying your own version, you should update these URLs to reflect your own domain and hosting setup.
Below is a list of placeholders to search for and replace:
- `https://mystaging.alldone.app`
- `alldone.app`
- `https://my.alldone.app/`
Make sure to review all environment files, configuration files, and hardcoded URLs to ensure your deployment points to your own infrastructure.
We use Firestore as the primary database. For the initial setup, you'll need to manually add a few entries to Firestore:
roles/administratoruserId with the ID of the admin user.⚠️ The first time you run AllDone, a user document will be automatically created under the
userscollection.
You can find the ID of that user and manually set it in theroles/administratordocument.
You can later update the userId to assign administrator rights to a different user if needed.
We have two main environments configured, production and staging.
To run the app locally, add the following variables:
CURRENT_ENVIORNMENTHOSTING_URLAdd these to:
.env (current environment)envs/env.developenvs/env.masterAdd these variables to GitLab CI/CD:
CURRENT_ENVIORNMENT_DEVCURRENT_ENVIORNMENT_PRODHOSTING_URL_DEVHOSTING_URL_PRODTo support functions, include the following in each environment:
CURRENT_ENVIORNMENTHOSTING_URLAdd these to:
.env.env.alldonestaging.env.alldonealephNote: The
.envfile must match the currently active environment.
To configure the service accounts for different environments, create the following files in your project directory:
serviceAccountKey.jsonserv_account_key_develop.jsonserv_account_key_master.jsonEach file should contain the following JSON structure:
{
"type": "",
"project_id": "",
"private_key_id": "",
"private_key": "",
"client_email": "",
"client_id": "",
"auth_uri": "",
"token_uri": "",
"auth_provider_x509_cert_url": "",
"client_x509_cert_url": ""
}
Be sure to fill in the correct credentials for each environment (e.g., development, staging, production).
These credentials are typically generated from your Google Cloud Console when creating a service account key.