/spiritual-seva invites devotees to deepen their faith through a structured, year-long program of personal spiritual practice. In celebration of the Temple’s Rajat Mahotsav, each haribhakt commits to monthly niyams (disciplines) grounded in the four pillars: Dharma, Gnyan, Vairagya, and Bhakti.
Spiritual seva runs over a ten-month period from October 2025 to July 2026. A live checkpoint of individual totals is held on January 1st to celebrate progress and inspire continued dedication.
Monthly spiritual goals
Each devotee is encouraged to complete the following targets every month:| Seva | Target | Description |
|---|---|---|
| Malas | 250 | Meditational prayer beads |
| Dhyaan | 250 min | Full body meditation |
| Pradakshinas | 250 | Clockwise devotion around the sihasan |
| Dandvats | 250 | Physical devotion to Lord Swaminarayan |
| Padyatras | 25 | Walks to the Mandir |
| Upvas | 25 | Fast for a full day |
Sacred scripture parayans
Devotees are also inspired to complete readings of sacred scriptures. Three parayans are recommended:Sadachar Sandesh
Teachings of Prem Murti Acharya Swamishree Maharaj. Available in Gujarati and English.
Harignanamrut Kavya
Kirtans composed by Jeevanpran Shree Muktajeevan Swamibapa. Available in Gujarati (4 parts) and English transliteration.
Bapashree ni Vato
Discourses by Jeevanpran Shree Abji Bapashree. Available in Gujarati (2 parts) and English (2 parts).
Submission form
Devotees submit their spiritual seva at/spiritual-seva/submit. The form is defined inline in app/spiritual-seva/submit/page.tsx.
The route
/spiritual-seva/submit uses a dedicated page-level form that is separate from the reusable SevaSubmissionForm component in components/organisms/seva-submission-form.tsx. The submit page includes all seva types including Upvas and scripture parayans.Form fields
| Field | Required | Validation |
|---|---|---|
| First name | Yes | Letters only (/^[A-Za-z]+$/) |
| Middle name | No | Letters only if provided |
| Last name | Yes | Letters only |
| Ghaam | Yes | Letters only |
| Phone number | Yes | isValidPhoneNumber() via react-phone-number-input |
| Country | Yes | Selector: Australia, Canada, England, India, Kenya, USA |
| Mandal | Yes | Derived from country (dropdown or auto-filled) |
| Seva types | Yes (≥1) | Checkbox selection from all 9 seva types (see below) |
| Count per seva | Yes | Positive integer for each selected seva type |
Seva types available
All 9 seva types are available as checkboxes on the submission form:| Seva ID | Label |
|---|---|
malas | Malas |
dhyan | Dhyan (Minutes) |
pradakshinas | Pradakshinas |
dandvats | Dandvats |
padyatras | Padyatras |
sadachar | Sadachar Sandesh Parayan |
harignanamrut | Harignanamrut Kavya Parayan |
bapashree | Bapashree ni Vato Parayan |
upvas | Upvas |
Submission workflow
Fill personal details
Enter first name, middle name (optional), last name, ghaam, phone number, country, and mandal.
Select seva types
Check one or more seva categories. A numeric input field appears for each checked seva.
Enter seva counts
Enter a positive integer for each selected seva type (e.g., 250 Malas, 180 minutes of Dhyan).
Submit
Click Submit Seva. The form is validated with Zod before submission. A loading spinner (
Loader2) is shown while the request is in flight.Zod schema
The full submission form schema fromapp/spiritual-seva/submit/page.tsx:
app/spiritual-seva/submit/page.tsx
File upload API
Spiritual seva submissions that include file attachments (photos, documents) use a presigned URL flow to upload directly to Cloudflare R2.API endpoint
The source file for this handler has a typo in its filename:
app/api/generate-upload-ursl.ts. It is implemented as a Next.js Pages API route (NextApiRequest / NextApiResponse), not an App Router route handler.Request body
Response
Upload flow
Request presigned URLs
The client POSTs file metadata (name, MIME type) along with
submissionId, eventName, and directoryName to /api/generate-upload-urls.Server generates signed URLs
For each file, the server constructs an R2 key in the format:A
PutObjectCommand is created and signed with @aws-sdk/s3-request-presigner. URLs expire in 600 seconds.Environment variables
| Variable | Description |
|---|---|
R2_ENDPOINT | Cloudflare R2 S3-compatible endpoint URL |
R2_ACCESS_KEY_ID | R2 access key |
R2_SECRET_ACCESS_KEY | R2 secret key |
R2_BUCKET_NAME | Target R2 bucket |
R2_BUCKET_PREFIX | Path prefix applied to all keys |
Toast notifications
The form usesuseToast() from hooks/use-toast.ts for feedback:
| State | Style | Message |
|---|---|---|
| Success | bg-green-500 text-white | "Seva recorded, {firstName}! Jay Shree Swaminarayan" |
| Error | bg-red-500 text-white | "Submission failed" + error message |
FAQ
When does the ten-month seva period start and end?
When does the ten-month seva period start and end?
The spiritual seva period runs from October 2025 through July 2026, aligned with the lead-up to the Rajat Mahotsav event in late July 2026.
What is a Ghaam?
What is a Ghaam?
Ghaam is the ancestral village name used within the Swaminarayan community to identify a devotee’s family lineage. It is required for seva record-keeping.
What happens at the January 1st checkpoint?
What happens at the January 1st checkpoint?
A live review of individual seva totals is conducted on January 1st, serving as a milestone celebration and opportunity to inspire devotees to continue through the remaining months.
Can devotees submit seva from outside the USA?
Can devotees submit seva from outside the USA?
Yes. The country selector and mandal dropdown support Australia, Canada, England, India, Kenya, and the USA. Devotees from India, Australia, Canada, and Kenya have their mandal auto-assigned.
Are file uploads required?
Are file uploads required?
No. File uploads are optional. The form can be submitted without attaching any photos or documents.
