A modern web application for managing and sharing context files with a clean, GitHub-inspired interface.
- Clean Design: GitHub-inspired design language with clear interface
- File Upload: Support for drag-and-drop upload of .specs files
- File Download: One-click download of .specs files
- Smart Search: Search by filename and description
- Sorting: Sort by update time, filename, and size
- File Management: View, download, delete, and share functionality
- Content Preview: Click cards to view complete context content
- Online Editing: Edit system prompts and conversation history directly in the interface
- Theme Switching: Support for light/dark mode switching
- Display all .specs files (card format)
- Support for search and sorting
- File operations: view, download, delete, share
- Drag and drop or click to upload .specs files
- Support for multiple file uploads
- File status display
- Preview Mode: View complete context content
- Edit Mode: Online editing of system prompts and conversation history
- Collapsible Areas: System Prompt, conversation history, attachment list
- Real-time Save: Save directly to list after editing
- React 18 - User interface framework
- TypeScript - Type safety
- Tailwind CSS - Styling framework
- Vite - Build tool
- React Router - Route management
- Lucide React - Icon library
cd frontend
npm install
npm run dev
The application will start at http://localhost:3000
.
npm run build
frontend/
├── src/
│ ├── components/ # Components
│ │ ├── Header.tsx # Page header
│ │ ├── UploadModal.tsx # Upload modal
│ │ ├── ContextCard.tsx # File card
│ │ └── ContextViewer.tsx # Context viewer
│ ├── pages/ # Pages
│ │ └── ContextList.tsx # File list page
│ ├── types/ # Type definitions
│ │ └── context.ts # Context file types
│ ├── utils/ # Utility functions
│ │ └── cn.ts # CSS class name merging
│ ├── styles/ # Style files
│ │ └── index.css # Global styles
│ ├── App.tsx # Main application
│ └── main.tsx # Application entry
├── package.json # Project configuration
├── vite.config.ts # Vite configuration
├── tailwind.config.js # Tailwind configuration
└── tsconfig.json # TypeScript configuration
interface ContextFile {
id: string
name: string
description: string
updated_at: string
size: string
system_prompt?: string
conversation?: Message[]
assets?: Asset[]
}
interface Message {
id: string
role: 'user' | 'assistant' | 'system'
content: string
timestamp: string
}
interface Asset {
id: string
name: string
type: string
size: string
url?: string
}
- Click the "View" button on any card in the file list
- Browse the complete content in the popup viewer
- Expand/collapse different content areas
- Click the "Edit" button in the viewer
- Modify system prompts, descriptions, or conversation history
- Click the "Save" button to apply changes
- Add new messages in edit mode
- Delete unwanted messages
- Support for modifying message content
- GitHub Style: Clean card design and layout
- Responsive: Support for desktop and mobile devices
- User-friendly: Clear buttons and status feedback
- Performance Optimized: Fast search and sorting
- Collapsible Interface: Space-saving, improved browsing efficiency