Skip to content

Drop in a screenshot and convert it to clean code (HTML/Tailwind/React)

License

Notifications You must be signed in to change notification settings

theonlyamos/screenshot-to-code

 
 

Repository files navigation

screenshot-to-code

This simple app converts a screenshot to code (HTML/Tailwind CSS, or React or Bootstrap). It uses GPT-4 Vision to generate the code and DALL-E 3 to generate similar-looking images. You can now also enter a URL to clone a live website!

Youtube.Clone.mp4

See the Examples section below for more demos.

🚀 Try It Out!

🆕 Try it here (bring your own OpenAI key - your key must have access to GPT-4 Vision. See FAQ section below for details). Or see Getting Started below for local install instructions.

🌟 Recent Updates

  • Dec 11 - Start a new project from existing code (allows you to come back to an older project)
  • Dec 7 - 🔥 🔥 🔥 View a history of your edits, and branch off them
  • Nov 30 - Dark mode, output code in Ionic (thanks @dialmedu), set OpenAI base URL
  • Nov 28 - 🔥 🔥 🔥 Customize your stack: React or Bootstrap or TailwindCSS
  • Nov 23 - Send in a screenshot of the current replicated version (sometimes improves quality of subsequent generations)
  • Nov 21 - Edit code in the code editor and preview changes live thanks to @clean99
  • Nov 20 - Paste in a URL to screenshot and clone (requires ScreenshotOne free API key)
  • Nov 19 - Support for dark/light code editor theme - thanks @kachbit
  • Nov 16 - Added a setting to disable DALL-E image generation if you don't need that
  • Nov 16 - View code directly within the app
  • Nov 15 - You can now instruct the AI to update the code as you wish. It is helpful if the AI messed up some styles or missed a section.

🛠 Getting Started

The app has a React/Vite frontend and a FastAPI backend. You will need an OpenAI API key with access to the GPT-4 Vision API or Google API key for Gemini Pro Vision.

Installation

Install package with your preferred python package management app.

pip install https://github.com/theonlyamos/screenshot-to-code/archive/v0.1.0.zip

Usage

After installation, you can run the package from the terminal/command prompt and access the app on http://localhost:7001. Model Configuration can also be found on the settings modal of the web ui.

Run with GPT-4 Vision

You can run this with GPT-4 Vision by using the following command line:

screenshottocode --api-key "<Your Api Key>"

Run with Gemini Pro Vision

You can also run this with Gemini Pro Vision by using the following command line instead:

screenshottocode --model gemini --api-key "<Your Api Key>"

Using Gemini Pro Vision model is a lot slower than using GPT-4 Vision since Gemini has a maximum output token of 2048. This means the results are fetched iteratively.

For debugging purposes, if you don't want to waste GPT4-Vision credits, you can run the backend in mock mode (which streams a pre-recorded response):

MOCK=true poetry run uvicorn main:app --reload --port 7001

Configuration

  • You can configure the OpenAI base URL if you need to use a proxy: Set OPENAI_BASE_URL in the backend/.env or directly in the UI in the settings dialog

Docker

If you have Docker installed on your system, in the root directory, clone the reposition and then run:

echo "OPENAI_API_KEY=sk-your-key" > .env
docker-compose up -d --build

The app will be up and running at http://localhost:5173. Note that you can't develop the application with this setup as the file changes won't trigger a rebuild.

🙋‍♂️ FAQs

📚 Examples

NYTimes

Original Replica
Screenshot 2023-11-20 at 12 54 03 PM Screenshot 2023-11-20 at 12 59 56 PM

Instagram page (with not Taylor Swift pics)

instagram.taylor.swift.take.1.mp4

Hacker News but it gets the colors wrong at first so we nudge it

hacker.news.with.edits.mp4

🌍 Hosted Version

🆕 Try it here (bring your own OpenAI key - your key must have access to GPT-4 Vision. See FAQ section for details). Or see Getting Started for local install instructions.

"Buy Me A Coffee"

About

Drop in a screenshot and convert it to clean code (HTML/Tailwind/React)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 56.0%
  • Python 39.2%
  • HTML 1.7%
  • JavaScript 1.4%
  • CSS 1.2%
  • Dockerfile 0.4%
  • Shell 0.1%