Files
create-better-t-stack/apps/web/src/lib/constant.ts
2025-03-02 12:34:58 +05:30

269 lines
4.8 KiB
TypeScript

import {
AppWindow,
Boxes,
Component,
Database,
FastForward,
Lock,
Palette,
ServerCog,
Workflow,
} from "lucide-react";
import type { TechNode } from "./types";
export const technologies = [
{
name: "Bun",
category: "core",
angle: -25,
icon: FastForward,
color: "bg-yellow-100",
textColor: "text-black",
description: "Fast all-in-one JavaScript runtime",
top: "top-[2px]",
left: "left-[11rem]",
},
{
name: "tRPC",
category: "core",
angle: 25,
icon: Workflow,
color: "bg-blue-600",
textColor: "text-white",
description: "End-to-end type-safe APIs",
left: "left-[5rem]",
},
{
name: "TanStack Router",
category: "frontend",
angle: 30,
icon: AppWindow,
color: "bg-red-500",
textColor: "text-white",
description: "Type-safe routing",
top: "top-[2px]",
left: "left-[8.5rem]",
},
{
name: "Tailwind CSS",
category: "frontend",
angle: 90,
icon: Palette,
color: "bg-sky-400",
textColor: "text-white",
description: "Utility-first CSS framework",
},
{
name: "shadcn/ui",
category: "frontend",
angle: 150,
icon: Component,
color: "bg-gray-900",
textColor: "text-white",
description: "Re-usable components",
left: "-left-[2rem]",
},
{
name: "Hono",
category: "backend",
angle: -150,
icon: ServerCog,
color: "bg-orange-500",
textColor: "text-white",
description: "Ultrafast web framework",
left: "left-[0rem]",
},
{
name: "Better-Auth",
category: "backend",
angle: -110,
icon: Lock,
color: "bg-indigo-600",
textColor: "text-white",
description: "Modern authentication solution",
},
{
name: "Drizzle ORM",
category: "backend",
angle: -70,
icon: Database,
color: "bg-green-400",
textColor: "text-black",
description: "TypeScript ORM",
left: "left-[4rem]",
},
{
name: "Sqlite",
category: "backend",
angle: -30,
icon: Boxes,
color: "bg-gray-600",
textColor: "text-white",
description: "SQLite-compatible database engine",
left: "left-[6rem]",
},
];
export const initialNodes: TechNode[] = [
{
id: "bun",
type: "techNode",
position: { x: 536, y: 204 },
data: {
label: "Bun",
category: "core",
description: "Fast all-in-one JavaScript runtime",
isDefault: true,
isActive: true,
isStatic: true,
},
},
{
id: "tanstack",
type: "techNode",
position: { x: 362, y: 296 },
data: {
label: "TanStack Router",
category: "frontend",
description: "Type-safe routing",
isDefault: true,
isActive: true,
isStatic: true,
group: "router",
},
},
{
id: "tailwind",
type: "techNode",
position: { x: 494, y: 379 },
data: {
label: "Tailwind CSS",
category: "frontend",
description: "Utility-first CSS framework",
isDefault: true,
isActive: true,
isStatic: true,
},
},
{
id: "shadcn",
type: "techNode",
position: { x: 358, y: 486 },
data: {
label: "shadcn/ui",
category: "frontend",
description: "Re-usable components",
isDefault: true,
isActive: true,
isStatic: true,
},
},
{
id: "hono",
type: "techNode",
position: { x: 700, y: 325 },
data: {
label: "Hono",
category: "backend",
description: "Ultrafast web framework",
isDefault: true,
isActive: true,
isStatic: true,
group: "backend",
},
},
{
id: "sqlite",
type: "techNode",
position: { x: 544, y: 532 },
data: {
label: "SQLite",
category: "database",
description: "SQLite-compatible database",
isDefault: true,
isActive: true,
group: "database",
},
},
{
id: "postgres",
type: "techNode",
position: { x: 318, y: 579 },
data: {
label: "PostgreSQL",
category: "database",
description: "Advanced SQL database",
isDefault: false,
isActive: false,
group: "database",
},
},
{
id: "no-database",
type: "techNode",
position: { x: 420, y: 710 },
data: {
label: "No Database",
category: "database",
description: "Skip database setup",
isDefault: false,
isActive: false,
group: "database",
},
},
{
id: "drizzle",
type: "techNode",
position: { x: 559, y: 651 },
data: {
label: "Drizzle",
category: "orm",
description: "TypeScript ORM",
isDefault: true,
isActive: true,
group: "orm",
},
},
{
id: "prisma",
type: "techNode",
position: { x: 707, y: 675 },
data: {
label: "Prisma",
category: "orm",
description: "Next-generation ORM",
isDefault: false,
isActive: false,
group: "orm",
},
},
{
id: "better-auth",
type: "techNode",
position: { x: 770, y: 502 },
data: {
label: "Better-Auth",
category: "auth",
description: "Modern authentication",
isDefault: true,
isActive: true,
group: "auth",
},
},
{
id: "no-auth",
type: "techNode",
position: { x: 950, y: 621 },
data: {
label: "No Auth",
category: "auth",
description: "No authentication needed",
isDefault: false,
isActive: false,
group: "auth",
},
},
];