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.