Public
Like
untitled-266
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.
index.ts
https://mmmm--41724bf23fb411f09f2e76b3cceeab13.web.val.run
A full-stack messaging application built with Val Town, featuring real-time communication between users.
- User registration and authentication
- Real-time messaging between users
- User list and online status
- Message history
- Clean, responsive UI
├── backend/
│ ├── database/
│ │ ├── migrations.ts # Database schema setup
│ │ └── queries.ts # Database query functions
│ ├── routes/
│ │ ├── auth.ts # Authentication routes
│ │ ├── messages.ts # Message routes
│ │ ├── users.ts # User routes
│ │ └── static.ts # Static file serving
│ └── index.ts # Main Hono app entry point
├── frontend/
│ ├── components/
│ │ ├── App.tsx # Main app component
│ │ ├── Login.tsx # Login/register form
│ │ ├── MessageList.tsx # Message display
│ │ ├── MessageInput.tsx # Message input form
│ │ └── UserList.tsx # Online users list
│ ├── index.html # Main HTML template
│ ├── index.tsx # Frontend entry point
│ └── style.css # Custom styles
├── shared/
│ └── types.ts # Shared TypeScript types
└── README.md
- Backend: Hono (API framework)
- Database: SQLite
- Frontend: React with TypeScript
- Styling: TailwindCSS
- Real-time: Server-Sent Events (SSE)
POST /api/auth/register
- Register new userPOST /api/auth/login
- User loginGET /api/users
- Get all usersGET /api/messages
- Get message historyPOST /api/messages
- Send new messageGET /api/messages/stream
- SSE endpoint for real-time messages
- The app will automatically set up the database on first run
- Navigate to the app URL to start using the messaging system
- Register a new account or login with existing credentials
- Start messaging with other users in real-time!