Initial commit: project specification and README
This commit is contained in:
commit
6abeaf95e7
2 changed files with 170 additions and 0 deletions
29
README.md
Normal file
29
README.md
Normal file
|
|
@ -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.
|
||||
141
SPEC.md
Normal file
141
SPEC.md
Normal file
|
|
@ -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
|
||||
Loading…
Add table
Reference in a new issue