Commit Graph

7 Commits (7d2926ce77015843165ab94122847dbabe2dd6dc)

Author SHA1 Message Date
boban 2d231fe6b8 fix: bio public /b/{slug} route + QR types + code cleanup
- Add GET /b/{slug} route alias (nimu.li shorthand for bio pages)
- QR wizard: extend type enum to include email, phone, sms, location
- Modals: replace FQCN references with imported class aliases (Pint clean)
- Analytics: add missing Carbon/Builder imports, improve return types
- Octane config: add ResetCurrentWorkspace import
- scripts/crawl-all.sh: curl+PHPUnit based crawler (replaces Playwright)

All 158 tests pass, PHPStan clean, Pint clean.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 16:41:05 +02:00
boban 257d1b94f1 feat: QR wizard, UTM Builder, A/B variants, AI features, analytics URL filters
- QR Code: split-pane wizard with type tabs, live preview canvas, style/frame/advanced options
- UTM Builder modal: generate URL with UTM params, copy + create short link
- A/B Test: LinkVariants modal with auto-balance weights (min 2, max 5 variants)
- AI: SlugSuggester service (3 suggestions via claude-haiku), AI-slug button in CreateLink
- AI pages: /ai/insights, /ai/anomalies, /ai/ab-generator with sidebar entry
- Analytics: #[Url] attributes for range/country/device/linkId, 24h/7d/30d/90d buttons
- QR enum migration (MySQL-only guard) to add email/phone/sms/location types

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 15:14:19 +02:00
boban 00673f3119 fix: Alpine double-load, FOUC, purple accent, logo/favicon
- Remove alpinejs devDep; Livewire v3 owns Alpine lifecycle
- Register sidebar + theme stores via alpine:init event
- @persist sidebar across wire:navigate to prevent re-render
- Inline critical CSS for FOUC prevention on initial load
- Purple #7c3aed accent + pink #ec4899 gradient in both themes
- Light-mode border visibility fix (solid color, not opacity)
- bg-accent-gradient / text-accent-gradient / border-accent-gradient utilities
- Logo mark SVG + full wordmark variants (dark/light/neutral)
- favicon.svg, favicon PNGs, apple-touch-icon, site.webmanifest
- Sidebar uses logo-mark.svg + text-accent-gradient wordmark

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 12:26:14 +02:00
boban 5ac6a198b4 fix: tailwind v4 plugin order + opcache revalidate_freq=0 + npm scripts
- vite.config.js: tailwindcss() vor laravel() Plugin-Reihenfolge (Tailwind v4)
- vite.config.js: refresh-Globs für Livewire + Blade + Lang + CSS
- docker/app/php.ini: opcache.revalidate_freq=0, jit=tracing, memory 512M
- docker/app/Dockerfile: COPY php.ini zu zz-app.ini
- package.json: build:watch + preview + lint scripts ergänzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 10:26:15 +02:00
boban c0f9ee4427 fix: trust proxies + tailwind v4 + debugbar off
- bootstrap/app.php: trustProxies(at: '*') — nginx/NPM forward HTTPS,
  app must trust X-Forwarded-Proto to generate correct https:// URLs
- package.json: tailwindcss v3 → v4, removed @tailwindcss/forms (v3-only)
- .env: DEBUGBAR_ENABLED=false, VITE_DEV_SERVER_URL corrected

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 09:08:03 +02:00
boban 2924ec4bf6 chore(vite): remove PostCSS, route HMR through app.nimuli.com
Tailwind v4 uses its own Vite plugin — PostCSS/autoprefixer not needed.
Nginx now proxies Vite dev paths to host:5173 so HMR works without a
separate vite.nimuli.com proxy host.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 08:47:25 +02:00
boban 25dddf5293 feat: initial Nimuli scaffold with Laravel 12, Livewire 3, Octane, Reverb, Docker
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 23:51:57 +02:00