Modern, mobile-first frontend for the Homeland Security Digital Library.
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
Create a .env file:
VITE_API_BASE=https://hsdl-ai.domt.app/api/spa/v1
src/
├── routes/
│ ├── +page.svelte # Home with hero search
│ ├── +layout.svelte # App shell
│ ├── search/ # Search results
│ ├── doc/[id]/ # Document detail
│ ├── browse/ # Taxonomy browser
│ └── chat/ # AI chat (Phase 2)
├── lib/
│ ├── components/
│ │ ├── ui/ # Primitives (Button, Card, etc.)
│ │ ├── search/ # Search components
│ │ └── document/ # Document components
│ ├── stores/ # Svelte stores
│ └── services/
│ └── api.ts # API client
└── app.css # Tailwind + design tokens
The frontend consumes the Rails API at /api/spa/v1/:
| Endpoint | Description |
|---|---|
GET /taxonomy |
Full taxonomy (fields + terms) |
GET /search |
Unified search (semantic/keyword) |
GET /search/suggestions |
Typeahead suggestions |
GET /facets |
Dynamic facet counts |
GET /documents/:id |
Document details |
GET /documents/:id/similar |
Similar documents |
Uses CHDS (Center for Homeland Defense and Security) design tokens:
MIT