Modern, responsive website for Neural Nurture - An emerging AI research lab built with Next.js, TypeScript, and Tailwind CSS.
- β Built with Next.js 14 (App Router)
- β TypeScript for type safety
- β Tailwind CSS for styling
- β Google Analytics integration
- β Formspree contact form integration
- β Google Maps embed
- β Fully responsive design
- β Dark mode toggle
- β Smooth scrolling navigation
- β Optimized for Netlify deployment
- β SEO-friendly with metadata
- Node.js 18.17 or later
- npm or yarn package manager
- A Namecheap domain (for custom domain)
- Formspree account (for contact form)
- Google Analytics account (optional)
npm installCreate a .env.local file in the root directory:
cp .env.example .env.localEdit .env.local with your credentials:
# Google Analytics
NEXT_PUBLIC_GA_MEASUREMENT_ID=your_ga_measurement_id
# Formspree Contact Form
NEXT_PUBLIC_FORMSPREE_ENDPOINT=your_formspree_endpoint
# Formspree Waitlist Form
NEXT_PUBLIC_FORMSPREE_WAITLIST=your_waitlist_endpointNote: These values are already configured as fallbacks in the code, so the site will work even without the .env.local file.
npm run devOpen http://localhost:3000 in your browser.
- Go to Google Analytics
- Create a new property for your website
- Get your Measurement ID (format: G-XXXXXXXXXX)
- Add it to
.env.localasNEXT_PUBLIC_GA_MEASUREMENT_ID
- Go to Formspree.io
- Create a new form
- Copy your form endpoint URL
- Add it to
.env.localasNEXT_PUBLIC_FORMSPREE_ENDPOINT - Update the endpoint in
src/components/Contact.tsxif needed
The map is already embedded in src/components/Contact.tsx. To customize:
- Go to Google Maps
- Search for your location
- Click "Share" β "Embed a map"
- Copy the iframe src URL
- Replace the iframe src in
Contact.tsx
-
Push to GitHub:
git init git add . git commit -m "Initial commit" git branch -M main git remote add origin https://github.com/yourusername/neural-nurture.git git push -u origin main
-
Connect to Netlify:
- Go to Netlify
- Click "Add new site" β "Import an existing project"
- Connect your GitHub repository
- Configure build settings:
- Build command:
npm run build - Publish directory:
out
- Build command:
- Add environment variables in Netlify:
NEXT_PUBLIC_GA_MEASUREMENT_IDNEXT_PUBLIC_FORMSPREE_ENDPOINT
- Click "Deploy site"
-
Set up Custom Domain (Namecheap):
- In Netlify, go to Site settings β Domain management
- Click "Add custom domain"
- Enter your domain (e.g., neuralnurture.com)
- Follow Netlify's DNS instructions
- In Namecheap:
- Go to Domain List β Manage β Advanced DNS
- Add/Update these records:
Type: A Record Host: @ Value: 75.2.60.5 (Netlify's load balancer IP) Type: CNAME Record Host: www Value: your-site-name.netlify.app
- Wait for DNS propagation (can take up to 48 hours)
- Enable HTTPS in Netlify (automatic)
# Install Netlify CLI
npm install -g netlify-cli
# Login to Netlify
netlify login
# Deploy
netlify deploy --prodneural-nurture-nextjs/
βββ src/
β βββ app/
β β βββ layout.tsx # Root layout with GA
β β βββ page.tsx # Main page
β β βββ globals.css # Global styles
β βββ components/
β βββ Navigation.tsx # Header with navigation
β βββ Hero.tsx # Hero section
β βββ About.tsx # About section
β βββ Team.tsx # Team section
β βββ Services.tsx # Services section
β βββ Waitlist.tsx # Waitlist section
β βββ Careers.tsx # Careers section
β βββ Contact.tsx # Contact form (Formspree)
β βββ Footer.tsx # Footer
βββ public/ # Static files
βββ .env.example # Environment variables template
βββ .env.local # Your environment variables (create this)
βββ package.json
βββ tailwind.config.js
βββ tsconfig.json
βββ next.config.js
βββ netlify.toml # Netlify configuration
βββ README.md
Edit tailwind.config.js to change the color scheme.
All content is in the component files under src/components/. Edit these files to update:
- Company information
- Team profiles
- Services descriptions
- Career listings
- Global styles:
src/app/globals.css - Component-specific styles: Inline Tailwind classes in each component
Metadata is configured in src/app/layout.tsx. Update:
- Title
- Description
- Keywords
- Check that all environment variables are set in Netlify
- Ensure Node.js version is 18.17 or later
- Check build logs for specific errors
- Verify Formspree endpoint is correct
- Check browser console for errors
- Ensure email field has
name="email"attribute
- Verify GA Measurement ID is correct
- Check that the ID is in the correct format (G-XXXXXXXXXX)
- Allow 24-48 hours for data to appear in GA
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLintFor issues or questions:
- Email: [email protected]
- Create an issue in the GitHub repository
Β© 2024 Neural Nurture. All rights reserved.