How bullet-train-co/bullet_train works
This is a Bullet Train Rails application template for a multi-user, team-based product. The primary workflow is account users managing teams, memberships, and invitations; the template also exposes versioned APIs and a Zapier integration for OAuth, resource creation, and event triggers. Admin resources, address data, browser-side Stimulus/Action Cable support, and OAuth scaffolding are additional capabilities. The excerpts show Zapier’s API/webhook requests and frontend module wiring; most Rails controller-to-model and route behavior was not sampled, so those links are omitted.
Main entry points: index.js Zapier App · v1 Versioned API · application.js Browser Application · authentication.js Zapier OAuth
Components 24
Accounts and Teams
- Users
app/models/user.rb - Teams
app/models/team.rb - Memberships
app/models/membership.rb - Invitations
app/models/invitation.rb - Address Data
app/models/address.rb
Application Interfaces
- Account UI
app/controllers/account - Public Pages
app/controllers/public/home_controller.rb - Versioned API
app/controllers/api/v1 - Admin UI
app/controllers/avo - Admin Resources
app/avo/resources/team.rb - Browser Application
app/javascript/application.js - Stimulus Controllers
app/javascript/controllers/index.js - Cable Consumer
app/javascript/channels/consumer.js - Timezone Support
app/javascript/support/jstz.js
Integrations
- Zapier App
zapier/index.js - Zapier OAuth
zapier/authentication.js - Zapier Creates
zapier/creates/create_scaffolding_completely_concrete_tangible_thing.js - Zapier Triggers
zapier/triggers/scaffolding_completely_concrete_tangible_thing_created.js - OAuth Scaffolding
lib/bullet_train_oauth_scaffolder_support.rb
Application Runtime
- Relational Database
db/schema.rb - Background Jobs
app/jobs/application_job.rb
Other components
- Product User
- Zapier Platform
- Outgoing Webhooks
Connections 14
- Browser Application → Stimulus Controllers: loads
app/javascript/application.js - Browser Application → Cable Consumer: loads
app/javascript/application.js - Browser Application → Timezone Support: loads
app/javascript/application.js - Stimulus Controllers → Cable Consumer: initializes
app/javascript/controllers/index.js - Zapier App → Zapier OAuth: registers
zapier/index.js - Zapier App → Zapier Creates: registers
zapier/index.js - Zapier App → Zapier Triggers: registers
zapier/index.js - Zapier OAuth → Versioned API: requests OAuth
zapier/authentication.js - Zapier OAuth → Versioned API: tests identity
zapier/authentication.js - Zapier Creates → Versioned API: creates resource
zapier/creates/create_scaffolding_completely_concrete_tangible_thing.js - Zapier Triggers → Versioned API: lists resources
zapier/triggers/scaffolding_completely_concrete_tangible_thing_created.js - Zapier Triggers → Outgoing Webhooks: subscribes
zapier/triggers/scaffolding_completely_concrete_tangible_thing_created.js - Zapier Platform → Zapier App: uses integration
- Product User → Account UI: uses account