diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..5b0a536 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,147 @@ +# AGENTS.md — AI Agent Handoff Guide + +This file is for the **next AI agent** working on this project. Read this before making any changes. + +## What Is This Project? + +**malxte.de** is a single-page personal website for **Malxte** (aka ByteMalte) — a Rust programmer, Nostr enthusiast, and content creator. The site introduces who he is, links to his social profiles, and showcases his projects. + +- **Live at**: [malxte.de](https://malxte.de) +- **Stack**: SvelteKit 2 + Svelte 5 + TypeScript + Vite + pnpm +- **Type**: Static personal about page (no backend, no database, no API) + +## Critical Files + +| File | What It Does | Edit When | +|------|-------------|-----------| +| `src/routes/+page.svelte` | ALL page content — hero, about, connect, projects | Adding/changing content, links, styling | +| `src/routes/+layout.svelte` | Global shell — header, nav, footer, global CSS | Changing navigation, layout structure, global styles | +| `src/app.html` | HTML shell — font loading | Adding fonts, meta tags, scripts | +| `BYTEMALTE.md` | Design system spec (colors, typography, components) | Updating design tokens | +| `package.json` | Dependencies and scripts | Adding/removing packages | + +## Design System + +**Always follow the BYTEMALTE Design System** (see `BYTEMALTE.md`). + +### Current Color Tokens (v1.1) + +| Token | Hex | Used For | +|-------|-----|----------| +| Primary | `#8888FF` | Buttons, links, brand accents, hover states | +| Secondary | `#3DDC84` | Tags, success indicators | +| Background | `#0F172A` | Page background | +| Surface | `#1E293B` | Cards, sections, modals | +| Text High | `#F8FAFC` | Headings, primary text | +| Text Muted | `#B0BDD0` | Descriptions, footer, secondary text | +| Error | `#EF4444` | Destructive actions | + +### When using these colors in CSS: + +- **Primary**: `#8888ff` (hex) or `rgba(136, 136, 255, X)` (for transparency) +- **Primary hover**: `#9a9aff` +- **Secondary**: `#3ddc84` or `rgba(61, 220, 132, X)` +- **Muted text**: `#b0bdd0` + +### Border Radii + +- Buttons: `8px` +- Cards/Containers: `16px` +- Profile images: `50%` (circle) + +### Typography + +- Font: `Inter, system-ui, sans-serif` +- h1: `2.5rem`, weight 700 +- h2: `1.8rem`, weight 600 +- h3: `1.2rem`, weight 500 +- Body: `1rem`, weight 400, line-height 1.6 + +## How Content Is Organized + +All page content lives in `src/routes/+page.svelte`. Data is defined as static arrays: + +```typescript +// Social links — add/remove/edit entries here +const connectLinks = [ + { title: '...', description: '...', icon: '...', href: '...', cta: '...' }, +]; + +// Projects — add/remove/edit entries here +const projects = [ + { title: '...', description: '...', tags: ['...'], link: '...' | null }, +]; +``` + +SVG icons are inline strings (not components). Copy from [Lucide](https://lucide.dev/) or similar. + +## Nostr Identity + +The site displays Malxte's Nostr credentials in the hero section: + +- **NIP-05**: `_@bytemalte.de` +- **npub**: `npub1guff8dkdz7k47zh0mx26y0mmx5l6np57jjkvmhnyrak0n50r5hxqjdnsra` + +Both have copy-to-clipboard buttons. State is managed via: + +```typescript +let copiedField = $state(''); +function copyToClipboard(text: string, field: string) { ... } +``` + +## Common Tasks + +### Adding a new social link + +1. Open `src/routes/+page.svelte` +2. Add an entry to the `connectLinks` array +3. For the icon, use an inline SVG string (24x24 viewBox, stroke-based) + +### Adding a new project + +1. Open `src/routes/+page.svelte` +2. Add an entry to the `projects` array +3. Use `link: null` if there's no external URL + +### Changing colors + +1. Update `BYTEMALTE.md` with the new values +2. Find-and-replace in `src/routes/+layout.svelte` and `src/routes/+page.svelte` +3. Don't forget `rgba()` variants (e.g., `rgba(136, 136, 255, 0.1)`) + +### Adding a new page + +1. Create `src/routes/new-page/+page.svelte` +2. It will automatically be available at `/new-page` +3. Add a nav link in `src/routes/+layout.svelte` + +### Updating the footer links + +Edit the footer section in `src/routes/+layout.svelte` (around line 189-196). + +## Verification Checklist + +After making changes, always run: + +```bash +pnpm check # 0 errors, 0 warnings expected +pnpm build # Must succeed +``` + +## Svelte 5 Patterns Used + +- **`$state()`** — Reactive state declaration +- **`$props()`** — Component props (layout uses `let { children } = $props()`) +- **`{@render children()}`** — Slot rendering (replaces ``) +- **`{#each}` / `{#if}`** — Control flow blocks +- **Scoped ` -
+
-
Developer | Creator | Tech Enthusiast
+
@@ -86,6 +187,14 @@
-

© {new Date().getFullYear()} Malxte. Built with Svelte 5 & Nostr ❤️

+
+ +

© {new Date().getFullYear()} Malxte. Built with Svelte 5 & Nostr

+
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index a0ad519..49cfbf2 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,252 +1,686 @@ + + + +
+
+
Developer · Creator · Tech Enthusiast
+

Hi, I'm Malxte

+

+ A young, highly motivated Rust programmer and Nostr enthusiast. + I share my projects, tech news, and tips with the community. +

+ + +
+
+ + Nostr +
+
+
+ NIP-05 +
+ _@bytemalte.de + +
+
+
+ npub +
+ npub1guff8dkdz7k47zh0mx26y0mmx5l6np57jjkvmhnyrak0n50r5hxqjdnsra + +
+
+
+
+
+
+ + +
+
+

About Me

+
+
+
+ +
+

Rust Developer

+

Passionate about building fast, safe, and reliable systems. Rust is my language of choice for performance-critical applications.

+
+
+
+ +
+

Community Builder

+

I believe in open collaboration and sharing knowledge. Building communities where developers can learn and grow together.

+
+
+
+ +
+

Nostr Advocate

+

Firm believer in decentralized communication. Nostr is the future of censorship-resistant social networking.

+
+
+
+
+ + +
+
+

Connect

+

Find me across the web — let's build something together.

+ +
+
+ + +
+
+

Projects

+

+ Things I'm building and working on. All my projects are available at + bytemalte.de + — the following are just examples. +

+
+ {#each projects as project} +
+
+

{project.title}

+ {#if project.link} + + + + {/if} +
+

{project.description}

+
+ {#each project.tags as tag} + {tag} + {/each} +
+
+ {/each} +
+
+
+ - -
-

Malxte

-

Rust 🦀 programmer & Nostr Lover ❤️

-
- -
-

About me

-
-

- Hi, I am a young highly motivated Rust 🦀 programmer and Nostr Lover ❤️. - I like to share my Projects, Tech News and Tips. -

-

- When I'm not coding, I create content or work on my own projects, such as - bytemalte.de a community website or my social media app maltemedia. -

-
-
- -
-

Connect

-
-
-
🌐
-

ByteMalte.de

-

Meine Website

- Visit -
-
-
▶️
-

YouTube

-

Tutorials & Content

- Watch -
-
-
✖️
-

X (Twitter)

-

Gedanken & Updates

- Follow -
-
-
💻
-

My Gitea

-

Mein Code

- Browse -
-
-
💬
-

Reddit

-

Community Posts & Updates

- Join -
-
-
- -
-

Projects

-
-
-

ByteMalte.de

-

- A community website where I share insights, tutorials, and connect with other developers. - Built with modern web technologies and a focus on performance. -

-
-
-

Maltemedia

-

- A social media app that prioritizes privacy and user control. Currently in development - with Rust backend and Svelte frontend. -

-
-
-