Everything You Need, Nothing You Don't

FLIN replaces your entire stack with a single binary. No dependencies, no configuration files, no package managers. Just write .flin files and ship.

Built Into Every Binary

Other frameworks make you assemble a stack from dozens of tools. FLIN ships everything in one download.

Zero Configuration

One binary, file-based routing, no webpack, no babel, no tsconfig, no package.json. Create an app/index.flin file and run flin dev. Your app is live.

Memory-Native Database

FlinDB is embedded in the binary. Write-ahead log with CRC-32 checksums, auto-checkpointing, file locking, per-entity data files. Define an entity, save it — done. No PostgreSQL, no Redis, no connection strings.

AI-Native

Mark any field as semantic text and it becomes AI-searchable. Built-in vector embeddings, RAG pipelines, and ask_ai() with 8 providers: OpenAI, Claude, Gemini, Mistral, DeepSeek, Groq, Ollama, and OpenRouter.

180 Components

FlinUI is embedded in the binary across 18 categories: data input, data display, feedback, navigation, layout, charts, e-commerce, templates, and more. Dark mode built in. Zero npm, zero imports.

1,675 Icons

The full Lucide icon library plus 8 custom file-type icons, all embedded as optimized SVG paths. Use <Icon name="check" size="24" /> anywhere — no CDN, no font files, no icon packages.

420+ Functions

Strings, math, lists, dates, maps, crypto, validation, HTTP client, email, PDF generation — all as native functions. No libraries to install, no APIs to configure. send_email() just works.

Built-in Auth

Session management, OAuth with 8 providers (Google, GitHub, Discord, Apple, LinkedIn, Telegram, Clerk, Firebase), 2FA/TOTP, JWT, bcrypt, and WhatsApp OTP — all native functions, no third-party services required.

Admin Console

Every FLIN app ships with /_flin — a full admin dashboard with entity browser, query editor, auto-generated REST API docs, real-time metrics, request logs, and AI gateway management.

Internationalization

Built-in t() function with language files in i18n/. Reactive language switching via session, RTL support, and proper Unicode handling. Ship your app in every language from day one.

API Routes

Define route GET /users and route POST /users with built-in guards, 6 validation decorators (@required, @email, @minLength...), and response helpers (response.ok(), response.created()).

The Traditional Stack vs. FLIN

A typical full-stack job listing demands 47 technologies. FLIN replaces all of them with a single binary and a single language.

Traditional Stack
// Frontend
React + Next.js + TypeScript
Tailwind + shadcn/ui + Lucide
React Hook Form + Zod
i18next + react-intl

// Backend
Express / Fastify / Hono
Prisma + PostgreSQL + Redis
Passport.js + bcrypt + JWT

// DevOps
Docker + nginx + PM2
webpack / Vite + babel
ESLint + Prettier

// AI
LangChain + Pinecone + OpenAI SDK

// Result
1,847 dependencies
15+ config files
~3 hours to set up
FLIN
// Everything
entity User {
    name: text @required
    email: text @email
    bio: semantic text
}

fn signup() {
    user = User { name: name, email: email }
    save user
}

<h1>{t("welcome")}</h1>
<Card>
    <Input bind={name} />
    <Button click={signup()}>
        <Icon name="user-plus" />
        Sign Up
    </Button>
</Card>

// Result
0 dependencies
0 config files
5 minutes to set up

FlinDB Under the Hood

Not a toy database. Production-grade durability with WAL, checksums, and atomic checkpointing — embedded in every app.

Write-Ahead Log

Every mutation is written to a WAL with CRC-32 checksums before committing. File locking prevents corruption. Auto-checkpointing keeps the WAL compact.

Semantic Search

Mark a field as semantic text. Embeddings are generated automatically. Search by meaning with search "query" in Entity — no Pinecone, no Chroma.

49 Validators

@required, @email, @minLength, @maxLength, @min, @max, @one_of, @unique, @index — declare constraints, FLIN enforces them at runtime.

10 Field Types

text, int, float, decimal, bool, time, file, money, semantic text, and custom enums. Auto-generated id, created_at, updated_at.

Query Chaining

User.where(active == true).order_by("name").limit(10) — chainable, readable, works directly in templates with {User.where(...).count}.

Backup &amp; Recovery

Auto-backups on checkpoint, max 5 retained, WAL recovery on startup. Per-entity data files in .flindb/data/. Export via admin console.

Authentication That Just Works

No Passport.js, no Auth0, no NextAuth. FLIN has session management, OAuth, 2FA, and more as native functions.

app/_middleware.flin
middleware {
    matcher: ["/dashboard/**", "/settings"]
    exclude: ["/", "/login", "/api/health"]

    if session.user == none {
        redirect("/login")
    }
    next()
}

// OAuth — one function per provider
url = auth_google_login()
user = auth_google_callback(code)

// 2FA
secret = totp_secret()
valid = totp_verify(secret, code)

// Passwords
hash = bcrypt_hash(password)
ok = bcrypt_verify(password, hash)

// JWT
token = jwt_encode(payload, secret)
data = jwt_decode(token, secret)

8 OAuth Providers

Google, GitHub, Discord, Apple, LinkedIn, Telegram, Clerk, and Firebase. Each is a pair of native functions — login URL + callback handler.

WhatsApp OTP

whatsapp_send_otp(phone) and whatsapp_verify_otp(phone, code). Perfect for markets where WhatsApp is the primary communication channel.

Middleware Guards

File-based middleware with matchers and excludes. Protect routes with session.user checks, CSRF guards, and role-based access control.

420+
Built-in Functions
180
UI Components
1,675
Embedded Icons
0
Dependencies

Try It in 30 Seconds

Install FLIN, create a file, see it running. No sign-up, no credit card, no configuration.

curl -fsSL https://flin.sh | bash