Townie
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://Joeyhanni--dbf304de33eb11f0bfbb9e149126039e.web.val.run
A simple application that allows users to:
- Post job opportunities
- Browse job listings
- Participate in a public chat room to discuss opportunities
- Job posting form with title, company, description, and contact info
- Searchable job listings
- Real-time public chat room
- Simple username-based authentication
- Backend: Hono (TypeScript)
- Database: SQLite
- Frontend: React with Tailwind CSS
- Real-time: Server-Sent Events (SSE)
├── backend/
│ ├── database/
│ │ ├── migrations.ts # Schema definitions
│ │ └── queries.ts # DB query functions
│ ├── index.ts # Main entry point
├── frontend/
│ ├── components/
│ │ ├── App.tsx
│ │ ├── JobForm.tsx
│ │ ├── JobList.tsx
│ │ └── ChatRoom.tsx
│ ├── index.html # Main HTML template
│ └── index.tsx # Frontend JS entry point
└── shared/
└── types.ts # Shared types
- Enter a username to access the app
- Browse job listings or post your own job opportunity
- Join the chat room to discuss opportunities with others
The application uses:
- SQLite database to store job postings, chat messages, and active users
- Server-Sent Events (SSE) for real-time updates to the chat and user activity
- React components for a responsive UI
- Tailwind CSS for styling
The chat room allows users to discuss job opportunities in real-time, while the job board provides a platform for posting and discovering new positions.