TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗E-signatures without the usual headaches. Send any PDF for signature in under a minute, collect payment in the same flow, and let people sign on their phone. Live at salsox.com.
Next.js (App Router), Tailwind CSS v4, shadcn/ui, Prisma on PostgreSQL, Better Auth, Stripe and Paystack, Resend for email, Vercel Blob for files. Animation with framer-motion and gsap. Deployed on Vercel.
You need Node 24 or newer and Docker (or any PostgreSQL database).
npm install
docker run -d --name salsox-db -e POSTGRES_USER=salsox -e POSTGRES_PASSWORD=salsox -e POSTGRES_DB=salsox -p 55440:5432 postgres:16-alpine
cp .env.example .env.local # set DATABASE_URL=postgresql://salsox:salsox@localhost:55440/salsox and AUTH_SECRET
npx prisma migrate deploy && npm run db:seed
npm run dev
After the first run, docker start salsox-db brings the database back. Without email or file storage configured, development still works: signing links are logged and files go to .data/storage.
Every variable is listed with a comment in .env.example and explained in docs/configuration.md. Production refuses to start without:
| Variable | Why |
|---|---|
DATABASE_URL, AUTH_SECRET | The database and signed sessions |
NEXT_PUBLIC_APP_URL | https://salsox.com, the canonical URL behind every link, email and sitemap entry |
BLOB_READ_WRITE_TOKEN | Storage for uploaded and sealed PDFs |
RESEND_API_KEY, EMAIL_FROM | Signing invitations, reminders and receipts |
CRON_SECRET | The daily jobs: link expiry, reminders, re-sealing, renewal notices, IndexNow |
Sign & Pay needs STRIPE_* and/or PAYSTACK_*; see docs/esign.md.
npx tsc --noEmit && npm run lint && npm test # types, lint, unit tests
npm run test:e2e # Playwright: signing flow, checkout, mobile layout
The e2e suite needs the local database and a Chromium (npx playwright install chromium). e2e/responsive.spec.ts checks every main page for horizontal scroll at 360px and 390px.
| Path | What |
|---|---|
src/lib/esign/ | The signing engine: rules, state, PDF handling, payments, emails. Pages and actions call into it |
src/app/ | Routes: the public site under [locale], the dashboard, sign-in, /sign/[token], API routes |
src/locales/en.json | Every user-facing string |
content/ | The public docs, blog posts and changelog.md |
docs/ | Developer guides for this codebase |
Working rules for contributors (and coding agents) are in AGENTS.md and CLAUDE.md.
The version lives in package.json, src/config/site.ts (version) and the newest entry of content/changelog.md, which /changelog renders. Tests fail if they disagree. After a bump, run npm install --package-lock-only so the lockfile follows.
Salsox started from OpenStarterKit 2.3.3 (MIT); its licence notice is kept in LICENSE. The upstream git remote points there. Pull from it, but never push to it.