Public
Like
GuitarBoard
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data β all from the browser, and deployed in milliseconds.
index.ts
https://kyei94--05f10fac3fad11f0ac6b76b3cceeab13.web.val.run
A comprehensive platform for guitarists to find work opportunities and connect with fellow musicians through real-time chat.
- Post and browse guitar gigs, session work, band positions, and teaching opportunities
- Filter jobs by type, status, and location
- Apply to jobs directly through the platform
- Job categories: Gigs, Session Work, Band Members, Teaching, and Other
- Real-time job status updates (Open, Filled, Closed)
- Real-time messaging using Server-Sent Events
- Guitar-themed interface with emoji reactions
- User nicknames and timestamps
- Message persistence with SQLite
- Responsive design with TailwindCSS
- Tabbed interface for easy navigation between jobs and chat
- Guitar-themed UI with musical emojis and styling
βββ backend/
β βββ database/
β β βββ migrations.ts # Database schema for messages, jobs, and applications
β β βββ queries.ts # Database query functions
β βββ index.ts # Main Hono server with job and chat APIs
βββ frontend/
β βββ components/
β β βββ App.tsx # Main app with tabbed interface
β β βββ ChatMessage.tsx # Chat message component
β β βββ MessageInput.tsx # Chat input component
β β βββ JobBoard.tsx # Job listings and management
β β βββ JobPosting.tsx # Individual job display and application
β β βββ JobPostingForm.tsx # Job creation form
β βββ index.html # Main HTML template
β βββ index.tsx # React entry point
βββ shared/
βββ types.ts # Shared TypeScript types for chat and jobs
- Backend: Hono (TypeScript API framework)
- Frontend: React 18.2.0 with TypeScript
- Database: SQLite with three tables (messages, jobs, applications)
- Styling: TailwindCSS
- Real-time: Server-Sent Events (SSE) for chat
GET /api/messages
- Get recent chat messagesPOST /api/messages
- Send a new chat messageGET /api/events
- SSE endpoint for real-time chat updates
GET /api/jobs
- Get job postings (with optional status filter)GET /api/jobs/:id
- Get specific job detailsPOST /api/jobs
- Create a new job postingPATCH /api/jobs/:id/status
- Update job statusGET /api/jobs/:id/applications
- Get applications for a jobPOST /api/jobs/:id/apply
- Apply to a specific job
- π€ Gig/Performance - Live performances, concerts, events
- π§ Session Work - Studio recording sessions
- πΈ Band Member - Joining or forming bands
- π Teaching - Guitar lessons and instruction
- π΅ Other - Miscellaneous guitar-related work
- Getting Started: Enter your guitarist name to join the platform
- Browse Jobs: Use the Job Board tab to find work opportunities
- Post Jobs: Click "Post a Job" to create new opportunities
- Apply to Jobs: Submit applications directly through job postings
- Chat: Use the Chat Room tab to connect with other guitarists
- Filter & Search: Use filters to find specific types of work or locations
- Chat messages with username, content, and timestamps
- Job postings with title, description, location, pay rate, type, contact info, and status
- Job applications linking applicants to specific jobs with messages and contact details
The platform automatically handles job status management and provides a seamless experience for both job seekers and job posters in the guitar community.