A modern, bilingual church website built with Next.js for Vine Church in Kitchener, Ontario, Canada.
- Bilingual Support: Portuguese (default) and English
- Modern Design: Based on reference sites from Videira Philadelphia and Seattle
- Responsive Layout: Mobile-first design that works on all devices
- Internationalization: Using next-intl for seamless language switching
- Church Information: Complete information about Vine Church KWC
- Framework: Next.js 14 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- Internationalization: next-intl
- Database: Supabase (PostgreSQL)
- Deployment: Ready for Vercel
-
Install dependencies:
npm install
-
Configure environment variables (optional for database integration):
cp .env.example .env.local
See
SUPABASE_SETUP.mdfor database configuration details. -
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser
The sermons feature uses Supabase (PostgreSQL) for data storage. See SUPABASE_SETUP.md for detailed setup instructions.
Note: The application includes a fallback mechanism, so it will work with static data even without database configuration.
Create a full backup of the production Supabase database using Dockerized pg_dump.
- Prerequisites: Docker Desktop installed and running
- Credentials: Supabase Dashboard → Settings → Database → use the DB password
Commands (Windows PowerShell):
# 1) Set your Supabase connection details for this session $env:SUPABASE_DB_HOST="your-pooler-host.supabase.com" $env:SUPABASE_DB_PORT="6543" $env:SUPABASE_DB_USER="postgres.your-project-ref" $env:SUPABASE_DB_PASSWORD="YOUR_SUPABASE_DB_PASSWORD" # 2) Run the backup script (writes backups/vine-prod-backup.sql) npm run backup:prodConnection details:
- Get host, port, and user from: Supabase Dashboard → Settings → Database → Connection string
- Typically uses session pooling (port 6543) with user format
postgres.<project-ref> - Format: plain SQL (includes schema + data via COPY blocks)
- Excludes: ownership and privileges (
--no-owner --no-privileges) for easier restore
Restore (example using Docker Postgres locally):
# Run psql inside Postgres 17 container to restore the plain SQL dump docker run --rm -v "$PWD\\backups:/backup" postgres:17 psql \ -h your-local-host -p 5432 -U postgres -d postgres -f /backup/vine-prod-backup.sqlNotes:
- The dump contains data in
COPY ... FROM stdin;sections; this is normal for plain-format dumps. - To create schema-only or data-only variants, append
-sor-ato thepg_dumpoptions. If you want dedicated npm scripts for those, we can add them.
Set up automatic backups every Tuesday at 11:00 AM using Windows Task Scheduler:
-
Configure credentials - Edit
backup-scheduled.ps1and update the Supabase connection details:$env:SUPABASE_DB_HOST = "your-pooler-host.supabase.com" $env:SUPABASE_DB_PORT = "6543" $env:SUPABASE_DB_USER = "postgres.your-project-ref" $env:SUPABASE_DB_PASSWORD = "YOUR_ACTUAL_PASSWORD"
-
Create the scheduled task - Run as Administrator:
.\setup-backup-task.ps1
-
Test the task (optional):
Start-ScheduledTask -TaskName "Vine Website Database Backup"
Backup logs are saved to backups/backup-log.txt.
src/ ├── app/ │ ├── [locale]/ # Internationalized routes │ │ ├── layout.tsx # Locale-specific layout │ │ └── page.tsx # Home page │ ├── globals.css # Global styles │ └── layout.tsx # Root layout ├── components/ │ ├── Navigation.tsx # Main navigation component │ └── Hero.tsx # Hero section component ├── i18n.ts # Internationalization configuration ├── middleware.ts # Locale detection middleware └── messages/ ├── pt.json # Portuguese translations └── en.json # English translations The website includes:
- Quem Somos (About Us): Church history and vision
- Agenda (Schedule): Service times and events
- Vine Kids: Children's ministry information
- Galeria (Gallery): Photo gallery
- Palavras (Words): Sermons and messages
- Células (Cell Groups): Small group information
- Location: Kitchener, Ontario, Canada
- Address: 417 King St W, Kitchener, ON N2G 1C2
- Service Time: Sunday at 10 AM
- Pastor: Pr Boris Carvalho
This project is ready to be deployed to Vercel:
- Push your code to a Git repository
- Connect your repository to Vercel
- Deploy with zero configuration
This website represents Vine Church KWC, part of the international Vine Church network that originated in Brazil.
© 2026 Vine Church KWC. All rights reserved.