From 6abeaf95e7bc2ba10680f40332048c7e27cb4002 Mon Sep 17 00:00:00 2001 From: Loto Date: Mon, 2 Mar 2026 17:28:23 +0100 Subject: [PATCH] Initial commit: project specification and README --- README.md | 29 +++++++++++ SPEC.md | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 170 insertions(+) create mode 100644 README.md create mode 100644 SPEC.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..9070266 --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ +# TillTheEnd Website + +Personal website for IT consulting and freelancing. + +## Quick Start + +```bash +# Install dependencies +npm install + +# Development server +npm run dev + +# Build for production +npm run build + +# Docker +docker compose up --build +``` + +## Tech Stack + +- Vite (build tool) +- Tailwind CSS (styling) +- Nginx (production serving) + +## Structure + +See [SPEC.md](./SPEC.md) for full specification. \ No newline at end of file diff --git a/SPEC.md b/SPEC.md new file mode 100644 index 0000000..5648d25 --- /dev/null +++ b/SPEC.md @@ -0,0 +1,141 @@ +# TillTheEnd Website Specification + +## Overview + +Personal website for TillTheEnd — IT consulting and freelancing. + +## Visual Style + +Inspired by ollama.com: minimal, clean, light. + +- **Background:** White/off-white (`#fafafa` or `#ffffff`) +- **Text:** Dark gray/black (`#111` or `#1a1a1a`) +- **Accents:** Orange (`#f97316`) + Purple (`#a855f7`) — used sparingly for links, buttons, icons +- **Typography:** System fonts (Inter or system-ui), clean sans-serif +- **Layout:** Single page, minimal navigation, lots of whitespace +- **No:** Animations, gradients, heavy shadows (keep it flat) + +## Branding + +- **Name:** TillTheEnd +- **Slogan:** "Delivering results, not promises." +- **Play on words:** Name "Till" + "to the end" = commitment to completion + +## Contact + +| Platform | Value | +|----------|-------| +| Email | contact@tilltheend.de | +| GitHub | https://github.com/iRave | +| LinkedIn | https://de.linkedin.com/in/tilltheend | + +## Services + +1. **Software Development** — Custom solutions tailored to your needs +2. **Infrastructure** — Reliable systems architecture +3. **Consulting** — Expert guidance from concept to completion + +## Page Sections + +### 1. Header +- Logo/Name: "TillTheEnd" (left) +- Minimal nav: Services | About | Contact (right, optional — could skip) + +### 2. Hero +``` +TillTheEnd +Delivering results, not promises. + +[Contact] [GitHub] + +Software Development • Infrastructure • Consulting +``` + +### 3. Services (3 columns, icons) +| Icon | Service | Description | +|------|---------|-------------| +| `` | Software Development | Custom solutions tailored to your needs | +| `⚙️` | Infrastructure | Reliable systems architecture | +| `💬` | Consulting | Expert guidance from concept to completion | + +### 4. About (placeholder) +``` +About +[Short bio — fill in later] +``` + +### 5. Contact (simple links) +``` +Contact +email: contact@tilltheend.de +github: github.com/iRave +linkedin: de.linkedin.com/in/tilltheend +``` + +### 6. Footer +``` +© 2026 TillTheEnd. All rights reserved. +``` + +## Tech Stack + +| Item | Choice | +|------|--------| +| **Framework** | Vite + plain HTML (no React/Vue — keep it simple) | +| **Styling** | Tailwind CSS (via PostCSS) | +| **Icons** | Heroicons or Lucide (inline SVG) | +| **Container** | Nginx Alpine (serves static files) | +| **Port** | 8080 (configurable via env) | +| **Size** | < 50KB total (gzipped) | + +## Project Structure + +``` +tilltheend-website/ +├── Dockerfile # Multi-stage: Node build → Nginx serve +├── docker-compose.yml # Port 8080 (configurable) +├── package.json # Vite + Tailwind +├── tailwind.config.js # Custom colors (orange/purple) +├── vite.config.js # Build config +├── index.html # Single page entry +├── src/ +│ ├── main.css # Tailwind imports + custom styles +│ └── main.js # Minimal JS (if needed) +└── README.md # How to run/deploy +``` + +## Dockerfile + +```dockerfile +# Build stage +FROM node:20-alpine AS builder +WORKDIR /app +COPY package*.json ./ +RUN npm ci +COPY . . +RUN npm run build + +# Serve stage +FROM nginx:alpine +COPY --from=builder /app/dist /usr/share/nginx/html +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] +``` + +## docker-compose.yml + +```yaml +services: + website: + build: . + ports: + - "8080:80" + restart: unless-stopped +``` + +## Deployment Notes + +- Exposes port 8080 +- Can be put behind reverse proxy (Caddy, Traefik, Nginx) +- Static files only — no server-side logic needed +- Build once, deploy anywhere \ No newline at end of file