Project Info
This project did not submit a demo video on Devpost.
Inspiration
As students and tech enthusiasts, we use many different platforms day-to-day, oftentimes completing a wide range of tasks while also expanding our digital footprints and knowledge bases. With this resourcefulness arises a problem: Wasting time combing through different platforms with the faintest idea of where something might be, opening a plethora of different tabs, or distributing information to pesky paid services. Managing everything from midterm season to hackathon deadlines, to finding the perfect photograph, and wasting time by searching your work is what Sift aims to combat.
What it does
Sift allows you to simultaneously search files in your filesystem, GitHub, Notion, Slack, Discord, and the Google Suite, simply with natural language. You can view your files directly in Sift's interface, and get a specialized summary in real-time based on the context of your query, with the power of Groq, streamlining your workflow.
How we built it
Sift uses the Tauri framework to bundle together a robust Rust-based backend with a Next.js/React frontend, running an optimized build for either Mac or Windows natively. By powering all of our services through Rust, we're able to maintain blazingly fast real-time search speeds while maintaining familiarity with the frontend. Using Rust, we also integrate with multiple OAuth APIs over Sockets, and run a wrapped version of ChromaDB through our backend, allowing us to contain every service entirely on-device with a custom set of Python bindings. By using Chroma, we're able to use natural language to simultaneously query multiple knowledge bases (with Multimodal Embeddings) for relevant data, returning the most confident results to the user. Upon that, Groq generates instant inference to speed up your search, and you can preview files with Rust and Next.js bindings through Tauri.
Challenges we ran into
OAuth Integrations on the Desktop / In Rust Lack of Browser APIs in the Tauri Environment Building for Cross-Platform Compatability Using Inference to determine Actionable Files Querying hundreds of thousands of files in seconds
Accomplishments we're proud of
Learning Rust from start to finish. Learning Vector Databases, including embeddings and metadata Building our first end-to-end Desktop App Containing everything on-device for security and efficiency
What we learned
Rust 🦀 Desktop App Development Vector Databases Binding Rust, Python, and TypeScript SDKs simultaneously How to Sleep during a Hackathon
What's next
In the future, we plan to add inference functionality that suggests actions to take in real-time, such as managing calendar events, starting a note, or running code processes. Also, implementing focus-based search is something that really intrigues us as we look forward in Sift's journey, and specializing the platform's tools for different knowledge bases can empower your workflow with Sift even further.
Inspiration
As students and tech enthusiasts, we use many different platforms day-to-day, oftentimes completing a wide range of tasks while also expanding our digital footprints and knowledge bases. With this resourcefulness arises a problem: Wasting time combing through different platforms with the faintest idea of where something might be, opening a plethora of different tabs, or distributing information to pesky paid services. Managing everything from midterm season to hackathon deadlines, to finding the perfect photograph, and wasting time by searching your work is what Sift aims to combat.
What it does
Sift allows you to simultaneously search files in your filesystem, GitHub, Notion, Slack, Discord, and the Google Suite, simply with natural language. You can view your files directly in Sift's interface, and get a specialized summary in real-time based on the context of your query, with the power of Groq, streamlining your workflow.
How we built it
Sift uses the Tauri framework to bundle together a robust Rust-based backend with a Next.js/React frontend, running an optimized build for either Mac or Windows natively. By powering all of our services through Rust, we're able to maintain blazingly fast real-time search speeds while maintaining familiarity with the frontend. Using Rust, we also integrate with multiple OAuth APIs over Sockets, and run a wrapped version of ChromaDB through our backend, allowing us to contain every service entirely on-device with a custom set of Python bindings. By using Chroma, we're able to use natural language to simultaneously query multiple knowledge bases (with Multimodal Embeddings) for relevant data, returning the most confident results to the user. Upon that, Groq generates instant inference to speed up your search, and you can preview files with Rust and Next.js bindings through Tauri.
Challenges we ran into
- OAuth Integrations on the Desktop / In Rust
- Lack of Browser APIs in the Tauri Environment
- Building for Cross-Platform Compatability
- Using Inference to determine Actionable Files
- Querying hundreds of thousands of files in seconds
Accomplishments that we're proud of
- Learning Rust from start to finish.
- Learning Vector Databases, including embeddings and metadata
- Building our first end-to-end Desktop App
- Containing everything on-device for security and efficiency
What we learned
Rust 🦀
- Desktop App Development
- Vector Databases
- Binding Rust, Python, and TypeScript SDKs simultaneously
- How to Sleep during a Hackathon
What's next for Sift
In the future, we plan to add inference functionality that suggests actions to take in real-time, such as managing calendar events, starting a note, or running code processes. Also, implementing focus-based search is something that really intrigues us as we look forward in Sift's journey, and specializing the platform's tools for different knowledge bases can empower your workflow with Sift even further.
Analysis
View
Metric
- 67
- 20
- 19
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FastAPIIn code
- HTMLIn code
- Next.jsIn code
- PythonIn code
- ReactIn code
- RustIn code
- Tailwind CSSIn code
- TypeScriptIn code
- JavaScriptClaimed
- Node.jsClaimed
9 of 11 appear in the indexed code. 2 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
185 KB
Source files
60
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
abhi-arya1/siftai
109 files · 1.5 MB · @ 57b9493
Structure
Interface
29 files · 27%Screens, components and styles rendered to the user.
+1 moreApplication logic
33 files · 30%Domain rules, services and shared utilities.
+2 more
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript50%
- Rust23%
- Python14%
- CSS7%
- HTML3%
- Markdown3%
- Other (1)0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
src-tauri/pybindings/requirements.txt
pypi · 92- altgraph
- annotated-types
- anyio
- asgiref
- backoff
- bcrypt
- build
- cachetools
- certifi
- charset-normalizer
- chroma-hnswlib
- chromadb
- click
- coloredlogs
- Deprecated
- durationpy
- fastapi
- filelock
- +74 more
package.json
npm · 41- @emotion/react
- @emotion/styled
- @fortawesome/fontawesome-svg-core
- @fortawesome/free-brands-svg-icons
- @fortawesome/react-fontawesome
- @headlessui/react
- @mui/icons-material
- @nextui-org/kbd
- @radix-ui/react-icons
- @radix-ui/react-scroll-area
- @tabler/icons-react
- @tauri-apps/api
- @types/katex
- @types/prismjs
- autoprefixer
- chromadb
- chromadb-default-embed
- class-variance-authority
- +23 more
src-tauri/Cargo.toml
cargo · 35- actix-cors
- actix-files
- actix-web
- anyhow
- async-recursion
- async-std
- base64
- chromadb
- crossbeam-channel
- dirs
- dotenv
- dotenvy
- futures
- ignore
- lru-cache
- mime_guess
- num_cpus
- octocrab
- +17 more
sift-landing/package.json
npm · 26- @fortawesome/free-brands-svg-icons
- @fortawesome/react-fontawesome
- @radix-ui/react-dropdown-menu
- @radix-ui/react-icons
- @radix-ui/react-navigation-menu
- @radix-ui/react-slot
- @radix-ui/react-toggle
- @tabler/icons-react
- class-variance-authority
- clsx
- framer-motion
- ldrs
- lucide-react
- next
- next-themes
- react
- react-dom
- react-icons
- +8 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.