Skip to content

Repository files navigation

Redreammer

A minimal, terminal-flavored personal portfolio — grayscale, monospace, and quietly animated.

Built with SvelteKit and Svelte 5 runes. Home to a live GitHub contribution calendar, a Markdown-powered writing space, and a guest book you can sign in to with GitHub.

Preview

Redreammer — home page

Daily — GitHub contribution calendar Words — guest book
Daily page Words page

Features

  • Home — an animated, scrolling tab title over a soft grayscale backdrop.
  • Daily — a GitHub contribution heatmap recolored to the site's grayscale palette (via the GitHub GraphQL API).
  • Articles — Markdown writing rendered with mdsvex, syntax-highlighted by Shiki, with a candle/flame empty-state while the ink is still drying.
  • Words — a guest book: sign in with GitHub, leave a message, like others, delete your own.
  • About — a short, reflective page.
  • SSR + prerendering, dynamic robots.txt and sitemap.xml, OpenGraph/Twitter meta, and haptic feedback.

Tech stack

Area Tools
Framework SvelteKit 2 · Svelte 5 (runes) · Vite 7
Language TypeScript
Styling Tailwind CSS v4 · @tailwindcss/typography · JetBrains Mono
Content mdsvex · Shiki · rehype-slug · remark-toc
Data PostgreSQL · Drizzle ORM
Auth Arctic — GitHub OAuth
UX web-haptics
Tooling ESLint · Prettier · Drizzle Kit
Hosting Vercel (@sveltejs/adapter-vercel)

Getting started

Prerequisites

  • Node.js 20.19+ or 22.12+ (required by Vite 7)
  • pnpmnpm install -g pnpm
  • A PostgreSQL database (local, or a free one from Neon / Supabase)

Setup

# 1. Install dependencies
pnpm install

# 2. Configure environment
cp .env.example .env
#    then fill in the values (see the table below)

# 3. Create the database tables
pnpm db:push

# 4. Start the dev server
pnpm dev

The site runs at http://localhost:5173.

Environment variables

Variable Required for How to get it
DATABASE_URL Guest book Any PostgreSQL connection string
GITHUB_CLIENT_ID Guest book sign-in GitHub → Settings → Developer settings → OAuth Apps
GITHUB_CLIENT_SECRET Guest book sign-in Same OAuth App
GITHUB_TOKEN Contribution calendar A Personal Access Token with the read:user scope
BASE_URL robots / sitemap / OAuth redirect http://localhost:5173 in dev, https://redreammer.blog in production

For the OAuth App, set the callback URL to {BASE_URL}/api/auth/callback. .env is already gitignored — never commit it.

Scripts

Command What it does
pnpm dev Start the dev server
pnpm build Production build
pnpm preview Preview the production build
pnpm check Type-check with svelte-check
pnpm lint Prettier check + ESLint
pnpm format Format with Prettier
pnpm db:push Push the Drizzle schema to the database
pnpm db:migrate Run migrations
pnpm db:studio Open Drizzle Studio

Deployment

Deployed on Vercel via @sveltejs/adapter-vercel. Import the repo in Vercel and set the same environment variables in the project settings. Point BASE_URL at your production domain so robots.txt, sitemap.xml, and the OAuth redirect resolve correctly.

Connect

License

MIT © 2026 Redreammer (@latent-9)

About

A minimal, terminal-flavored personal portfolio built with SvelteKit and Svelte 5 — grayscale, monospace, with a live GitHub contribution calendar, Markdown writing, and a GitHub-auth guest book.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages