Skip to content

Latest commit

Β 

History

History
440 lines (335 loc) Β· 10.4 KB

File metadata and controls

440 lines (335 loc) Β· 10.4 KB

Pointer Website

Marketing website and web presence for the Pointer development suite. Built with Next.js, TypeScript, and Tailwind CSS for a modern, responsive, and fast experience.

Next.js TypeScript Tailwind

✨ Features

🌐 Modern Web Presence

  • Responsive Design - Mobile-first approach with perfect desktop experience
  • Fast Performance - Optimized with Next.js for lightning-fast loading
  • SEO Optimized - Built-in SEO optimization and meta tags
  • Modern UI - Clean, professional design with Tailwind CSS

πŸ“„ Content & Pages

  • Landing Page - Showcase Pointer suite features and benefits
  • Documentation - Comprehensive guides and API documentation
  • Download Section - Links to desktop app downloads
  • Community Links - Discord, GitHub, and social media integration

πŸš€ Technical Features

  • Static Site Generation - Pre-rendered pages for optimal performance
  • TypeScript - Type-safe development
  • Tailwind CSS - Utility-first CSS framework
  • Component Architecture - Reusable, maintainable components

πŸš€ Quick Start

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn

Development Setup

  1. Navigate to Website Directory

    cd Website/pointer-website
  2. Install Dependencies

    npm install
    # or
    yarn install
  3. Start Development Server

    npm run dev
    # or
    yarn dev
  4. View Website Open http://localhost:3000 in your browser

πŸ”§ Build & Deployment

Local Build

# Build for production
npm run build
# or
yarn build

# Start production server
npm run start
# or
yarn start

# Export static site
npm run export
# or
yarn export

Static File Serving

Use the Python static server for simple deployment:

# Navigate to Website directory
cd Website

# Build the site first
cd pointer-website && npm run build && cd ..

# Serve static files
python web.py

The site will be available at http://localhost:5000

Build Script

Use the provided build script:

# Make executable (Linux/macOS)
chmod +x build.sh

# Run build
./build.sh

πŸ“ Project Structure

Website/
β”œβ”€β”€ pointer-website/              # Next.js application
β”‚   β”œβ”€β”€ src/                      # Source code
β”‚   β”‚   β”œβ”€β”€ app/                  # Next.js app directory
β”‚   β”‚   β”‚   β”œβ”€β”€ page.tsx          # Landing page
β”‚   β”‚   β”‚   β”œβ”€β”€ layout.tsx        # Root layout
β”‚   β”‚   β”‚   β”œβ”€β”€ globals.css       # Global styles
β”‚   β”‚   β”‚   β”œβ”€β”€ download/         # Download page
β”‚   β”‚   β”‚   β”œβ”€β”€ docs/             # Documentation pages
β”‚   β”‚   β”‚   └── about/            # About page
β”‚   β”‚   β”œβ”€β”€ components/           # Reusable components
β”‚   β”‚   β”‚   β”œβ”€β”€ Header.tsx        # Site header
β”‚   β”‚   β”‚   β”œβ”€β”€ Footer.tsx        # Site footer
β”‚   β”‚   β”‚   β”œβ”€β”€ Hero.tsx          # Hero section
β”‚   β”‚   β”‚   └── Features.tsx      # Features showcase
β”‚   β”‚   └── lib/                  # Utility functions
β”‚   β”œβ”€β”€ public/                   # Static assets
β”‚   β”‚   β”œβ”€β”€ images/               # Image assets
β”‚   β”‚   β”œβ”€β”€ icons/                # Icon files
β”‚   β”‚   └── favicon.ico           # Site favicon
β”‚   β”œβ”€β”€ styles/                   # Additional styles
β”‚   β”œβ”€β”€ next.config.ts            # Next.js configuration
β”‚   β”œβ”€β”€ tailwind.config.ts        # Tailwind configuration
β”‚   β”œβ”€β”€ package.json              # Dependencies
β”‚   └── README.md                 # Next.js default README
β”œβ”€β”€ web.py                        # Python static server
β”œβ”€β”€ build.sh                      # Build automation script
└── README.md                     # This file

βš™οΈ Configuration

Next.js Configuration

Edit pointer-website/next.config.ts:

/** @type {import('next').NextConfig} */
const nextConfig = {
  output: 'export',
  trailingSlash: true,
  images: {
    unoptimized: true
  }
}

module.exports = nextConfig

Tailwind Configuration

Customize styling in pointer-website/tailwind.config.ts:

import type { Config } from 'tailwindcss'

const config: Config = {
  content: [
    './src/pages/**/*.{js,ts,jsx,tsx,mdx}',
    './src/components/**/*.{js,ts,jsx,tsx,mdx}',
    './src/app/**/*.{js,ts,jsx,tsx,mdx}',
  ],
  theme: {
    extend: {
      colors: {
        primary: '#your-primary-color',
        secondary: '#your-secondary-color',
      }
    },
  },
  plugins: [],
}

Environment Variables

Create .env.local for environment-specific settings:

# Site configuration
NEXT_PUBLIC_SITE_URL=https://pointer.f1shy312.com
NEXT_PUBLIC_DISCORD_INVITE=https://discord.gg/vhgc8THmNk
NEXT_PUBLIC_GITHUB_URL=https://github.com/PointerIDE/Pointer

# Analytics (optional)
NEXT_PUBLIC_GA_ID=your-google-analytics-id

🎨 Development

Adding New Pages

  1. Create page file in src/app/
  2. Add navigation to header component
  3. Update sitemap if needed

Example new page:

// src/app/features/page.tsx
export default function FeaturesPage() {
  return (
    <div>
      <h1>Features</h1>
      <p>Detailed feature descriptions...</p>
    </div>
  )
}

Creating Components

// src/components/NewComponent.tsx
interface Props {
  title: string;
  description: string;
}

export default function NewComponent({ title, description }: Props) {
  return (
    <div className="p-4">
      <h2 className="text-2xl font-bold">{title}</h2>
      <p className="text-gray-600">{description}</p>
    </div>
  )
}

Styling Guidelines

  • Use Tailwind classes for styling
  • Follow mobile-first responsive design
  • Maintain consistent spacing and typography
  • Use semantic HTML elements

🚒 Deployment Options

Vercel (Recommended)

  1. Connect GitHub repository to Vercel
  2. Configure build settings:
    • Build Command: cd Website/pointer-website && npm run build
    • Output Directory: Website/pointer-website/out
  3. Deploy automatically on push to main branch

Netlify

  1. Connect repository to Netlify
  2. Set build settings:
    • Build command: cd Website/pointer-website && npm run build && npm run export
    • Publish directory: Website/pointer-website/out

GitHub Pages

# Build and deploy to gh-pages branch
cd pointer-website
npm run build
npm run export

# Deploy to GitHub Pages
npx gh-pages -d out

Docker Deployment

Create Dockerfile:

FROM node:18-alpine

WORKDIR /app
COPY pointer-website/package*.json ./
RUN npm install

COPY pointer-website/ ./
RUN npm run build

EXPOSE 3000
CMD ["npm", "start"]

Static Hosting

For simple static hosting:

# Build static files
cd pointer-website
npm run build
npm run export

# Upload the 'out' directory to your static host
# (AWS S3, CloudFlare Pages, etc.)

πŸ› οΈ Troubleshooting

Common Issues

Build Failures

# Clear Next.js cache
rm -rf .next

# Clear dependencies
rm -rf node_modules package-lock.json
npm install

# Rebuild
npm run build

Development Server Issues

# Check port availability
lsof -i :3000

# Use different port
PORT=3001 npm run dev

Static Export Issues

# Ensure all images are optimized for export
# Check next.config.ts for export settings
# Verify no dynamic routes without static params

Performance Optimization

  • Optimize images with Next.js Image component
  • Use lazy loading for components below the fold
  • Minimize JavaScript bundles with code splitting
  • Enable compression on your hosting platform

πŸ“Š Analytics & SEO

Google Analytics

Add to src/app/layout.tsx:

import { GoogleAnalytics } from '@next/third-parties/google'

export default function RootLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <html lang="en">
      <body>
        {children}
        <GoogleAnalytics gaId="GA_MEASUREMENT_ID" />
      </body>
    </html>
  )
}

SEO Optimization

// src/app/page.tsx
import type { Metadata } from 'next'

export const metadata: Metadata = {
  title: 'Pointer - Modern Code Editor',
  description: 'AI-powered code editor with VS Code-like interface',
  keywords: 'code editor, AI, development, programming',
  openGraph: {
    title: 'Pointer Code Editor',
    description: 'Modern development suite with AI assistance',
    url: 'https://pointer.f1shy312.com',
    siteName: 'Pointer',
    images: ['/images/og-image.png'],
  },
}

🀝 Contributing to Website

Content Guidelines

  • Write clear, concise copy that explains features
  • Use consistent terminology across pages
  • Maintain professional tone while being approachable
  • Include call-to-action buttons where appropriate

Design Guidelines

  • Follow established design system
  • Maintain consistent spacing using Tailwind utilities
  • Ensure accessibility with proper semantic HTML
  • Test on multiple devices and screen sizes

Development Workflow

  1. Create feature branch for changes
  2. Test locally with npm run dev
  3. Build successfully with npm run build
  4. Check responsiveness on different screen sizes
  5. Submit pull request with screenshots

πŸ“ License

This component is part of the Pointer project, licensed under the MIT License.

πŸ™ Acknowledgments

  • Next.js - React framework for production
  • Tailwind CSS - Utility-first CSS framework
  • Vercel - Deployment and hosting platform
  • TypeScript - Type-safe JavaScript

PointerIDE repositories

Repository Link
Pointer (main IDE) github.com/PointerIDE/Pointer
PointerAssets github.com/PointerIDE/PointerAssets
PointerDeprecated github.com/PointerIDE/PointerDeprecated
PointerDiscordBot github.com/PointerIDE/PointerDiscordBot
PointerWebsite github.com/PointerIDE/PointerWebsite

Public site: pointer.f1shy312.com