mirror of
https://github.com/Such-Software/such.software.git
synced 2026-10-17 05:32:05 +02:00
4.1 KiB
4.1 KiB
Such Software - TODO
Before Production
- Turnstile keys - Set
NEXT_PUBLIC_TURNSTILE_SITE_KEYandTURNSTILE_SECRET_KEYin production environment
Nice to Have
- Rate limiting - Turnstile handles bots; add rate limiting only if abuse observed
- Manual screen reader testing (NVDA, VoiceOver)
- Further canvas performance optimization
- Blog migration - Move to MDX/Contentlayer when post count grows
Future Projects
- Decision making app (mobile app with web demo)
Architecture Notes (Feb 2026)
Blog Options
| Option | Pros | Cons | Best For |
|---|---|---|---|
| MDX in repo | Simple, version controlled, no deps | Dev-only editing, rebuild to publish | Tech blog, infrequent posts |
| Contentlayer | Type-safe MDX, great DX with Next.js | Learning curve, config overhead | Structured content, many posts |
| Headless CMS (Sanity/Payload) | Non-dev editing, media management | External dependency, cost at scale | Team editing, media-heavy |
Recommendation: Start with MDX in apps/web/src/content/blog/, add Contentlayer if it grows.
New App Architecture
Option A: Monorepo (web demos)
apps/
web/ # such.software
puzzle-demo/ # Vite or Next.js
decision-demo/ # Vite or Next.js
packages/
ui/ # Shared (already exists)
- ✅ Share
@repo/ui, unified CI/CD, easy cross-linking - ❌ Coupled deploys, heavier repo
Option B: Separate repos + subdomains
puzzle.such.software→ own repodecide.such.software→ own repo- ✅ Independent deploys, clean separation
- ❌ No shared packages, more repos to manage
Option C: Hybrid (recommended)
- Web demos in this monorepo (lightweight, share UI)
- Mobile apps in separate repos (React Native/Expo needs own tooling)
- Link from such.software portfolio to demos
Mobile Considerations
- React Native/Expo likely needs separate repo due to tooling differences
- Web demos can use same game logic via shared
packages/if extracted - Consider Expo Web for code sharing between mobile and web demo
Completed
Products & Blog (February 2026)
- Products section - Landing page + 4 product pages (Webshops, Custom Websites, Smirk Wallet, Bauhaus Echo)
- Bauhaus Echo - Full product page with game modes, features, app store links, privacy policy
- Smirk Wallet - Full product page with features, supported currencies, community links
- Blog infrastructure - Blog listing with draft system, individual post pages
- Blog posts - Website Relaunch (published), Smirk Wallet v0.1.6 (published), Bauhaus Echo Launch (draft)
- Mobile bottom navigation - Fixed nav bar for mobile with 5 items (Home, Products, Services, Blog, About)
- Header updates - Desktop nav now includes Products and Blog links
- Portfolio bento grid - Added Smirk Wallet card (1x2 tall)
- Footer/About - Replaced Reddit with Discord, added jwinterm.com link
Lighthouse Scores (January 2026)
| Page | Performance | Accessibility | SEO | Best Practices |
|---|---|---|---|---|
| Home | 99% | 100% | 100% | 77%* |
| Services | 98% | 100% | 100% | 100% |
| About | 99% | 100% | 100% | 100% |
*Home 77% Best Practices due to Cloudflare Turnstile third-party cookies.
Accessibility & Compliance
- WCAG 2.2 AA compliance (100% Lighthouse)
- Section 508 & ADA compliance
- Semantic HTML5 architecture
- Playwright a11y automation (42 tests, chromium/firefox/webkit)
- Color contrast fixes (emerald-600 → emerald-700)
- Heading hierarchy (h1 → h2 → h3 → h4)
prefers-reduced-motionsupport in NebulaField- Skip-to-main link, ARIA labels, form accessibility
SEO
- Meta descriptions and OpenGraph on all pages
- Structured data (JSON-LD Organization schema)
- Canonical URLs on all pages
Performance
- Lazy loaded NebulaField with
next/dynamic+requestIdleCallback - Removed debug console.log statements
Infrastructure
- Cloudflare Turnstile bot protection
.env.exampletemplatepnpm startscript