Voicebar
음성 우선 Android 키보드, Gboard와 함께 사용 음성 입력 후 정리된 메시지가 입력란에 들어갑니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기A Simple Checklist app.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Shared Checklists - built with rowboat and BetterAuth.
nvm use reads .nvmrc) and npm 12 (npm install -g npm@12, once per Node
install)Each npm major writes different lockfile metadata (optional platform binaries, dev and
devOptional flags), so an install under another npm rewrites the lockfiles. The engines field
in the root, backend/ and migration/jazz-export/ package.json, each of which has its own
lockfile, pins the majors only (node ^24.0.0, npm ^12.0.0), since a minor version changes no
lockfile and the CI host runs an older Node 24 than the laptops. Each directory's .npmrc sets
engine-strict, so npm install under another major stops with EBADENGINE before it touches a
lockfile. scripts/toolchain.ts checks the running Node and npm against engines;
scripts/pre-land runs it, so the shared land command refuses a mismatched toolchain, and
scripts/toolchain.test.ts fails if the three engines fields differ or .nvmrc names another
Node major. To move to a new major, change all four in one commit and regenerate the lockfiles in
the next.
npm 12 runs a dependency's install scripts only when allowScripts in that package.json approves
them: esbuild and lefthook at the root, better-sqlite3 and esbuild in backend/. sharp
(used only by the icon and asset scripts) stays blocked. Approve a new one with
npm install-scripts approve <pkg> after reading what its script does.
npm install
cd backend && npm install && cd ..
cp .env.example .env
cp backend/.env.example backend/.env
# Edit both .env files with your OAuth credentials
npm run dev # Runs both frontend and backend
Visit http://localhost:5173
Available dev commands:
npm run dev - Run both frontend (port 5173) and backend (port 3001)npm run dev:frontend - Run only frontendnpm run dev:backend - Run only backendGoogle OAuth: https://console.cloud.google.com/ Apple OAuth: https://developer.apple.com/
Add redirect URIs:
http://localhost:5173/api/auth/callback/{provider}https://yourdomain.com/api/auth/callback/{provider}GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
APPLE_CLIENT_ID=your_apple_client_id
APPLE_CLIENT_SECRET=your_apple_client_secret
VITE_API_URL=http://localhost:3001
STRIPE_SECRET_KEY=your_stripe_secret_key
STRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret
Templates are reusable checklists organized in folders.
Sessions are created when you "use" a template - they track what's in your cart and what you've purchased without modifying the template. A session is labeled by its date until you give it a name with Rename in its row menu.
Keyboard shortcuts in a session:
↓ / ↑: move between itemsSpace / Enter: check or uncheck the focused itemN: open the add/edit formEsc: leave the sessionrowboat provides:
BetterAuth provides:
Stripe provides:
npm run dev # Start dev server (frontend + backend)
npm run build # Build for production
npm run lint # Run linter
npm run type-check # Check TypeScript
npm run test:run # Run unit tests
npm run test:e2e # Run E2E tests
npm run check # Run type-check + lint + tests
See ARCHITECTURE.md for system overview and code locations.
Getting Started:
QUICKSTART.md - Get started in 5 minutesREADME.md - This fileArchitecture & Development:
ARCHITECTURE.md - System architecture and code organizationCLAUDE.md - Development guide and rowboat patternsdocs/DESIGN_SYSTEM.md - UI/UX design patternsdocs/INDENTED_LIST_FORMAT.md - Hierarchical text import/export formatDeployment:
DEPLOY.md - Deployment instructionsProduct:
docs/BACKLOG.md - Single project backlog (outstanding features + engineering)docs/ROADMAP.md - Product positioning and market analysisdocs/MARKET_COMPARISON.md - Competitive analysisdocs/GooglePlayStore.md - App store submission checklistThe app supports multiple brands via runtime domain detection:
Brand configuration is in src/lib/brand.ts. Set VITE_BRAND env var to override.
See DEPLOY.md for detailed deployment instructions.
Quick start:
./deploy-full.sh init # Initial deployment (frontend + backend)
./deploy-full.sh update # Subsequent updates
The app deploys in two parts:
PolyForm Noncommercial 1.0.0 - Free for non-commercial use.