All projects

evig

Admin platform — 30+ sections, 165 tables

Beta — running, not released

Problem

Electronic waste and lack of access to technology for those in need.

Solution

Revamp-IT provides refurbished technology to those in need, while promoting sustainability and digital inclusion.

Mission

To provide refurbished technology to those in need, while promoting sustainability and digital inclusion.

Vision

A world where technology is accessible to all, and electronic waste is minimized.

Technical context

The stack has not been written down yet.

Investigate this project with Loki →

Sign in to ask about architecture, evidence, delivery risks and next steps in your workspace.

Roadmap

  1. Verein in Gründung, said plainly

    in progress · 3/5 steps done

    • Every public page states "Verein in Gründung" instead of a recognised status — done
    • Donation-receipt claims and invented UIDs removed from the site — done
    • The "not a charity" line removed — it contradicted the legal page — done
    • Association registered — not done
    • Cantonal recognition as gemeinnützig (only then do receipts become possible) — not done
    Where this comes from
  2. Three divisions, one idea

    in progress · 5/5 steps done

    • evig computers live on the marketplace with one checkout for refurbished stock and community listings — done
    • evig technicians live on IT-Hilfe: post a request, receive offers from technicians nearby, choose one — done
    • evig ai live with a stated boundary: not a research lab, no magic, no lock-in — done
    • Division wordmarks, nav entries, footer column and division pages derive from one list — done
    • Homepage states the five pillars instead of a donation funnel — done
    Where this comes from
  3. Quality control before anything reaches the shop

    in progress · 6/7 steps done

    • One capture contract: text, photo, CSV/Excel and speech normalise into the same product schema — done
    • Pass / fail / n.a. verdicts on every checklist item, serialised on a row lock — done
    • A failed required item puts the device in the failed state and blocks the shop — done
    • Audited one-click "publish without QC" path — the listing then carries no Prüfsiegel and buyers see the untested state — done
    • Vier-Augen-Prinzip in final QA with an audited solo override — done
    • QR device labels linking the physical device to its pipeline record — done
    • Retire the legacy capture write endpoint and the Kivvi-only CSV import once caller telemetry shows zero use — not done
    Where this comes from
  4. CO₂ figures with an open methodology

    in progress · 3/4 steps done

    • Per-category factors from ADEME/ARCEP open data, guarded by a test that rejects uncited numbers — done
    • Public methodology page with formula, sources and limits — done
    • CO₂ badge per marketplace listing, absent where the estimate would not be defensible — done
    • Extend factor coverage as further open data becomes available — not done
    Where this comes from
  5. Building in public

    in progress · 3/3 steps done

    • Public changelog with versioned release notes — done
    • Roadmap and changelog kept as plain records in the repository — done
    • Public roadmap page rendering the fleet's canonical record — done
    Where this comes from
  6. Promo codes and gift cards at checkout

    planned · 1/4 steps done

    • Promo-code foundation with a tested discount engine — done
    • Admin issuance surface — not done
    • Redemption across marketplace, workshop and appointment checkout, including a 100%-off path that skips the payment gateway — not done
    • Purchasable gift cards with a depleting balance on the same rail — not done
    Where this comes from
  7. Reparaturbonus Zürich

    planned · 1/2 steps done

    • Public page explaining the programme — done
    • Bonus redemption on a repair request — not done
    Where this comes from
  8. More ways to pay

    planned · 3/4 steps done

    • Payrexx live, escrow-capable, backing the community marketplace flow — done
    • BTCPay (Bitcoin, CHF-denominated) integrated in code, hidden at checkout until a server is provisioned — done
    • GNU Taler adapter in the registry, same status — done
    • BTCPay server provisioned and enabled at checkout — not done
    Where this comes from
  9. Kivvi as the canonical ERP

    planned · 1/4 steps done

    • Non-blocking inventory sync to Kivvi after device capture — done
    • One customer/vendor master in Kivvi — not done
    • Swiss QR-bill invoicing from Kivvi — not done
    • Accounting canonical in Kivvi once opening balances reconcile — not done
    Where this comes from
  10. Distribution without ads

    planned · 2/4 steps done

    • Blog with RSS, JSON-LD, hreflang and localised dates — done
    • Newsletter signup wired to a self-hosted Listmonk — done
    • Weekly post, monthly digest, every post linking a purchasable surface — not done
    • Mastodon account on our own instance, cross-posting each post — not done
    Where this comes from
  11. Fleet orders for Vereine, schools and municipalities

    later

    Where this comes from
  12. A real build-from-inventory matcher

    later

    Where this comes from
  13. Marketplace discovery

    later

    Where this comes from
  14. Role-aware onboarding and richer profiles

    later

    Where this comes from
  15. Refocus on affordable intelligence

    done · 4/4 steps done

    • evig architecture and evig health removed; they were personal research and now live on orangecat.ch — done
    • evig repairs renamed to evig technicians — the name describes what the user is looking for — done
    • Services catalogue reduced to four entries; placement in the nav is data, tested — done
    • evig stops asking for printer donations — done
    Where this comes from
  16. Marketplace parity that serves the mission

    done · 4/4 steps done

    • Server-rendered listing detail with metadata, breadcrumbs and JSON-LD Product/Offer — done
    • Seller reputation: star histogram, verified-purchase reviews, seller responses — done
    • Stated refurbished guarantee — 6-month warranty and 14-day return — sourced from the AGB, shown only on evig stock — done
    • Paid listings no longer stay reserved forever: one completion path — done
    Where this comes from
  17. Security and correctness

    done · 6/6 steps done

    • Cron authentication denies by default on every route — done
    • A vote is cast by whoever proves their identity, not whoever types an email — done
    • Money routes authorise on the finance permission, not the bare staff flag — done
    • Payment throttle keyed on the hop the proxy wrote, not a header the caller controls — done
    • Five baseline security headers, CSP in report-only — done
    • Invoices charge the current VAT rate from one source — done
    Where this comes from
  18. Design system discipline

    done · 4/4 steps done

    • 116 hand-rolled card shells normalised to the Card primitive; the ratchet holds at 3 — done
    • Set-state-in-effect warnings cleared and locked at error — done
    • Eight modal dialogs gained a focus trap and Escape — done
    • Every nav target is at least 44px — done
    Where this comes from
  19. Platform

    done · 4/4 steps done

    • Resend as the primary email provider through the shared mail kit — done
    • AI provider chain through the shared ai kit, with a health endpoint that reports what it observes — done
    • pnpm 11, TypeScript 6, Node 24, vitest — done
    • Production at evig.orangecat.ch with a 308 redirect from the retired host — done
    Where this comes from

Changelog

  1. June 16, 2026

    Fewer clicks, faster paths. Login and registration respect callbackUrl again — checkout and deep links return to the right place after sign-in. Marketplace checkout loads listings on the server; no double spinner from session + API waterfall. Dashboard has persistent quick navigation; lean layout without floating assistants on task pages. Legacy /shop/product/:uuid redirects to the marketplace listing when a match exists. IT-Hilfe request: describe the problem immediately; AI assist collapsed by default. Admin sidebar auto-expands the active group — one fewer click per visit.

  2. June 16, 2026

    Shop unified into marketplace. /shop, /shop/search, /shop/category/..., and /shop/product/... now redirect into the canonical marketplace. Navigation, sitemap, chatbot suggestions, and shop URL helpers no longer generate new /shop links. evig listings are consistently marked by explicit flag or staff email; other sellers use neutral labeling. Payrexx-backed payments now stop in production with a setup message until a Payrexx account is configured.

  3. June 16, 2026

    Self-host deploy hardened. Production target clearly documented as revampit.orangecat.ch; revamp-it.ch remains marked as the legacy domain. Deploy script now keeps a release backup before activation and automatically rolls back when the health check fails. Self-host releases inherit server-local .env and launch.sh files so secrets and systemd launch logic stay out of the repository. GitHub deploy workflow now runs lint and typecheck before production deploy. New /api/version endpoint exposes app version, git SHA, and build time for monitoring and deploy verification. Meilisearch now runs on the Hetzner server as a localhost-only Docker service and /api/health reports healthy again.

  4. June 16, 2026

    Homepage and marketplace hierarchy realigned. Homepage CTAs moved from device donation to refurbished purchasing and repair discovery. Marketplace mega menu now prioritizes shop, community listings, technician search, and help requests before supply/contribution paths. IT-Hilfe hub now starts with technician and workshop discovery instead of the request form. Blog rationale documents the business, design, and engineering decision behind the new information hierarchy.

  5. June 15, 2026

    evig Platform 0.1.0. Design system migration complete: admin and dashboard surfaces now use semantic tokens and card-shell throughout. Removed legacy CSS aliases — globals.css is now the sole source for surface, text, and accent tokens. Project-wide ESLint design rules set to error: no raw buttons/inputs outside the UI kit. Unified overlay shadows to shadow-xs; static cards no longer use shadow-lg.

  6. June 14, 2026

    evig Platform 0.0.9. Rolled out ui-public-* utilities across marketing, shop, and IT-Hilfe pages. Semantic design tokens on public surfaces — no more hardcoded neutral-* classes. Self-host deploy script and GitHub Actions workflow for Hetzner documented.

  7. June 10, 2026

    evig Platform 0.0.8. Refactored upcycling mini-site with scroll-spy table of contents on the business plan. Navigation i18n fix: projects mega-menu shows translated labels instead of raw keys. Technician profile pages and public technician list refreshed. Per-page og:image for upcycling subpages — social shares now show preview images.

  8. June 5, 2026

    evig Platform 0.0.7. Admin protocol votes now bridge into tasks; legacy voting removed. Removed task analytics page; compressed task creation form. Auth documentation and dashboard onboarding aligned with live JWT stack.

  9. May 28, 2026

    evig Platform 0.0.6. Fixed malformed quick-entry hover classes in device intake (Erfassung). Unified admin interactive hovers to SSOT utilities. Consolidated tasks default filter and inline actions.

Roadmap and changelog come from this project's canonical development record, read September 28, 2026.