Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Andr21Da16/Quikko/llms.txt

Use this file to discover all available pages before exploring further.

This guide walks you through cloning the repository, spinning up the required infrastructure with Docker Compose, starting both the Go API server and the Next.js dashboard, and creating your very first short URL — all from scratch, in under five minutes.

Prerequisites

Make sure the following tools are installed and available in your PATH before proceeding:

Steps

1

Clone the repository

Clone the Quikko monorepo from GitHub and change into the project directory:
git clone https://github.com/Andr21Da16/Quikko.git && cd Quikko
2

Start the infrastructure

Copy the example environment file and bring up all infrastructure services with Docker Compose:
cd server
cp .env.example .env
docker compose up -d
This single command starts three services in the background:
ServicePortPurpose
MongoDB27017Primary data store for users and URLs
Redis6379Redirect cache and rate limiting
InfluxDB8086Time-series click analytics
The .env file created from .env.example is pre-configured for local development. The only value you should change before going to production is JWT_SECRET — replace it with a long, randomly generated string.
3

Run the backend

With the infrastructure running, start the Go API server:
go run cmd/api/main.go
The API listens on http://localhost:8080 by default. Confirm it is healthy:
curl http://localhost:8080/health
Expected response:
{"status": "ok"}
The interactive API reference is available at http://localhost:8080/docs as soon as the server is up.
4

Run the frontend

Open a second terminal, navigate to the client directory, install dependencies, and start the development server:
cd ../client
pnpm install
pnpm dev
The Next.js dashboard is now available at http://localhost:3000.
5

Create your first short URL

Use the following curl commands to register an account and shorten your first link:
# Register a new account
curl -X POST http://localhost:8080/api/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "password": "yourpassword"}'

# Create a short URL (replace <accessToken> with the token from the register response)
curl -X POST http://localhost:8080/api/v1/urls \
  -H "Authorization: Bearer <accessToken>" \
  -H "Content-Type: application/json" \
  -d '{"originalUrl": "https://example.com"}'
The response includes a shortCode and a fully-formed shortUrl you can share immediately.
6

Visit the short URL

Follow the redirect to verify the full round-trip works end-to-end:
curl -L http://localhost:8080/<shortCode>
The server returns an HTTP 302 redirect to the original URL, records the click asynchronously to InfluxDB, and broadcasts the event over WebSocket to any connected dashboard — all before your browser finishes loading the destination page.
Prefer not to run anything locally? The hosted demo at quikko.vercel.app is always available and reflects the latest main branch.

Next Steps

Now that Quikko is running, explore the rest of the documentation:
  • Architecture — Understand how Redis, MongoDB, InfluxDB, and WebSockets fit together.
  • API Reference — Full endpoint documentation auto-generated from the OpenAPI spec.

Build docs developers (and LLMs) love