Nutlope/self.so

LinkedIn -> personal site generator

TypeScript

3,091

162 commits

updated Sep 4, 2026

See the code

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

Nutlope/self.so

LinkedIn -> personal site generator

TypeScript

3,091

162 commits

updated Sep 4, 2026

See the code

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

Significant stargazers

Maged Saeed

198 followers · starred Jul 2025

Kieran Klukas

245 followers · starred Jun 2025

Anmol Baranwal

1,027 followers · starred Apr 2025

Priyank Rajai

25 followers · starred Apr 2025