Voicebar
A voice-first keyboard for Android that works alongside Gboard. Tap Voice, talk, and a tidy message lands in the box.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证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.