Skip to content

allthingslinux/atl.tools

Repository files navigation

atl.tools

A curated directory of free, self-hosted tools by All Things Linux. Browse, search, and filter services at atl.tools.

Hosted services

All services are accessible to members of the All Things Linux community. Each one runs self-hosted on our infrastructure — no third-party data sharing.

Service URL Category Description
PrivateBin paste.atl.tools Privacy Zero-knowledge encrypted paste. The server never sees your data — everything is encrypted and decrypted in the browser.
SearXNG search.atl.tools Search Privacy-respecting metasearch engine. Aggregates results from 70+ sources with no tracking, no ads, no profiles.
CyberChef cyberchef.atl.tools Utilities The Cyber Swiss Army Knife. Encode, decode, encrypt, compress — 300+ operations for data wrangling and analysis.
ConvertX convert.atl.tools Conversion Self-hosted file converter. Audio, video, images, documents — convert between formats without uploading to third-party services.
IT-Tools it.atl.tools Development A curated toolbox for developers and sysadmins. Token generators, formatters, converters, network tools and more.
JSON Crack json.atl.tools Visualization Visualize JSON, YAML, XML and CSV as interactive graphs. Format, validate, convert and explore structured data in the browser.
Stirling PDF pdf.atl.tools Documents Self-hosted PDF Swiss Army Knife. Merge, split, compress, convert, OCR, sign and watermark — all in the browser.
hckrnws hn.atl.tools Frontends A cleaner reading experience for HackerNews. Dark mode, nested comment lines, quote highlighting and starred stories.

Stack

  • Framework — Next.js 16 (App Router)
  • Styling — Tailwind CSS v4
  • Deployment — Cloudflare Workers via Alchemy + OpenNext
  • Monorepo — pnpm workspaces + Turborepo
  • Linting — Biome

Structure

atl.tools/
├── apps/
│   └── web/                  # Next.js app
│       ├── src/
│       │   ├── app/          # App router pages + global CSS
│       │   └── components/   # AppShell, ServiceCard
│       └── alchemy.run.ts    # Cloudflare deployment config
└── packages/
    └── manifest/             # Service definitions (single source of truth)
        └── src/index.ts

Development

pnpm install
pnpm dev

The app runs at http://localhost:3000.

Adding a Service

All services are defined in packages/manifest/src/index.ts. Add an entry to the services array:

{
  id: "my-service",
  name: "My Service",
  description: "One-line description of what it does.",
  url: "https://myservice.atl.tools",
  icon: "Terminal",         // Lucide icon name (PascalCase)
  color: "yellow",          // see CatppuccinColor type
  category: "utilities",    // see ServiceCategory type
  status: "active",         // "active" | "planned" | "maintenance"
  tags: ["tag1", "tag2"],
},

Available categories: privacy, utilities, search, development, conversion, visualization, documents, frontends

Deployment

Authentication (first time):

pnpm --filter @atl.tools/web exec alchemy login

Deploy to staging:

pnpm deploy

Deploy to production (atl.tools):

pnpm deploy:prod

Tear down:

pnpm destroy:prod

Links