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.
WorshipFlow — plan worship sets, arrange songs, and run rehearsals your whole team can follow.
ProductivityTypeScript · JavaScriptGitHub @JbdpalleOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
WorshipFlow — A worship planning and rehearsal app that helps worship leaders create theme-based setlists, organize song arrangements, manage team assignments, capture instrument/vocal notes, track rehearsal changes, and use an integrated metronome. Built to keep the entire worship team aligned from planning → practice → performance.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A worship planning and rehearsal OS: pick a theme, build a setlist, arrange
every song section-by-section with per-role instructions, and run rehearsal
mode from a phone — with a full history of what changed and why.
Working name. "WorshipFlow" communicates worship + flow + team +
rehearsal well enough to ship the MVP under. Revisit later if it doesn't
stick.Read the full README ↗A worship planning and rehearsal OS: pick a theme, build a setlist, arrange every song section-by-section with per-role instructions, and run rehearsal mode from a phone — with a full history of what changed and why.
Working name. "WorshipFlow" communicates worship + flow + team + rehearsal well enough to ship the MVP under. Revisit later if it doesn't stick.
The worship leader defines the musical and spiritual direction. The app's theme engine only suggests — grouping the leader's own theme, verses, and keywords into biblical categories and surfacing matching songs from the team's library. It never claims theological authority ("this song may fit because its lyrics focus on...", never "God wants you to sing this").
ANTHROPIC_API_KEY; spreadsheet
import doesn't.ADMIN_EMAIL.OWNER, ADMIN,
LEADER, MEMBER); Owner/Admin can rename the church, Owner/Admin/Leader
get leader-level access (invite people, delete sets, direct rehearsal),
Member is view-and-participate only. Per-musician login is real: an
invited email gets its own account at the role it was invited with — see
MVP limitations for the one caveat.PDF/audio uploads of audio itself (chord-chart text PDFs are supported —
see Import from PDF above), click tracks/MIDI, scheduling & availability,
notifications, and AI-generated setlists. The architecture (see
lib/songs/theme-engine.ts and the service layer in lib/actions/) is
structured so these can be added without a rewrite — see Roadmap below.
components/ui
(no external component library dependency)@dnd-kitjose), bcrypt
password hashing — no third-party auth vendor required for the MVPworshipflow/
├── app/
│ ├── (app)/ # authenticated routes (dashboard, sets, songs, ...)
│ ├── api/auth/ # register / login / logout / demo
│ ├── login/, signup/
│ └── layout.tsx, page.tsx
├── components/
│ ├── ui/ # Button, Card, Input, Dialog, Tabs, ...
│ ├── setlist/, songs/, rehearsal/, metronome/, team/, feedback/, layout/
├── lib/
│ ├── db/prisma.ts # Prisma client singleton
│ ├── auth/ # session, password hashing, route guard
│ ├── actions/ # server actions = the service/API layer
│ └── songs/ # constants, rule-based theme engine, demo data
├── prisma/
│ ├── schema.prisma
│ └── seed.ts # local dev seed (npm run db:seed)
└── .env.example
A User authenticates; a Church is the top-level tenant boundary; a
User's access to a Church is granted by Membership (role: OWNER /
ADMIN / LEADER / MEMBER), not by owning a Team — so one person can
belong to more than one church, and a church can hold more than one Team.
Team is the working group everything else (songs, sets, rehearsals) is
scoped to. A WorshipSet has many SetSong (join row carrying order,
purpose, transition notes, key/BPM overrides) pointing at a Song. Each
Song has many SongSection (the arrangement), each SongSection has many
SongRoleNote (one per role/person pair). Rehearsal records belong to a
Song (optionally tied to a SetSong) and carry RehearsalNotes and
RehearsalChecks; ChangeLog is the structured "what changed" record,
separate from free-text rehearsal notes. PersonalNote is private per
User+Song. Feedback is unscoped (admin-only inbox) by design, since
it's meant to reach the product owner across teams.
Full schema: prisma/schema.prisma.
Requires a Postgres database — a free local one works fine for development
(createdb worshipflow with a local Postgres install, or docker run -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres:16).
npm install
cp .env.example .env # set DATABASE_URL (Postgres) and SESSION_SECRET
npm run db:migrate # applies prisma/migrations/ to your database
npm run db:seed # optional: seeds [email protected] / worshipflow
npm run dev
Open http://localhost:3000 — sign up (you'll get an example "Sunday Worship" set automatically) or click Try the demo for an instant account.
See .env.example:
| Variable | Required | Purpose |
|---|---|---|
DATABASE_URL | yes | Postgres connection string, local or production. Vercel's own Postgres/Neon integration sometimes names this POSTGRES_URL or PRISMA_DATABASE_URL instead — the Prisma client (lib/db/prisma.ts) checks all three, in that order |
SESSION_SECRET | yes | Signs the session cookie — generate with openssl rand -base64 32 |
ADMIN_EMAIL | no | Account allowed to view the /feedback inbox |
npm run dev # dev server
npm run build # production build
npm run typecheck # tsc --noEmit
npm run lint # eslint
npm run db:push # sync schema to the database without a migration (quick iteration)
npm run db:migrate # create and apply a migration
npm run db:seed # seed a demo account for local testing
The schema and an initial migration (prisma/migrations/20260928164739_init/)
are already committed and have been verified against a real Postgres
instance (migrate, seed, build, and a full browser walkthrough all passed).
To deploy:
vercel.json needed.DATABASE_URL — the Postgres connection string (if you used Vercel's
own Postgres integration, this is filled in for you)SESSION_SECRET — openssl rand -base64 32ADMIN_EMAIL — optional, gates the /feedback admin inboxbuild script runs prisma migrate deploy && next build,
so pending migrations apply automatically as part of every Vercel build
using Vercel's own environment (no local step, no local database
connectivity needed — useful since some managed Postgres providers,
e.g. Vercel's own Prisma Postgres, restrict direct connections from
outside their network). Every subsequent push to the connected branch
redeploys, and re-applies migrate deploy (a no-op if nothing changed).Automated: npm run typecheck, npm run lint, npm run build all pass.
Manual (verified in a real browser during development): sign up → land on a dashboard with a pre-seeded "Sunday Worship" / LOVE set → open the setlist → reorder songs via drag → open a song → edit its arrangement and add role notes → open Rehearsal Mode → step through sections → start the metronome → mark a rehearsal check → save rehearsal notes → return to the song's Rehearsal History tab and see it recorded → log a change and see it on the Dashboard's "Recently Changed" panel → switch "My Part" to a different team member and see only their instructions.
OWNER — inviting people is currently the only way a team ends up
with ADMIN/LEADER/MEMBER logins, so most teams haven't exercised
that path yet even though the code fully supports it.TeamPlan (FREE/PRO) exists and lib/plans/limits.ts enforces its
limits, but there's no self-serve billing/checkout — upgrading a team to
PRO is a manual step today, not a payment flow.Phase 2: notifications, availability/scheduling, capo suggestions,
richer search, a church-switcher UI for multi-church users, self-serve
billing for PRO.
Phase 3: AI-assisted setlist generation and scripture/theme intelligence (opt-in, leader-in-control by design), transition suggestions, rehearsal-summary briefings per instrument.
Long-term: multitrack/Ableton integration, click tracks & MIDI, sermon & service-order integration, team rotation.