minxa.lol URL Shortener

minxa.lol logo

minxa.lol is a lightweight and modern URL shortening service built with FastAPI and React. It transforms long URLs into compact, unique shortcodes and offers instant redirection.


Features

  • 🔗 Shorten long URLs to human-friendly shortcodes
  • 🚀 Redirects that are fast and reliable
  • 🖥 Frontend with React, TypeScript, Tailwind CSS
  • ⚙️ Environment-based configuration
  • 🔐 Validation and error handling out of the box
  • 🧩 Modular backend with Hashids encoding

🧰 Tech Stack

Backend

  • FastAPI Async-first Python web framework
  • SQLAlchemy (async) ORM for PostgreSQL
  • Hashids Generates non-sequential codes
  • Alembic DB migrations
  • Uvicorn ASGI server

Frontend

  • React + Vite Fast SPA setup
  • Redux Toolkit State management
  • Tailwind CSS Modern utility styling
  • TypeScript Typed components

🚀 How to Run (Docker)

1. Clone the Repository

git clone https://gitea.redturtle.foo/crayonix/minxa.lol.git
cd minxa.lol

2. Generate Environment Files

Use the helper script to generate .env files for both the frontend and backend:

python generate_configs.py

This will auto-populate required environment variables based on example templates.

3. Start the Project with Docker Compose

docker compose -f docker-compose.generated.yml up --build -d

Docker will spin up both frontend and backend containers with the correct configuration.

4. Access the App

Ensure Docker is installed and running on your machine before executing these steps.


📁 Project Structure

minxa.lol/
├── backend/
│   ├── db/            # DB connection
│   ├── models/        # SQLAlchemy models
│   ├── routes/        # FastAPI routers
│   ├── schemas/       # Pydantic schemas
│   ├── services/      # Business logic
│   └── utils/         # Encoding, helpers
│
├── frontend/
│   ├── src/
│   │   ├── api/       # API layer
│   │   ├── app/       # Redux store
│   │   ├── features/  # Feature slices
│   │   ├── pages/     # React pages
│   │   └── utils/     # Client utilities
│
└── generate_configs.py  # Env setup script

📄 License

Licensed under the FUTO Source Available License. See the LICENSE file for details.


🤝 Contributing

Pull requests are welcome. For major changes, open an issue first to discuss improvements or features.

Description
minxa.lol is a modern, open-source URL shortener that turns long links into sleek, shareable codes.
https://minxa.lol/ Readme 2.8 MiB
Languages
TypeScript 49.8%
Python 36.6%
HTML 7.4%
CSS 2.5%
Dockerfile 2.4%
Other 1.3%