diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx index 0c81346..4f3804e 100644 --- a/apps/web/src/app/page.tsx +++ b/apps/web/src/app/page.tsx @@ -6,6 +6,7 @@ import { FounderSignature } from "@/components/about/founder-signature"; import { ServicesPreview } from "@/components/landing/services-preview"; import Link from "next/link"; import { Button } from "@repo/ui/components/button"; +import { Card } from "@repo/ui/components/card"; export default function Home() { return ( @@ -45,15 +46,57 @@ export default function Home() { -
-

Selected Works

+
+
+

Selected Works

+

+ A curated gallery of recent projects where we've pushed the boundaries of + performance, accessibility, and user experience. +

+
+
+
+

Inclusive by Design

+

+ We believe the web is for everyone. Every line of code we write is + audited for WCAG 2.1 compliance and high-performance across all devices. +

+
+
+ +

+ 01 + A11y First Architecture +

+

+ Semantic HTML, ARIA patterns, and keyboard navigation aren't afterthoughts—they are the foundation of our build process. +

+
+ +

+ 02 + Edge Performance +

+

+ By leveraging edge computing and static generation, we ensure your site is usable even on 3G connections and older hardware. +

+
+
+
+ -
-

Start a Project

+
+
+

Start a Project

+

+ Ready to build something exceptional? Drop us a line and let's discuss + how we can help you scale your digital presence. +

+
diff --git a/apps/web/src/app/services/page.tsx b/apps/web/src/app/services/page.tsx index b43a853..25bf0e2 100644 --- a/apps/web/src/app/services/page.tsx +++ b/apps/web/src/app/services/page.tsx @@ -23,47 +23,118 @@ export default function ServicesPage() {
-
-

- Medusa v2 Development -

-

- We build proprietary, headless commerce engines that scale with your business logic. - Stop fighting with Shopify's limitations. -

+ {/* Context Header */} +
+
+

+ Specialized Solutions +

+

+ We solve complex business problems with elegant architecture. + Whether you're scaling a commerce empire or building a new financial protocol, + we provide the technical firepower. +

+
-
- -

Unlimited Data Modeling

-

- Need a product with "DNA Sequence", "Artist Bio", and "Royalty Logic"? - We model that natively in the database, not via hacky meta-fields. + {/* Medusa / Webshops Section */} +

+
+

Medusa v2 Development

+

+ We build proprietary, headless commerce engines that scale with your business logic. + Stop fighting with Shopify's limitations and own your infrastructure.

- - -

Workflow Orchestration

-

- Automate complex business logic—like splitting an order between a print-on-demand provider - and a local warehouse automatically using Medusa Workflows. -

-
- -

Headless Performance

-

- We couple the robust Medusa backend with a Next.js 16 frontend, ensuring your shop - scores 100/100 on Core Web Vitals and SEO. -

-
+
+ +
+ +

Unlimited Data Modeling

+

+ Natively model complex entities like "DNA Sequences" or "Royalty Logic" + directly in the database without hacky metadata. +

+
+ +

Zero Capital Upfront

+

+ Our "Toast" style partnership means we win when you win. Low friction onboarding + with performance-based incentives. +

+
+ +

Headless SEO

+

+ Custom Next.js frontends engineered for perfect lighthouse scores and + superior organic search conversion. +

+
+
-
-

Ready to upgrading your shop?

-

- We are currently accepting beta partners for our new Medusa v2 accelerator. + {/* Custom Apps Section */} +

+
+

Custom Apps & Interactive Websites

+

+ Whether it's a real-time collaborative tool or a high-end brand experience, + we build performant web applications that delight users. +

+
+
+ +

Real-time Platforms

+

+ Socket.io and WebRTC integration for collaborative tools, dashboards, + and live data visualization. +

+
+ +

Brand Motion

+

+ Framermotion and Three.js powered interfaces that tell your brand's story + through motion and depth. +

+
+
+
+ + {/* Crypto Section */} +
+
+

Cryptocurrency & Payment Consulting

+

+ Navigate the complex world of global finance. We bridge the gap between + traditional banking and decentralized protocols. +

+
+
+ +

Payment Orchestration

+

+ Multi-PSP routing, automated reconciliation, and fraud prevention for + high-volume merchants. +

+
+ +

Web3 Integration

+

+ Non-custodial wallet auth, on/off ramp solutions, and smart contract + interactions for modern dApps. +

+
+
+
+ +
+
+

Start building the future

+

+ We are currently accepting a limited number of partners for performance-based development. + Let's see if we're a fit.

- - diff --git a/apps/web/src/components/landing/services-preview.tsx b/apps/web/src/components/landing/services-preview.tsx index ebdcce7..2eced44 100644 --- a/apps/web/src/components/landing/services-preview.tsx +++ b/apps/web/src/components/landing/services-preview.tsx @@ -2,19 +2,28 @@ import { Card } from "@repo/ui/components/card"; export function ServicesPreview() { return ( -
+
+
+

High-Performance Webshops

+

+ We build commerce infrastructure that scales with you. From complex supply chains + to global payments, we handle the technical heavy lifting so you can focus on your brand. +

+
+ +
-

Unlimited Data Modeling

+

Native Crypto & Payments

- Need a product with "DNA Sequence", "Artist Bio", and "Royalty Logic"? - We model that natively in the database, not via hacky meta-fields. + Deep expertise in multi-currency checkout, fiat-to-crypto onboarding, and + DeFi integration. We build payments that work everywhere, for everyone.

-

Workflow Orchestration

+

Zero Capital Upfront

- Automate complex business logic—like splitting an order between a print-on-demand provider - and a local warehouse automatically using Medusa Workflows. + We operate on a "Toast" style partnership model. No massive setup fees or + stiff monthly subscriptions—we only win when you're making sales.

@@ -25,5 +34,6 @@ export function ServicesPreview() {

+
) } diff --git a/packages/ui/src/procedural/nebula-field.tsx b/packages/ui/src/procedural/nebula-field.tsx index bdbba70..b19dc63 100644 --- a/packages/ui/src/procedural/nebula-field.tsx +++ b/packages/ui/src/procedural/nebula-field.tsx @@ -16,30 +16,35 @@ interface StreamLineProps { themeMode: 'light' | 'dark'; onHit: () => void; width: number; + index: number; } -const StreamLine = ({ d, themeMode, onHit, width }: StreamLineProps) => { +const StreamLine = ({ d, themeMode, onHit, width, index }: StreamLineProps) => { const controls = useAnimation(); useEffect(() => { let isMounted = true; const animate = async () => { - // Very short initial delay for first streamers - await new Promise(resolve => setTimeout(resolve, Math.random() * 800)); + // Spread out initial starts so they don't all hit at once + await new Promise(resolve => setTimeout(resolve, index * 1500 + Math.random() * 1000)); while (isMounted) { - const duration = 6 + Math.random() * 4; // Snappier, more frequent small impacts + // Calmer, longer durations (8-14 seconds) + const duration = 8 + Math.random() * 6; controls.set({ pathLength: 0, pathOffset: 0, opacity: 0 }); + // Timing: In the animation below, pathOffset reaches 0.8 at 80% of duration. + // With pathLength 0.2, the head hits the target (1.0) exactly at 80%. const hitTimeout = setTimeout(() => { if (isMounted) onHit(); - }, duration * 750); + }, duration * 1000 * 0.8); + // Animate the streamer path await controls.start({ - pathLength: [0, 0.20, 0.20, 0], - pathOffset: [0, 0, 0.75, 0.98], // Avoid overshooting center too much - opacity: [0, 0.5, 0.5, 0], // More visible streamers + pathLength: [0, 0.2, 0.2, 0], + pathOffset: [0, 0, 0.8, 1.0], + opacity: [0, 0.4, 0.4, 0], transition: { duration, ease: "linear", @@ -48,12 +53,13 @@ const StreamLine = ({ d, themeMode, onHit, width }: StreamLineProps) => { }); clearTimeout(hitTimeout); - await new Promise(resolve => setTimeout(resolve, 300 + Math.random() * 1000)); + // Longer pause between streaks for a more ambient feel + await new Promise(resolve => setTimeout(resolve, 2000 + Math.random() * 3000)); } }; animate(); return () => { isMounted = false; }; - }, [controls, onHit]); + }, [controls, onHit, index]); return ( { return Array.from({ length: density }).map(() => { + // Streamer start position (random edge) const edge = Math.floor(Math.random() * 4); let startX = 50, startY = 50; @@ -128,7 +143,7 @@ export const NebulaField = ({ className, density = 8, themeMode = 'dark' }: Nebu "brightness(1.3) drop-shadow(0 0 12px currentColor)", // Stronger glow "brightness(1) drop-shadow(0 0 0px rgba(0,0,0,0))" ], - transition: { duration: 2.5, ease: "easeOut" } + transition: { duration: 1.5, ease: "easeOut" } // Smoother, longer pulse }); }, [monitorControls, themeMode]); @@ -146,8 +161,8 @@ export const NebulaField = ({ className, density = 8, themeMode = 'dark' }: Nebu }} transition={{ duration: 1.5 }} style={{ - left: `${targetX}%`, - top: `${targetY}%`, + left: `${computerX}%`, + top: `${computerY}%`, y: yRange }} > @@ -155,7 +170,7 @@ export const NebulaField = ({ className, density = 8, themeMode = 'dark' }: Nebu @@ -175,6 +190,7 @@ export const NebulaField = ({ className, density = 8, themeMode = 'dark' }: Nebu themeMode={themeMode} onHit={handleHit} width={themeMode === 'light' ? 0.08 : 0.12} + index={i} /> ))}