Freelance101
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in miliseconds.
A comprehensive platform for freelancers and virtual assistants to connect, collaborate, and grow their businesses.
- User Profiles: Showcase skills, experience, and portfolio
- Job Board: Post and browse job opportunities
- Real-time Chat: Public chat room for networking and collaboration
- Skill Matching: Connect clients with the right professionals
- Community Features: Tips sharing and project discussions
├── backend/
│ ├── database/
│ │ ├── migrations.ts # Database schema setup
│ │ └── queries.ts # Database query functions
│ ├── routes/
│ │ ├── auth.ts # Authentication routes
│ │ ├── jobs.ts # Job posting routes
│ │ ├── users.ts # User profile routes
│ │ ├── chat.ts # Chat functionality
│ │ └── static.ts # Static file serving
│ └── index.ts # Main Hono app entry point
├── frontend/
│ ├── components/
│ │ ├── App.tsx # Main React app
│ │ ├── Header.tsx # Navigation header
│ │ ├── JobBoard.tsx # Job listings
│ │ ├── UserProfile.tsx # User profiles
│ │ ├── Chat.tsx # Real-time chat
│ │ └── Auth.tsx # Login/register forms
│ ├── index.html # Main HTML template
│ ├── index.tsx # React entry point
│ └── style.css # Custom styles
├── shared/
│ └── types.ts # Shared TypeScript types
└── README.md
- Backend: Hono (TypeScript API framework)
- Database: SQLite with Val Town's sqlite service
- Frontend: React 18.2.0 with TypeScript
- Styling: TailwindCSS
- Real-time: Server-Sent Events for chat
- Storage: Val Town blob storage for file uploads
- The app runs on Val Town's platform
- Database tables are automatically created on first run
- Visit the main URL to access the platform
- Register as a freelancer or client to get started
GET /
- Main applicationPOST /api/auth/register
- User registrationPOST /api/auth/login
- User loginGET /api/jobs
- List jobsPOST /api/jobs
- Create job postingGET /api/users/:id
- Get user profilePUT /api/users/:id
- Update user profileGET /api/chat/messages
- Get chat messagesPOST /api/chat/messages
- Send chat messageGET /api/chat/stream
- SSE chat stream
No API keys required - uses Val Town's built-in services.