Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
Routine `stats.json` refreshes take a PATCH version bump but are grouped rather than
listed individually.

## [0.26.1] - 2026-09-21

### Changed
- Home gains a fifth card, *The layer above the lines*, linking to `/platform`; About's "who" paragraph names the platform layer (en + ko); a neutral `--line-platform` accent.

## [0.26.0] - 2026-09-21

### Added
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.26.0
0.26.1
1 change: 1 addition & 0 deletions public/design/components.css
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@
.line-procurement { --line: var(--line-procurement); }
.line-manufacturing { --line: var(--line-manufacturing); }
.line-opsentry { --line: var(--line-opsentry); }
.line-platform { --line: var(--line-platform); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (max-width: 640px) {
Expand Down
2 changes: 2 additions & 0 deletions public/design/tokens.css
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
--line-procurement: #1baf7a;
--line-manufacturing: #eb6834;
--line-opsentry: var(--brand);
--line-platform: var(--ink-2, #4b5563);

/* status / severity — fixed, never themed, never a series */
--sev-critical: #d03b3b;
Expand Down Expand Up @@ -106,6 +107,7 @@
--line-procurement: #199e70;
--line-manufacturing: #d95926;
--line-opsentry: var(--brand);
--line-platform: var(--ink-2, #9ca3af);
--sev-low: #9ca3af;
--surface-0: #121417;
--surface-1: #1a1d21;
Expand Down
1 change: 1 addition & 0 deletions src/components/Home.astro
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ const n = copy.numbers;
<ProductCard card={copy.lines.procurement} line="procurement" />
<ProductCard card={copy.lines.manufacturing} line="manufacturing" />
<ProductCard card={copy.lines.opsentry} line="opsentry" />
<ProductCard card={copy.lines.platform} line="platform" />
</div>
</section>

Expand Down
2 changes: 1 addition & 1 deletion src/components/ProductCard.astro
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
import type { LineCard } from '../i18n/home';
interface Props { card: LineCard; line: 'fraud' | 'procurement' | 'manufacturing' | 'opsentry' }
interface Props { card: LineCard; line: 'fraud' | 'procurement' | 'manufacturing' | 'opsentry' | 'platform' }
const { card, line } = Astro.props;
---
<article class={`card line-${line}`}>
Expand Down
4 changes: 2 additions & 2 deletions src/i18n/about.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export const about: Record<AboutLocale, AboutCopy> = {
heading: 'Who',
body: [
'Opsight Intelligence is built and run from Korea by a small team with a background in OSINT entity classification, procurement data and manufacturing analytics. The platform is one codebase per line on one shared bus, collecting nightly on a single schedule.',
'Three lines are live — fraud, procurement, manufacturing — and one product, OpSentry, is open source. The platform runs where the data lives; nothing is hosted for a client that the client has not asked for.',
'Three lines are live — fraud, procurement, manufacturing — one product, OpSentry, is open source, and above the lines sits a platform layer: one entity across them, nightly sanctions screening, the corporate registry, and a consortium exchange that shares hashes and bands. The platform runs where the data lives; nothing is hosted for a client that the client has not asked for.',
],
},
where: {
Expand Down Expand Up @@ -74,7 +74,7 @@ export const about: Record<AboutLocale, AboutCopy> = {
heading: '누가',
body: [
'Opsight Intelligence는 OSINT 엔티티 분류, 조달 데이터, 제조 분석 배경을 가진 소규모 팀이 한국에서 만들고 운영합니다. 플랫폼은 라인별 하나의 코드베이스가 하나의 공유 버스 위에서, 하나의 일정으로 매일 밤 수집합니다.',
'세 개의 라인 — 사기, 공공조달, 제조 — 이 운영 중이고, OpSentry 하나는 오픈소스 제품입니다. 플랫폼은 데이터가 있는 곳에서 돌아가며, 고객이 요청하지 않은 것을 고객 대신 호스팅하지 않습니다.',
'세 개의 라인 — 사기, 공공조달, 제조 — 이 운영 중이고, OpSentry 하나는 오픈소스 제품이며, 라인 위에는 플랫폼 계층이 있습니다: 라인을 가로지르는 하나의 엔터티, 매일 밤의 제재 스크리닝, 기업 등기, 해시와 구간만 교환하는 컨소시엄. 플랫폼은 데이터가 있는 곳에서 돌아가며, 고객이 요청하지 않은 것을 고객 대신 호스팅하지 않습니다.',
],
},
where: {
Expand Down
18 changes: 16 additions & 2 deletions src/i18n/home.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export interface HomeCopy {
description: string;
hero: { eyebrow: string; title: string; lead: string; lifecycle: string; primary: string; primaryHref: string; secondary: string; secondaryHref: string };
numbers: { heading: string; lead: string; entities: string; clusters: string; notices: string; awards: string };
lines: { heading: string; lead: string; fraud: LineCard; procurement: LineCard; manufacturing: LineCard; opsentry: LineCard };
lines: { heading: string; lead: string; fraud: LineCard; procurement: LineCard; manufacturing: LineCard; opsentry: LineCard; platform: LineCard };
honesty: { badge: string; title: string; body: string };
contact: { heading: string; lead: string; emailLabel: string; lineLabel: string; linePlaceholder: string; hint: string; button: string; mailto: string };
}
Expand Down Expand Up @@ -49,7 +49,7 @@ export const home: Record<HomeLocale, HomeCopy> = {
awards: 'Awards with winning price',
},
lines: {
heading: 'Three intelligence lines, one platform',
heading: 'Three intelligence lines, one platform above them',
lead: 'Specialized engines that publish to the same bus, so signals stay comparable and auditable across markets.',
fraud: {
badge: 'Fraud',
Expand Down Expand Up @@ -79,6 +79,13 @@ export const home: Record<HomeLocale, HomeCopy> = {
action: 'Install free →',
href: '/opsentry',
},
platform: {
badge: 'Platform',
title: 'The layer above the lines',
body: 'One entity per firm, account or wallet across every line, screened nightly against the sanctions lists, enriched from the corporate registry, and a consortium exchange where institutions corroborate a mule signal by hash and band — never a customer.',
action: 'See the four layers →',
href: '/platform',
},
},
honesty: {
badge: 'What is real',
Expand Down Expand Up @@ -150,6 +157,13 @@ export const home: Record<HomeLocale, HomeCopy> = {
action: '무료 설치 →',
href: '/ko/opsentry',
},
platform: {
badge: '플랫폼',
title: '라인 위의 계층',
body: '모든 라인에 걸쳐 회사·계정·지갑마다 하나의 엔터티, 매일 밤 제재 명단 대조, 기업 등기 정보 보강, 그리고 기관들이 고객 정보 대신 해시와 구간으로 자금세탁 신호를 교차 확인하는 컨소시엄 교환.',
action: '네 개의 계층 보기 →',
href: '/ko/platform',
},
},
honesty: {
badge: '무엇이 실제인가',
Expand Down
Loading