Nutlope/self.so

TypeScriptself.so

LinkedIn -> personal site generator

personal-sitelinkedinportfoliogeneratorwebsite
Star Growth
Stars
3.1k
Forks
324
Weekly Growth
+-3
Issues
9
1k2k3k
Sep 2025Jan 2026Jun 2026Oct 2026
Artifactsnpm
README
Self

Self

An open source personal site builder. Powered by Together.ai.

Tech stack

  • Together.ai for the LLM
  • Vercel's AI SDK as the LLM framework
  • Clerk for authentication
  • Next.js app router
  • Braintrust for privacy-safe resume-generation tracing and observability
  • S3 for object storage (PDFs)
  • Upstash redis for my DB
  • Vercel for hosting

How it works

  1. Create an account on the site with Clerk
  2. Upload a PDF which gets uploaded to S3 and does a safety check with Llama Guard
  3. Send the PDF as context to Kimi K2.6 to extract relevant information with structured outputs (JSON mode)
  4. Get all the information & put it on a dynamic route for the user to be able to view & publish their site

Cloning & running

  1. Fork or clone the repo
  2. Create an account at Together AI for the LLM
  3. Create an account at Upstash for the Redis DB
  4. Create an account at AWS for the S3 bucket
  5. Optionally create a Braintrust account for tracing
  6. Create a .env (use the .example.env for reference) and replace the API keys
  7. Run bun install and bun run dev to install dependencies and run locally

Running Tests Locally

# Run all tests
bun run test:run

# Run tests with UI
bun run test:ui

# Run tests in watch mode
bun run test

Future tasks

  • add error logging to make sure to fix any bugs
  • add ability to get to the "preview" page if you have a site already
  • ability to edit links in the site
  • ability to edit any section in the site
  • add themes that you can toggle on (start with ghibli)
  • Delete previously uploaded resume when we upload a new one