Busabase
Busabase is an open-source (MIT) database and workspace for AI agents — data, docs, skills, and apps in one place. Run it locally, self-host it inside your network, or use Busabase Cloud, and turn age
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Every response from a survey is a signal TODD reads it so you do not have to
翻訳待ち
Loading the full README.
Read the full README ↗Pulse is 16Ahead's survey product: write a short pulse of focused questions, share a link, and read the answers as a decision rather than a pile of responses. Built by Taliferro Tech as part of the 16Ahead product family.
Live: pulse.16ahead.com · iOS twin: apps/ios/pulse-ios (Pulsur, native Swift, separate repo)
| Piece | What it is |
|---|---|
| This repo | Angular 19 standalone-component app (Bootstrap 5, Font Awesome). Public pages are prerendered at build time; everything else renders in the browser. |
@taliferro/ui | Shared menu, footer, theme and product-page components used by every Taliferro web product. Installed from a sibling checkout (file:../../taliferro-ui), not from npm. |
Firebase project taliferrotech | Shared by the 16Ahead hub and all its products. Pulse uses Firebase Auth (session), Firestore (users/{uid} for tenant lookup), and Hosting (site todd-pulse). |
https://api.taliferro.tech/api | The shared 16Ahead backend. Surveys, public survey/response endpoints, profile, account/billing, checkout, onboarding and the in-app assistant. |
| 16Ahead hosted login | Sign-in isn't done in this app. /login sends people to the hub's hosted login (app.16ahead.com/login?client=pulse-web on 16ahead.com hosts, the legacy todd.taliferro.tech/login on localhost and taliferro.tech hosts; see hostedLoginUrl in @taliferro/ui/platform/hosted-login.model), which returns a custom token to /auth/callback. |
npx ng … and the npm scripts work without a global installnpm i -g firebase-tools) — runs the emulators for the end-to-end tests; no Firebase login is needed for thatbrew install openjdk) — the Firestore emulator used by the end-to-end tests needs ittshowers/pulse and tshowers/taliferro-uitaliferrotech Firebase project. You can run the app and all the tests without it. Deploys are done only by the project owner (see Contributing).@taliferro/ui is resolved from two folders up, so the checkouts have to sit side by side like this or npm install fails:
corporate/
├── taliferro-ui/ # [email protected]:tshowers/taliferro-ui.git
└── web-products/
└── pulse/ # [email protected]:tshowers/pulse.git (this repo)
mkdir -p corporate/web-products && cd corporate
git clone [email protected]:tshowers/taliferro-ui.git
git clone [email protected]:tshowers/pulse.git web-products/pulse
cd web-products/pulse
npm install
npm start # ng serve → http://localhost:4200
The dev server reloads on change. Signing in from localhost uses the hosted-login client pulse-web-local, which hands you back to your local /auth/callback. If sign-in doesn't come back to your machine, check that client's return URL in 16Ahead's hosted-login setup.
There is no .env file and nothing to fill in. All configuration is committed in src/environments/:
environment.ts — used by ng serve and development buildsenvironment.prod.ts — swapped in for production builds (angular.json → fileReplacements)| Key | Used for |
|---|---|
production | Turns on the service worker, version polling and chunk-error recovery |
PLATFORM_URL | Public origin, https://pulse.16ahead.com |
backendURL | 16Ahead backend base URL, https://api.taliferro.tech/api |
apiKey | Bearer key sent to the backend's /app-assistant endpoint |
firebaseConfig | Firebase web config for the taliferrotech project |
taliferroTenantId | The Taliferro admin account; signed-in as this uid shows admin-only UI |
COMPANY_NAME | Display name |
linkPreview | Not currently referenced by the app |
These values ship in the browser bundle anyway (Firebase web config is public by design; security comes from Firestore rules in firestore.rules and backend auth), so they're safe to keep in the repo. Don't add real secrets here.
Heads-up: local development talks to production. Both environment files point at the live
taliferrotechFirebase project and the liveapi.taliferro.techbackend. Surveys you create while running locally are real data in your real account. The only isolated setup is the end-to-end tests, which run against the Firebase emulators.
Pulse calls these backend routes (all under backendURL). Signed-in requests carry a Firebase ID token plus X-Tenant-Id / X-User-Id headers (src/app/core/interceptors/id-token.interceptor.ts, src/app/services/pulse-tenant.interceptor.ts).
| Route | Purpose |
|---|---|
/surveys | Create, list, read, update, delete the signed-in tenant's pulses |
/public/surveys/:id, /public/surveys/:id/responses | Respondent view (/take/:id) and submitting answers — no sign-in |
/profile, /onboarding/profile, /getting-started/pulse | Profile and first-run setup |
/account | Plan and billing state |
/survey/checkout, /survey/checkout/confirm | Web subscription checkout |
/app-assistant | General Assistant |
The backend lives in its own repo, taliferro-tech/taliferrotech (Firebase Functions; older code comments call it todd-backend). Changing an endpoint is done and deployed there, not here.
This is the beginning of the README. Read the rest at the original. Read the full README ↗