A web interface for Rex, the idea tracker that helps you manage ideas and randomly pick one to do.
Rex UI is the frontend for Rex, a tool for keeping track of ideas for things to do and providing, on demand, a random one. It connects to the Rex API and allows you to manage your ideas through an intuitive web interface.
- Idea Management — Create, view, edit, tag, and delete ideas within collections.
- Random Selection — Get a randomly selected idea on demand, optionally filtered by tag or completion status.
- Collections — Organize ideas into collections and manage access with role-based permissions (Owner, Contributor, Viewer).
- Collaboration — Invite other users to your collections and assign roles.
- Markdown Support — Write idea descriptions in Markdown with syntax highlighting.
- Authentication — Sign in with Azure AD via MSAL.
- Vue 3 (Composition API) + TypeScript
- Vite for development and production builds
- Element Plus component library
- Vue Router for client-side routing
- Vuex 4 for state management
- MSAL Browser for Azure AD authentication
- markdown-it + highlight.js for Markdown rendering
npm install # Install dependencies
npm start # Start the Vite dev server with hot-reload
npm run build # Type-check and build for production (output in ./dist)Rex UI can be deployed as a static site or as a Docker container.
docker build -t rex-ui .
docker run -p 8080:80 rex-uiThe Docker image uses a multi-stage build: Node.js builds the app, then the static assets are served by Nginx.
The repository includes a GitHub Actions workflow that deploys the built site to Azure Blob Storage.
- rex-rs — The Rex API server (Rust), which this UI connects to.
This project is licensed under the MIT License.