For the CRM2 team. 21 Oct 2026. All names and numbers in the demo are invented.
This is a demo. Try it, then send us your notes. Nothing here changes your own code or data.
Works best on a phone. A desktop browser also works.
Open crm2-proto.anantmb.workers.dev. Sign in with one username below.
Password for every account: Jaigurudev123
| Persona | Username | Try this |
|---|---|---|
| Teacher | tour.teacher |
|
| Volunteer | tour.volunteer |
|
| Second volunteer | tour.volunteer2 |
|
| Coordinator | tour.coordinator |
|
| Admin | tour.admin |
|
Tip: for the two volunteers, use two phones or two browsers.
Each tile on Home opens one app. You see only the apps your role may use.
An admin can turn any app off. Go to Home > Turn apps on or off. The tile hides at once. No rebuild.
Follow up with people you invited. Call or WhatsApp in one tap.
TryOne lead per phoneDo not contact needs a reasonUndo the last stepClosed list with reason
Your centre and its team. Invite people. Set the centre's place on the map.
Try
The Happiness Survey. Each volunteer has an own QR link.

Seva you can join near you. Sign up, check in, log hours.

Shared rides to programs and seva.

Programs you run or attend.

The Art of Living program catalog.

Notices for your centre or region.

Videos, posters, your program links and ready messages.

Accounts, support requests, return rules, data import, connected apps.

Your details and your language.
These tiles show demo data in this demo.
Wisdom · talks by GurudevResources · posters, videos, templatesAsk AI · find or create anythingVTP · Volunteer Training ProgramCentres · find a centreEvents · events and sign-up
| Item | Before | After | Why |
|---|---|---|---|
| App list | The tile list was fixed in code. | Home reads the list at sign-in. | A team adds an app without editing Home. |
| On/off switch | Every person saw every tile. | Each app has a permission and a switch. | An admin hides an unready app in one tap. |
| Top bar and app frame | Each module drew its own header. | One shared top bar. The app shows below it. | Every app looks like one product. App teams build no header. |
| One web address | The shell talked to CRM2's own backend only. | Added apps run under the same address. | One sign-in, one cookie, no cross-site setup. |
| Icons and languages | Generic icons. English and Hindi. | Sunburst icons. Six languages: English, Hindi, Marathi, Telugu, Gujarati, Kannada. | One look, and the languages volunteers speak. The last four are drafts. |
| Speed | Sign-in 1.12 s. Open Leads 1.88 s. | Sign-in 0.57 s. Open Leads 0.97 s. | A tile tap no longer reloads the whole page. |
Speed: median of 3 runs, desktop browser at phone size. Phones were not measured.
How to read this. Each block is one app. Steps are in order. Each picture shows the screen for that step. All names and numbers are invented demo data.
Goal: Add a person, call them, log what happened.


























Goal: See your teams, add a team, add a person.







Goal: Post a notice to one team or all teams.




Goal: Find a program by place, language or PIN code.



Goal: See your sessions and share them.



Goal: Find links and material to share.




Goal: Offer or ask for a ride to a session.


Goal: Find seva near you and sign up. Coordinators add seva.







Goal: Make a link or QR code for a survey and read the answers.





Goal: Change your language, see your profile, ask for a change.



Not in this manual yet: Admin, Wisdom, Resources, Ask AI, VTP. Posters, messages and videos in Promote show sample data.
apps/volunteer2-fe) owns sign-in, the top bar, the tile grid and the app frame.volunteer-be and Postgres, as before.packages/app-registry): id, entry, permission, switch.GET /api/apps returns only the rows this person may open./x/<id>/. This "door" checks the session and the switch.feature/samanvay, not into dev. One bad PR then cannot break dev for the team.feature/samanvay into dev.| # | Branch | What it adds | Lines |
|---|---|---|---|
| 1 | feat/app-registry | Runtime app list, permission per tile, switches, Admin › Apps | ~1.9k |
| 2 | feat/shell-bar-frame | Top bar, app frame, door, Home and Back, sign-in handoff | ~2.1k |
| 3 | feat/shell-brand-icons-i18n | Samanvay brand, Sunburst icons, six-language shell | ~5.3k |
| 3b | chore/brand-samanvay | Seva → Samanvay in team apps (the team may refuse this one alone) | ~0.2k |
| 4 | perf/shell-speed | Cached assets, boot data in the page, one chunk per module | ~0.3k |
| 5 | test/shell-flows | Browser flows for the shell | ~0.7k |
| 6 | chore/aol-core-tooling | Package, seeds, invented test data, boundary check, CI lane | ~16k |
| 7 | feat/aol-core | Auth, session, scope, roles, people, lead store, all migrations | ~25k |
| 8 | feat/aol-core-ui | UI kit, router, store, core texts | ~14k |
| 9a | feat/app-leads | Lead queue, detail, follow-ups, status | ~32k |
| 9b | feat/app-leads-intake | Intake, ads, coverage, lead sources and fields | ~27k |
| 9c | feat/app-leads-bulk | Import, export, refer, offline book | ~12k |
| 10 | feat/app-teams | Team tree, members, invites, centre profile | ~10k |
| 11 | feat/app-programs | My Programs and Find Programs | ~21k |
| 12 | feat/app-survey | Happiness Survey and form builder | ~11k |
| 13 | feat/app-seva | Seva callouts, shifts, roster, safety | ~14k |
| 14 | feat/app-seva-rides | Ride offers, needs, notices | ~10k |
| 15 | feat/app-announcements | Announcements tile | ~1k |
| 16 | feat/app-promote | Videos, posters, program links, messages | ~2.3k |
| 17 | feat/app-admin-profile | Staff hub and own profile | ~12k |
| 18 | test/aol-integration | Tests that cross two or more apps | ~26k |
| Total | Lines are added lines, ±30%, tests and texts included | ≈245k |
| Stays in the demo | What the team uses |
|---|---|
| Demo sign-in (stub code and stub session) | CRM2's own sign-in. The added apps accept the shell's handoff. |
| Our AOL sign-in screens inside the shell | None. A CRM2 person maps to an AOL user by verified phone. A handoff never creates an account. |
| Local stub of the CI SDK and the demo Worker config | The real CI SDK and the team's own config. |
| The link to our own demo database | The team links its own AOL-Connect Worker and D1 per environment. |
| The name "Samanvay" in team-owned apps | Only if the group agrees (branch 3b). |