Maia is a simple, warm‑themed chat application inspired by Discord and Snapchat, built for small communities, friends, and gaming groups.
It focuses on clarity, simplicity, and a clean UI — similar to Claude or Microsoft Copilot, but adapted for real‑time chatting.
Maia is named after Maia, the mother of Hermes — the Greek god of messages and communication.
- User registration & login
- Display name + unique friend code (
MAIA-1234) - Lightweight presence system (online / recently active)
- Add friends using their friend code
- Accept or decline friend requests
- One‑to‑one private chats
- Create groups
- Invite friends
- Group chat with multiple members
- Direct messages
- Group messages
- Auto‑refreshing chat (polling every 2 seconds)
- Clean, warm, modern UI
- One‑to‑one audio calls
- Browser‑based (no plugins)
- Simple signaling handled through PHP
- Light, warm theme
- Soft colors and rounded corners
- Sidebar navigation
- Modal dialogs for adding friends & creating groups
| Layer | Technology |
|---|---|
| Frontend | HTML, CSS, Vanilla JavaScript |
| Backend | PHP (no frameworks) |
| Database | SQLite |
| Voice Calls | WebRTC (peer‑to‑peer) |
| Communication | AJAX polling |
No external dependencies.
No Node.js.
No Composer.
Just simple, portable PHP.
maia/
│
├── index.php
├── login.php
├── register.php
├── logout.php
├── dashboard.php
├── api.php
├── db_init.php
├── config.php
│
├── assets/
│ ├── css/
│ │ └── style.css
│ ├── js/
│ │ ├── app.js
│ │ └── webrtc.js
│ └── img/
│ └── logo.svg
│
└── db.sqlite (created automatically)
Use FileZilla (or any FTP client) to upload the project folder to your hosting space.
Open this in your browser:
https://yourdomain.com/db_init.php
This creates db.sqlite and all required tables.
Visit:
https://yourdomain.com/
You’ll see the login page.
Create an account and start chatting.
Users choose:
- Username
- Display name
- Password
They automatically receive a friend code like MAIA-4821.
Users share their friend code.
Friend requests appear in the sidebar.
Click a friend or group to open the chat.
Messages appear instantly thanks to lightweight polling.
Users can create a group, name it, and invite friends.
In a direct chat, click 📞 Call to start a WebRTC audio call.
- Passwords are hashed using
password_hash() - SQLite is file‑based; ensure your hosting prevents direct downloads
- WebRTC requires HTTPS
- This is a lightweight demo app — not intended for enterprise use
You can easily modify:
- Colors in
style.css - UI layout in
dashboard.php - Polling speed in
app.js - WebRTC behavior in
webrtc.js
Maia is intentionally simple so you can learn from it and extend it.
Feel free to open issues or submit pull requests.
Maia is meant to be a friendly, beginner‑friendly project.
MIT License — free to use, modify, and share.