commit 4d0f97d9a55e3f94a5109c38a5281ef5af60a132 Author: Feedback Studios Date: Tue Jun 16 04:37:19 2026 +0000 feat: scaffold Next.js agency site (AI-native hero) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9b345c9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +node_modules +/.next +/out +.env* +*.log +.DS_Store +next-env.d.ts diff --git a/app/globals.css b/app/globals.css new file mode 100644 index 0000000..212b42c --- /dev/null +++ b/app/globals.css @@ -0,0 +1,156 @@ +:root { + --bg: #0a0a0b; + --fg: #fafafa; + --muted: #a1a1aa; + --accent: #6366f1; + --accent-2: #22d3ee; + --maxw: 1100px; +} + +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +html, +body { + background: var(--bg); + color: var(--fg); + font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, + Helvetica, Arial, sans-serif; + -webkit-font-smoothing: antialiased; +} + +a { + color: inherit; + text-decoration: none; +} + +.hero { + min-height: 100dvh; + display: flex; + flex-direction: column; + padding: clamp(20px, 4vw, 40px); + position: relative; + overflow: hidden; +} + +.hero::before { + content: ""; + position: absolute; + inset: 0; + background: radial-gradient( + 60% 50% at 72% 0%, + rgba(99, 102, 241, 0.28), + transparent 70% + ), + radial-gradient(40% 40% at 0% 100%, rgba(34, 211, 238, 0.12), transparent 70%); + pointer-events: none; +} + +.nav { + display: flex; + justify-content: space-between; + align-items: center; + position: relative; + z-index: 1; +} + +.logo { + font-weight: 700; + letter-spacing: -0.02em; +} + +.nav-cta { + font-size: 0.9rem; + color: var(--muted); +} + +.content { + flex: 1; + display: flex; + flex-direction: column; + justify-content: center; + max-width: var(--maxw); + width: 100%; + margin: 0 auto; + position: relative; + z-index: 1; +} + +.eyebrow { + text-transform: uppercase; + letter-spacing: 0.18em; + font-size: 0.78rem; + color: var(--accent-2); + margin-bottom: 1.2rem; +} + +h1 { + font-size: clamp(2.4rem, 6.5vw, 5rem); + line-height: 1.02; + letter-spacing: -0.03em; + font-weight: 800; +} + +h1 span { + background: linear-gradient(90deg, var(--accent), var(--accent-2)); + -webkit-background-clip: text; + background-clip: text; + color: transparent; +} + +.sub { + margin-top: 1.6rem; + max-width: 620px; + font-size: clamp(1rem, 1.6vw, 1.25rem); + color: var(--muted); + line-height: 1.6; +} + +.actions { + margin-top: 2.4rem; + display: flex; + gap: 1rem; + flex-wrap: wrap; +} + +.btn { + padding: 0.85rem 1.5rem; + border-radius: 999px; + font-weight: 600; + font-size: 0.95rem; + transition: transform 0.15s ease, opacity 0.15s ease; +} + +.btn:hover { + transform: translateY(-2px); +} + +.btn.primary { + background: linear-gradient(90deg, var(--accent), var(--accent-2)); + color: #04060a; +} + +.btn.ghost { + border: 1px solid rgba(255, 255, 255, 0.18); + color: var(--fg); +} + +.foot { + position: relative; + z-index: 1; + color: var(--muted); + font-size: 0.8rem; + padding-top: 2rem; +} + +@media (max-width: 640px) { + .actions { + flex-direction: column; + } + .btn { + text-align: center; + } +} diff --git a/app/layout.tsx b/app/layout.tsx new file mode 100644 index 0000000..ccef644 --- /dev/null +++ b/app/layout.tsx @@ -0,0 +1,20 @@ +import type { Metadata } from "next"; +import "./globals.css"; + +export const metadata: Metadata = { + title: "Feedback Studios — La agencia de marketing AI-native", + description: + "Estrategia humana, ejecución sobre nuestra propia plataforma de IA. Web, SEO, ads y contenido: más rápido, más medible y a mejor coste.", +}; + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + {children} + + ); +} diff --git a/app/page.tsx b/app/page.tsx new file mode 100644 index 0000000..9aec141 --- /dev/null +++ b/app/page.tsx @@ -0,0 +1,38 @@ +export default function Home() { + return ( +
+ + +
+

Agencia de marketing AI-native

+

+ La mayoría de agencias alquilan sus herramientas. +
+ Nosotros construimos la nuestra. +

+

+ Estrategia humana + nuestra propia plataforma de IA. Web, SEO, ads y + contenido — más rápido, más medible y a mejor coste que una agencia + tradicional. +

+
+ + Habla con nosotros + + + Ver resultados + +
+
+ + +
+ ); +} diff --git a/next.config.mjs b/next.config.mjs new file mode 100644 index 0000000..d5456a1 --- /dev/null +++ b/next.config.mjs @@ -0,0 +1,6 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, +}; + +export default nextConfig; diff --git a/package.json b/package.json new file mode 100644 index 0000000..8c37143 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "agency-web", + "version": "0.1.0", + "private": true, + "engines": { + "node": ">=20" + }, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start -H 0.0.0.0 -p 3000" + }, + "dependencies": { + "next": "15.1.6", + "react": "19.0.0", + "react-dom": "19.0.0" + }, + "devDependencies": { + "typescript": "^5.7.3", + "@types/node": "^22.10.7", + "@types/react": "^19.0.7", + "@types/react-dom": "^19.0.3" + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..6420eed --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ES2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [{ "name": "next" }], + "paths": { "@/*": ["./*"] } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +}