A real-time messaging application for work groups where team members can register with unique usernames and send messages to keep each other updated.
├── backend/
│ ├── database/
│ │ ├── blob-storage.ts # Blob storage functions
│ │ ├── migrations.ts # SQLite schema (backup)
│ │ └── queries.ts # SQLite queries (backup)
│ ├── routes/
│ │ ├── auth.ts # User registration/login
│ │ └── messages.ts # Message CRUD operations
│ └── index.ts # Main Hono server
├── frontend/
│ ├── components/
│ │ ├── App.tsx # Main app component
│ │ ├── Login.tsx # Login/registration form
│ │ ├── MessageList.tsx # Message display
│ │ └── MessageForm.tsx # Message input form
│ ├── index.html # Main HTML template
│ └── index.tsx # Frontend entry point
└── shared/
└── types.ts # Shared TypeScript types
POST /api/auth/register - Register new userPOST /api/auth/login - Login existing userGET /api/messages - Get all messagesPOST /api/messages - Send new messageThe app uses Val Town's blob storage for persistence:
workgroup_usersworkgroup_user_counterworkgroup_messagesworkgroup_message_counter{
id: number;
username: string;
created_at: string;
}
{
id: number;
user_id: number;
username: string;
content: string;
created_at: string;
}