The site felt old, unfocused and bloated: 11 pages, a features page of 171 bullets, a homepage of 830 words in card grids around seven mockup-style screenshots, and no single thing it wanted a visitor to understand. - Message: control instead of drift. Audience: IT departments in small and mid-sized companies. Goal: buy a licence — netOrk itself is free, the licence adds vulnerability data and image updates. - Home is under 400 words: the drift comparison of a real access point, three steps, the hardware it runs on, vulnerabilities with a licence, what else is in the box, one closing band. Features, Drivers and Roadmap are gone; their URLs redirect (router and nginx 301). - New Pricing page: the free core, Starter / Pro / Enterprise on request with the plan differences from the licence server, four questions; buttons go to the licence portal. The unit-less KB request limit is left out. - Persona pages are one template; NIS2 and Plugins are cut to half or less. Impressum and Datenschutz exist as marked placeholders; the unsupported "MIT licence" claim is gone from the footer. - Look: light paper and ink, the dark product on a stage, Inter self-hosted, split sections and ruled lists instead of cards. Four real, cropped screenshots replace eight full-window ones. - Language follows the browser until someone chooses; <html lang> is set. Scroll-to-top on navigation, a catch-all route, no dead /docs/architecture. - CLAUDE.md, DESIGN.md, PAGES.md and PRODUCT.md describe the new rules. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
27 lines
998 B
TypeScript
27 lines
998 B
TypeScript
// Licence plans as the licence server defines them. Keep in step with
|
|
// license-server/netork_license/modules/{kb,registry}/__init__.py (plan defaults)
|
|
// and docs/PRODUCT.md. Prices are not published: every plan is "on request".
|
|
//
|
|
// The KB request limit (60 / 600 / 6000) is deliberately missing: its unit is
|
|
// not defined yet and nothing enforces it.
|
|
|
|
export const PORTAL_URL = 'https://license.netork.io/portal'
|
|
|
|
export type PlanId = 'starter' | 'pro' | 'enterprise'
|
|
|
|
export type Plan = {
|
|
id: PlanId
|
|
name: string
|
|
vulnData: boolean
|
|
evidence: boolean
|
|
cwe: boolean
|
|
historyDays: 90 | 365 | 3650
|
|
edge: boolean
|
|
}
|
|
|
|
export const PLANS: Plan[] = [
|
|
{ id: 'starter', name: 'Starter', vulnData: true, evidence: false, cwe: false, historyDays: 90, edge: false },
|
|
{ id: 'pro', name: 'Pro', vulnData: true, evidence: true, cwe: true, historyDays: 365, edge: false },
|
|
{ id: 'enterprise', name: 'Enterprise', vulnData: true, evidence: true, cwe: true, historyDays: 3650, edge: true },
|
|
]
|