A community bulletin board platform that brings physical bulletin boards online. Share what's posted in your local community boards and discover local happenings beyond social media.
Switchboard gives community bulletin boards a second life online. When someone posts a flyer on a physical board, visitors can take a photo and upload it to Switchboard, making local announcements discoverable to a wider community.
Real. Local. Now.
- Town-based organization: Each town has its own board collection
- QR code posting: Physical QR codes at each location enable authentic, location-verified uploads
- Photo sharing: Full bulletin board photos show everything that's currently posted
- Mobile-first design: Optimized for quick photo capture and sharing
- Admin panel: Easy location management and QR code generation
- Framework: Next.js 16 with App Router
- Database: Supabase (PostgreSQL)
- Storage: Supabase Storage for photos
- Styling: Tailwind CSS with cork board aesthetic
- Deployment: Netlify
- QR Codes: Generated with qrcode library
switchboard.town/ → Landing page / town picker
switchboard.town/{town} → Town homepage (board grid)
switchboard.town/{town}/{slug} → Individual location view
switchboard.town/post/{town}/{slug} → Upload page (QR destination)
switchboard.town/about → About page
switchboard.town/how-to-post → How to post guide
switchboard.town/admin → Admin panel
-
Clone and install:
npm install
-
Environment setup: Copy
.env.local.exampleto.env.localand add your Supabase credentials:NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key SUPABASE_SERVICE_ROLE_KEY=your_service_role_key -
Database setup: Run the SQL files in this order:
# 1. Basic schema psql -f schema.sql # 2. Storage policies psql -f storage-policies.sql # 3. Admin functions psql -f admin-functions.sql # 4. Migration for town support psql -f migration-add-town.sql psql -f update-admin-functions.sql # 5. Sample data (optional) psql -f test-data.sql
-
Run development server:
npm run dev
-
Access the app:
- Main site: http://localhost:3000
- Admin panel: http://localhost:3000/admin (password required)
Key tables:
locations: Bulletin board locations with town, slug, name, addressphotos: Uploaded photos linked to locationsanalytics: Page view and upload tracking
- Add/edit/disable locations
- Generate QR codes for physical posting
- Town management
- View analytics
- Moderate content
Deploy to Netlify:
-
Build settings:
- Build command:
npm run build - Publish directory:
.next
- Build command:
-
Environment variables: Add the same variables from
.env.local -
Domain: Configure
switchboard.towndomain in Netlify -
Supabase CORS: Add
switchboard.townto allowed origins
Switchboard celebrates the democratic, analog nature of community bulletin boards while extending their reach through digital tools. The cork board aesthetic preserves the tactile, handmade feeling of physical boards.
Built by Ofigona LLC.
For business inquiries about featuring your community board: Hello@rise-above.net