git404hub

what is xians fr?

habibthadev/xians — explained in plain English

Analysis updated 2026-05-18

3SvelteAudience · developer

tl;dr

A no-signup file sharing tool with expiring, password-protected links and direct uploads to cloud storage.

vibe map

mindmap
  root((xians))
    What it does
      Instant file sharing
      No signup required
      Expiring links
      Password protection
    Tech stack
      Svelte SvelteKit
      Go chi GORM
      PostgreSQL
      Cloudflare R2
    Use cases
      Share file batches
      Protected galleries
      Bulk zip download
    Audience
      Developers
      Self hosters

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

what do people make with this?

VIBE 1

Share a batch of files with someone through a single link that expires automatically.

VIBE 2

Protect a shared file gallery with a password before recipients can view or download it.

VIBE 3

Let visitors preview images and videos without using up a limited download count.

VIBE 4

Self-host a file sharing service on Fly.io and Vercel using your own cloud storage.

what's the stack?

SvelteSvelteKitTailwind CSSGoPostgreSQLCloudflare R2

how it stacks up fr

habibthadev/xiansdiary-axel-rakotoarivao/vivaceohmybugs/svelte-google-reviews
Stars311
LanguageSvelteSvelteSvelte
Setup difficultyeasyeasy
Complexity2/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

in plain english

Xians is a file sharing tool that lets anyone drag and drop files and get a shareable link right away, with no account or sign up needed. Files can be protected with a password, and links can be set to expire after a chosen time, such as 24 hours or 30 days, or after a set number of downloads. Uploads go straight to Cloudflare's R2 storage using presigned links, so the app's own server never has to hold the file data while it is being sent. Recipients see files in a responsive gallery grid with a preview overlay and a fullscreen viewer. Viewing an image or video does not count against the download limit, while an actual download does. Visitors can also grab every file in a gallery at once as a single zip archive. Shared links get a generated preview image for social media, matching the app's own fonts and colors, and the interface uses small animated transitions for things like hovering, clicking, and opening the lightbox. The project is built as a workspace with two main parts. The frontend uses Svelte 5 and SvelteKit 2 with Tailwind CSS for styling, and is meant to be deployed on Vercel. The backend is written in Go, using the chi router and GORM for talking to a PostgreSQL database, and is meant to run on Fly.io. Shared TypeScript types between the two halves are validated with Zod. Running it yourself requires Node.js, pnpm, Go, a PostgreSQL database, and a Cloudflare R2 bucket, since the storage and database are not built in and need to be provided separately. The README includes setup steps, a list of environment variables for both the API and the web app, and instructions for deploying the API to Fly.io and the frontend to Vercel. The README does not state a license for the project.

prompts (copy fr)

prompt 1
Walk me through setting up the PostgreSQL database and R2 bucket needed to run xians locally.
prompt 2
Explain how the upload flow works from dropping a file to getting a shareable link.
prompt 3
Help me deploy the Go API in apps/api to Fly.io using the steps in this README.
prompt 4
Show me how password protection and download limits are enforced for a gallery.

Frequently asked questions

what is xians fr?

A no-signup file sharing tool with expiring, password-protected links and direct uploads to cloud storage.

What language is xians written in?

Mainly Svelte. The stack also includes Svelte, SvelteKit, Tailwind CSS.

Who is xians for?

Mainly developer.

peek the repo → explain another one

This repo across BitVibe Labs

double-check against the repo, no cap.