Convert Figma logo to code with AI

leerob logosite

My site built with Next.js, Tailwind, and Vercel.

7,142
1,384
7,142
1

Top Related Projects

124,777

The React Framework

55,199

The best React-based framework with performance, scalability and security built in.

227,213

The library for web and native user interfaces.

207,677

This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core

78,194

Cybernetically enhanced web apps

54,014

The Intuitive Vue Framework.

Quick Overview

leerob/site is the personal website and blog of Lee Robinson, VP of Developer Experience at Vercel. It's built with Next.js and serves as a showcase of Lee's work, writing, and expertise in web development. The repository also functions as an example of modern web development practices and Next.js implementation.

Pros

  • Built with Next.js, demonstrating best practices and advanced features
  • Clean, minimalist design that focuses on content
  • Includes a blog with MDX support for rich content creation
  • Implements modern web technologies like server-side rendering and API routes

Cons

  • Highly personalized, which may limit its use as a template for others
  • Some features may be overkill for simpler personal websites
  • Requires familiarity with Next.js and React to fully understand and modify
  • May be challenging for beginners to set up and customize

Getting Started

To get started with this project:

  1. Clone the repository:

    git clone https://github.com/leerob/site.git
    
  2. Install dependencies:

    cd site
    npm install
    
  3. Run the development server:

    npm run dev
    
  4. Open http://localhost:3000 in your browser to view the site.

Note: You'll need to customize the content, including blog posts and personal information, to make it your own. Familiarity with Next.js, React, and MDX is recommended for modifying this project.

Competitor Comparisons

124,777

The React Framework

Pros of Next.js

  • Extensive documentation and large community support
  • Built-in performance optimizations and server-side rendering
  • Wider range of features and integrations for complex applications

Cons of Next.js

  • Steeper learning curve for beginners
  • More complex setup and configuration for simple projects
  • Larger bundle size due to additional features

Code Comparison

Next.js:

import { useRouter } from 'next/router'

function ActiveLink({ children, href }) {
  const router = useRouter()
  const style = {
    color: router.asPath === href ? 'red' : 'black',
  }

  return (
    <a href={href} style={style}>
      {children}
    </a>
  )
}

site:

import { useRouter } from 'next/router';
import Link from 'next/link';
import cn from 'classnames';

function NavItem({ href, text }) {
  const router = useRouter();
  const isActive = router.asPath === href;

  return (
    <Link
      href={href}
      className={cn(
        isActive
          ? 'font-semibold text-gray-800 dark:text-gray-200'
          : 'font-normal text-gray-600 dark:text-gray-400',
        'hidden md:inline-block p-1 sm:px-3 sm:py-2 rounded-lg hover:bg-gray-200 dark:hover:bg-gray-800 transition-all'
      )}
    >
      <span>{text}</span>
    </Link>
  );
}

The site repository uses a more customized approach with additional styling and dark mode support, while Next.js provides a simpler, more generic implementation.

55,199

The best React-based framework with performance, scalability and security built in.

Pros of Gatsby

  • Extensive plugin ecosystem for enhanced functionality
  • Built-in performance optimizations like image processing and code splitting
  • Large community and extensive documentation

Cons of Gatsby

  • Steeper learning curve due to GraphQL integration
  • Longer build times for large sites
  • More complex setup and configuration

Code Comparison

site (Next.js):

export default function Home() {
  return (
    <Layout>
      <h1>Welcome to my site</h1>
    </Layout>
  )
}

Gatsby:

export default function Home({ data }) {
  return (
    <Layout>
      <h1>{data.site.siteMetadata.title}</h1>
    </Layout>
  )
}

export const query = graphql`
  query HomePageQuery {
    site {
      siteMetadata {
        title
      }
    }
  }
`

The site repository uses Next.js, which offers a simpler setup and faster development experience. Gatsby, on the other hand, provides more built-in features and optimizations but requires additional configuration and GraphQL queries for data fetching.

Both frameworks are capable of building performant websites, but Gatsby excels in static site generation with its extensive plugin ecosystem, while site leverages Next.js for a more flexible approach to server-side rendering and static generation.

227,213

The library for web and native user interfaces.

Pros of React

  • Larger community and ecosystem, with extensive third-party libraries and tools
  • More comprehensive documentation and learning resources
  • Widely adopted in industry, making it valuable for career development

Cons of React

  • Steeper learning curve for beginners compared to simpler personal site setups
  • Potentially overkill for small projects or simple websites
  • Requires more setup and configuration for optimal performance

Code Comparison

React (component example):

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

site (Next.js page example):

export default function Home() {
  return <h1>Welcome to my site</h1>;
}

Summary

React is a powerful library for building complex user interfaces, while site is a personal website project likely built with simpler tools. React offers more features and flexibility but may be excessive for basic websites. site is probably easier to set up and maintain for personal use but lacks the advanced capabilities of React. The choice between them depends on project requirements and developer preferences.

207,677

This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core

Pros of Vue

  • Larger community and ecosystem with more resources and third-party libraries
  • More comprehensive framework for building complex applications
  • Better suited for large-scale projects with multiple developers

Cons of Vue

  • Steeper learning curve for beginners compared to simpler personal site setups
  • Potentially overkill for small, static websites or personal portfolios
  • More complex build and deployment process

Code Comparison

Vue (from Vue):

export default {
  name: 'App',
  components: { HelloWorld },
  data() {
    return { message: 'Welcome to Vue!' }
  }
}

React (from site):

export default function Home() {
  return (
    <Layout>
      <h1>Welcome to my website</h1>
      <p>This is a simple personal site.</p>
    </Layout>
  );
}

The Vue example shows a component with data management and child component inclusion, while the site example demonstrates a simpler functional component structure typical for a personal website. Vue's approach offers more built-in features for complex applications, whereas site's setup is more straightforward for basic content presentation.

78,194

Cybernetically enhanced web apps

Pros of Svelte

  • Comprehensive framework with a full ecosystem for building web applications
  • Highly performant with a smaller runtime footprint
  • Large and active community with extensive documentation and resources

Cons of Svelte

  • Steeper learning curve for developers new to the framework
  • Less flexibility for custom configurations compared to a personal site setup
  • May be overkill for simple static websites or blogs

Code Comparison

Site (Next.js):

export default function Home() {
  return (
    <div>
      <h1>Welcome to my site</h1>
      <p>This is a Next.js based personal website.</p>
    </div>
  );
}

Svelte:

<script>
  let welcome = 'Welcome to my site';
</script>

<h1>{welcome}</h1>
<p>This is a Svelte based application.</p>

Key Differences

  • Site is a personal website/blog using Next.js, while Svelte is a full-fledged framework
  • Site focuses on simplicity and ease of customization for personal use
  • Svelte offers more built-in features and optimizations for larger applications
  • Site leverages React ecosystem, whereas Svelte has its own unique syntax and approach
  • Svelte compiles to vanilla JavaScript, potentially resulting in smaller bundle sizes
54,014

The Intuitive Vue Framework.

Pros of Nuxt

  • More comprehensive framework with built-in features for server-side rendering, routing, and state management
  • Larger community and ecosystem, providing more plugins and resources
  • Better suited for large-scale applications with complex requirements

Cons of Nuxt

  • Steeper learning curve due to more extensive features and conventions
  • Potentially heavier bundle size for smaller projects
  • Less flexibility in customizing the build process compared to a simpler setup

Code Comparison

Site (Next.js):

export default function Home() {
  return (
    <div>
      <h1>Welcome to my site</h1>
    </div>
  )
}

Nuxt:

<template>
  <div>
    <h1>Welcome to my site</h1>
  </div>
</template>

<script>
export default {
  name: 'HomePage'
}
</script>

The code comparison shows that Site uses React-style components with Next.js, while Nuxt uses Vue.js components with a template and script structure. Nuxt requires more boilerplate for a basic component, but provides a clear separation between template and logic.

Both repositories offer modern web development approaches, with Site focusing on simplicity and flexibility using Next.js, while Nuxt provides a more opinionated and feature-rich framework based on Vue.js. The choice between them depends on project requirements, team expertise, and desired level of abstraction.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Deploy with Vercel

leerob.io

Running Locally

This application requires Node.js v18.17+.

git clone https://github.com/leerob/site.git
cd site
bun install
bun run delete # Remove all of my notes
bun dev

Optional: Create a .env.local file with your POSTGRES_URL environment variable to store redirects.

Database Schema

CREATE TABLE redirects (
  id SERIAL PRIMARY KEY,
  source VARCHAR(255) NOT NULL,
  destination VARCHAR(255) NOT NULL,
  permanent BOOLEAN NOT NULL
);

License

  1. You are free to use this code as inspiration.
  2. Please do not copy it directly.
  3. Crediting the author is appreciated.

Please remove all of my personal information by running bun run delete.