03 Business Site 2026

NISTA IT NISTA IT

Security expertise deserves a credible web presence.Sicherheitskompetenz braucht einen glaubwürdigen Webauftritt.

Full Stack Dev + UX Full Stack Dev + UX

B2B website for an IT security and surveillance company. Custom editorial system built into the codebase — no CMS subscription, no vendor dependency, security-first architecture throughout. B2B-Website für ein IT-Sicherheitsunternehmen. Eigenes Redaktionssystem im Code — kein CMS-Abo, keine Vendor-Abhängigkeit, durchgehend sicherheitsorientierte Architektur.

NISTA IT

An IT security company's website needs to earn credibility before it earns leads. The previous presence didn't match the team's expertise. They needed to publish industry articles regularly — but WordPress felt wrong, and a SaaS CMS felt like paying for something they shouldn't need. Die Website eines IT-Sicherheitsunternehmens muss Glaubwürdigkeit aufbauen, bevor sie Leads generiert. Der bisherige Auftritt entsprach nicht der Expertise. Regelmäßige Fachartikel — aber ohne WordPress oder teures SaaS.

~/work/nista-it/process.md
The client's core business is security and reliability. Their website had to embody that — not just describe it.

Custom admin panel built into the codebase: JWT auth, role-based access (editor/admin), SQLite-backed content, rate-limited endpoints. GDPR-compliant cookie banner with granular consent categories. Analytics with 180-day retention and automatic cleanup. Bot guard enabled by default.

Production hardening: server refuses to start with weak credentials or missing CORS/Host configuration. No vendor, no subscription, no black box.
Kernkompetenz des Kunden: Sicherheit und Zuverlässigkeit. Die Website musste das verkörpern, nicht nur beschreiben.

Eigenes Admin-Panel: JWT-Auth, rollenbasierter Zugriff, SQLite, Rate-Limiting. DSGVO-konformes Cookie-Banner, Analytics mit 180-Tage-Retention, Bot Guard. Der Server startet in Produktion nicht mit schwachen Zugangsdaten.

Production startup gate — refuses to run with weak config Production-Startup-Gate — startet nicht mit schwacher Konfiguration

typescript
// server/index.ts — enforced before the first request is handled
if (process.env.NODE_ENV === 'production') {
  const required = ['JWT_SECRET', 'CORS_ORIGIN', 'ALLOWED_HOST'];
  const missing = required.filter((k) => !process.env[k]);

  if (missing.length > 0) {
    console.error(`[startup] Missing required env: ${missing.join(', ')}`);
    process.exit(1);
  }

  if ((process.env.JWT_SECRET?.length ?? 0) < 32) {
    console.error('[startup] JWT_SECRET must be ≥ 32 characters in production');
    process.exit(1);
  }
}

The server refuses to start with a weak config. No fallback, no defaults. For a security company this is not a feature — it is a minimum. Der Server startet nicht mit schwacher Konfiguration. Kein Fallback, keine Defaults. Für ein Sicherheitsunternehmen ist das kein Feature — es ist das Minimum.

JWT auth middleware with role-based access JWT-Auth-Middleware mit rollenbasiertem Zugriff

typescript
// server/middleware/auth.ts
export function requireRole(role: 'editor' | 'admin') {
  return (req: Request, res: Response, next: NextFunction) => {
    const token = req.headers.authorization?.split(' ')[1];
    if (!token) return res.status(401).json({ error: 'Unauthorized' });

    try {
      const payload = jwt.verify(token, process.env.JWT_SECRET!) as JwtPayload;
      if (role === 'admin' && payload.role !== 'admin') {
        return res.status(403).json({ error: 'Forbidden' });
      }
      req.user = payload;
      next();
    } catch {
      res.status(401).json({ error: 'Invalid token' });
    }
  };
}

Admin routes require admin. Editor routes accept both. The distinction is enforced at the middleware layer — never at the handler. Admin-Routen erfordern Admin. Editor-Routen akzeptieren beide. Die Unterscheidung wird auf Middleware-Ebene durchgesetzt — nie im Handler.

Production-hardened B2B site: built-in editorial CMS with JWT auth, GDPR-compliant analytics, ETag caching for blog endpoints, bot guard, rate limiting, and zero third-party CMS dependency. Produktionsgehärtete B2B-Website: integriertes CMS mit JWT-Auth, DSGVO-Analytics, ETag-Caching, Bot Guard, Rate-Limiting — ohne externe CMS-Abhängigkeit.

Audience

Zielgruppe

B2B procurement teams and IT managers in the DACH region. Skeptical of marketing claims. Value proof over promises. Evaluate vendors on technical credibility before price.

B2B-Einkaufsteams und IT-Manager in der DACH-Region. Skeptisch gegenüber Marketing. Bewerten nach Belegen, nicht Versprechen. Technische Glaubwürdigkeit vor Preis.

Positioning

Positionierung

Security expertise should look secure. The site's architecture — no third-party CMS, no tracking pixels, no black boxes — is itself a credibility signal to a technically literate audience.

Sicherheitskompetenz sollte sicher aussehen. Die Architektur der Website — kein Fremd-CMS, keine Tracking-Pixel, keine Black Boxes — ist selbst ein Glaubwürdigkeitssignal.

Tone of Voice

Tonalität

Technical, precise, and proof-first. No marketing fluff. Claims are backed by specifics. Speaks to the technical evaluator, not the executive summary reader.

Technisch, präzise, belege-zuerst. Kein Marketing-Blabla. Aussagen werden durch Spezifika gestützt. Spricht den technischen Evaluator an, nicht den Executive-Summary-Leser.

Visual Direction

Visual Direction

Dark and structured. Monospace type signals technical credibility. Conservative palette (dark tones, accent blue) that communicates reliability and precision, not approachability.

Dunkel und strukturiert. Monospace-Type signalisiert technische Glaubwürdigkeit. Konservative Palette (Dunkeltöne, Akzentblau) für Zuverlässigkeit und Präzision.

// stack

  • React
  • TypeScript
  • Vite
  • Node.js
  • Express
  • SQLite