Andor is a web app for playing role-playing games online. The target audience are players of TTRPG games, using the czech language. The initial version will be an experimental MVP, with limited functionality.
- Authentication (Email and Google)
- List of games
- Game
- AI storyteller's assistant
- Player characters, assigned to users
- Game thread
- Filtering
- Whispered posts
- Dice
- Maps
- Codex of game information
- Discussion: Meta gaming chat
- Works (User submitted short stories, images and music)
- Boards (General discussion threads on various topics)
- General chat
- User DMs
- Character DMs
Components: Table with names - links to game pages
Components: Player and character management, text input, posts, paging
Components: Google login button
Folder structure is based on Astro's recommended project structure.
- Git for version control
- Astro
- Supabase - database, auth
- OpenAI API, model GPT-4o
- Gemini API, model Gemini 1.5
- Svelte for UI components, within Astro
- Svelte Testing Library for unit tests
All commands are run from the root of the project, from a terminal:
Command | Action |
---|---|
npm install |
Installs dependencies |
npm run dev |
Starts local dev server at localhost:4321 |
npm run build |
Build your production site to ./dist/ |
npm run preview |
Preview your build locally, before deploying |
npm run astro ... |
Run CLI commands like astro add , astro check |
npm run astro -- --help |
Get help using the Astro CLI |
The framework does server-side rendering. In case a client-side hydration is needed, use a directive such as this:
<UserPanel client:load />
/
├── public/
├── src/
│ └── pages/
│ └── index.astro
└── package.json
Astro looks for .astro
files in the src/pages/
directory. Each page is exposed as a route based on its file name.
There's nothing special about src/components/
, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
Any static assets, like images, can be placed in the public/
directory.