TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 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.