ShortLink Documentation

repository·main·Indexed 20 days ago

https://github.com/shortlink-org/shortlink

An open-source educational project demonstrating microservices architecture for GDPR-compliant link management. The system includes an API Gateway supporting GraphQL, WebSocket, gRPC-gateway, and CloudEvents, as well as a Backend-for-Frontend (BFF) service for web clients, a Chrome extension for link extraction, and shared infrastructure components via shortlink-common.

Tokens
60.9K
Snippets
149
Records
305
Agent score
72%

What's inside ShortLink

  1. Overview of the ShortLink Chrome Extension

    main

    ShortLink is a browser extension designed to automate link extraction and management. It parses the active webpage to find all links, provides a user interface to manage these links, and allows for easy saving of discovered URLs.

    Tech Stack:

    • React: Used for building the user interface.
    • WXT: A lightweight framework used for building the web extension.
  2. Overview of shortlink-common

    main

    shortlink-common provides common services and shared manifests used across the ShortLink ecosystem. It includes environment-agnostic manifests for ArgoCD and defines shared Kubernetes resources like PriorityClass.

    Requirements

    • Kubernetes: >= 1.30.0 or >= v1.30.0-0
    • Dependency: Requires shortlink-template (version 0.9.6) from file://../../../shortlink-template.
  3. Overview of the Link Boundary services

    main

    The Link Boundary manages the lifecycle of URLs, including shortening, tracking, redirecting, and analytics. The system is composed of several specialized services:

    • bff-link: The Backend-for-Frontend (BFF) service for the link boundary (Go).
    • link: The core service for managing links (Go).
    • proxy: A TypeScript service responsible for redirecting users from shortlinks to their original destination URLs.
    • metadata: A service that parses site metadata via API (Go).
    • chrome-extension: A JavaScript-based Chrome extension.
    • supplies: A supporting service (Go).
    • mobile: A mobile user interface built with Expo (JS/React).
  4. Overview of the BFF service

    main
    The BFF (Backend For Frontend) is an API Gateway specifically designed for web clients. It acts as the entry point for incoming user requests, routing them to appropriate internal services. It is implemented as an HTTP REST API using the chi router for high performance and optimal integration.
  5. Explore Proof of Concept (PoC) implementations

    main

    The poc/ directory contains various implementation examples and integrations used to demonstrate specific technologies or workflows within the ShortLink ecosystem. These include:

    • Common Expression Language (CEL): Demonstrates using CEL for validation logic.
    • Danger: Example of integrating with Danger for GitLab CI/CD automation.
    • Gatling: Example of using Gatling for load testing.
    • ml-diff: Example of using ml-diff for comparing ML models within GitLab CI/CD.
    • scripts: Automation scripts (see ./scripts/README.md).
    • SystemD: SystemD service configuration (see ./systemd/README.md).
    • Vagrant: Vagrant environment setups (see ./vagrant/README.md).
    • X/Open XA: Implementation of X/Open XA distributed transaction standards (see ./xa/README.md).