The React Framework for the Web.




import * as React from 'react'
import type { Metadata, Viewport } from 'next'
import Script from 'next/script'
import { NuqsAdapter } from 'nuqs/adapters/next/app'
import { Providers } from '@/components/provider'
import { Toaster } from '@/components/ui/sonner'
import { fontVariables } from '@/fonts'
import { cn } from '@/lib/utils'
import '@/styles/globals.css'
export const metadata: Metadata = {
title: 'Arbitrum - Build anything today',
description:
'Arbitrum: The ultimate Layer 2 scaling solution designed to enhance your Ethereum experience. Build faster, scale seamlessly, and unlock the full potential of the leading Layer 1 ecosystem.',
}
export const viewport: Viewport = {
width: 'device-width',
initialScale: 1,
maximumScale: 1,
viewportFit: 'cover',
}
export default async function RootLayout({
children,
}: Readonly<{
children: React.ReactNode
}>) {
return (
<html
lang="en"
dir="ltr"
className={cn('h-full font-sans antialiased', fontVariables)}
>
<head>
{/* Define isSpace function globally to fix markdown-it issues with Next.js + Turbopack */}
<Script id="markdown-it-fix" strategy="beforeInteractive">
{`
if (typeof window !== 'undefined' && typeof window.isSpace === 'undefined') {
window.isSpace = function(code) {
return code === 0x20 || code === 0x09 || code === 0x0A || code === 0x0B || code === 0x0C || code === 0x0D;
};
}
`}
</Script>
</head>
<body className="bg-background text-text-primary">
<div className="isolate min-h-svh bg-background">
<NuqsAdapter>
<React.Suspense>
<Providers>{children}</Providers>
</React.Suspense>
</NuqsAdapter>
</div>
<Toaster />
</body>
</html>
)
}Progress During Hackathon
Fundraising Status