Core Philosophy & Non-Negotiables
Every tool built on Infyn must strictly abide by these four core principles:
100% Client-Side Execution
All processing runs locally in the browser via WebAssembly (WASM), Web Workers, Canvas, or client libraries. User files are never uploaded to remote servers.
100% Free & Ad-Free
No paywalls, no subscriptions, no credit cards, and zero watermarks on exported files. No intrusive tracking or banner ads.
Batch-First Capability
Tools should accept multiple files (50+ at once) whenever applicable and offer a 1-Click "Download All (ZIP)" export using jszip.
60fps Main-Thread Protection
Heavy computational tasks (AI inference, large image/PDF decodes) must run in a Web Worker or asynchronous chunked streams to keep the UI smooth.
Local Development Setup
Infyn is built with Next.js 16 (App Router), React 19, TypeScript, and Tailwind CSS.
1. Fork & Clone the Repository:
git clone https://github.com/imvicky69/infyn.git cd infyn
2. Install Dependencies:
npm install
3. Run the Development Server:
npm run dev
Open http://localhost:3000 in your browser.
Step-by-Step Blueprint for a New Tool
Follow this proven standard when building a new utility (e.g. /image/my-tool, /pdf/my-tool):
src/app/<category>/<tool-name>/ ├── layout.tsx <-- SEO Metadata + JSON-LD Schema ├── page.tsx <-- "use client" UI & Stage Management └── worker.ts <-- (Optional) Web Worker for heavy tasks
Every tool requires rich metadata and a WebApplication JSON-LD schema for search indexing:
import type { Metadata } from "next";
export const metadata: Metadata = {
title: "Free [Tool Name] — [Primary Benefit] (No Uploads)",
description: "100% Free & Ad-Free [Tool Name] running locally in your browser. Zero server uploads.",
keywords: ["free [tool]", "[tool] online no upload", "client side [tool]"],
alternates: { canonical: "https://infyn.software/<category>/<tool-name>" },
};
const jsonLd = {
"@context": "https://schema.org",
"@type": "WebApplication",
name: "Infyn by Indivio — [Tool Name]",
url: "https://infyn.software/<category>/<tool-name>",
applicationCategory: "MultimediaApplication",
operatingSystem: "All (Web Browser)",
offers: { "@type": "Offer", price: "0", priceCurrency: "USD" },
};
export default function Layout({ children }: { children: React.ReactNode }) {
return (
<>
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }} />
{children}
</>
);
}Design System & Dark Mode Rules
Infyn uses a curated minimal Cream & Ink aesthetic:
• Tactile Feedback: Always include active:scale-[0.97] transition-all on interactive buttons.
• Selected Tabs: Selected options must invert in dark mode (dark:bg-white dark:text-[#111111] dark:border-white) for high tactile contrast.
• Border Radii: Use rounded-2xl (16px) for cards and rounded-3xl (24px) for major hero containers.
High-Demand Tools Developers Can Build
Looking for an idea? Here are tools requested by our community that can be implemented 100% in-browser:
SVG to PNG / JPG Converter
Render vector SVGs to high-resolution raster images at 1x, 2x, 4x, or custom pixel dimensions using native Canvas API.
Rotate PDF Pages
Rotate individual or all pages in a PDF document by 90°, 180°, or 270° using pdf-lib without re-compressing.
Add Page Numbers to PDF
Stamp customized page numbers (e.g. "Page 1 of 12") with selectable position (top/bottom, left/center/right) and font size.
Base64 Image / String Encoder & Decoder
Instantly convert files or images to Base64 data URIs and vice-versa with 1-click clipboard copy.
Pull Request Quality Checklist
Before opening your PR on GitHub, ensure you have checked every item:
URL.createObjectURL references are revoked on reset or component unmount.npm run build passes with zero TypeScript errors and all static pages render.