Inspiration

When ideating Siteify, our goal was to make it accessible to individuals with varying levels of technical proficiency, so that everyone could showcase their work without limitations.

What it does

Siteify is an app that makes it easy to create and deploy a personal website with the help of AI. Input your skills, hobbies, projects, etc. and get back a beautiful website that can be deployed instantly.

How we built it

The main website is built with Next.JS 13 + Tailwind with next-auth for user authentication and Supabase as our database of choice. We used Langchain to strategically prompt Openai's Gpt-3 to create descriptions based on certain user inputs. We implemented a template system in React that takes the user inputs and Openai's text generation to create custom personal websites for users. Our app also creates a Github repository which allows for easy Vercel deployments.

Challenges we ran into

Getting the backend database setup was a challenge. We spent most of the first day trying to use Prisma and Planetscale, but ditched it due to the complexity it added to our system. We eventually settled on Supabase because of how seamless it was to set up with our stack. Using NextJS 13's beta app directory also added some difficulties, as some libraries didn't support it out of the box, and tutorials using v13 were scarce.

Accomplishments that we're proud of

Siteify is an app with several intricate components, including user authentication, forms, Github integration, GPT-3 calls, templates, and deployment. As a result, we're incredibly proud of our ability to bring a functional prototype to life. Our UI is also fresh and easy to navigate, and offers an intuitive user experience.

What we learned

This was our first time using prompt engineering to tailor a LLM for our specific task. We also learned about how to set up databases with user authentication using next-auth, Github, and Supabase.

What's next for Siteify

  • Implementing more templates
  • Using gpt-3 to generate color themes and fonts given user input
  • More customizability with web components

Built With

Share this project:

Updates