Project Info
Inspiration
We all know that feeling: you open your laptop to study... and suddenly it’s three hours later, you’ve watched five cooking videos, and somehow you’re reading about penguin migration patterns. So we made Locking In, an app that keeps you from wandering into the depths of distraction — by literally watching you (nicely).
What it does
You tell the app what you’re supposed to be doing — “study math,” “code,” “pretend to study math while coding,” whatever. Then the app starts taking screenshots every few seconds to see if you’re actually working or, uh, "researching" memes again. Stay focused? You earn points. Get distracted? Lose points. Your friends can see your score, so there’s extra motivation not to go down a YouTube rabbit hole.
How we built it
We built both the client and server sides, glued them together with an API, and sprinkled in some AI magic to figure out what you’re doing on your screen.
Challenges we ran into
Gemini API had an update that broke everything right when we thought we were done. So yeah, we got some surprise learning opportunities.
Accomplishments we're proud of
The app gives feedback in around 20–30 seconds — fast enough to catch your distraction before you’ve fully spiraled into Wikipedia.
What we learned
The MacOS accessibility API is... an adventure. Let’s just say it taught us patience, resilience, and a deep appreciation for working documentation.
What's next
The core app works, but we’re dreaming big — think “social media meets productivity.” Imagine liking your friend’s focus streaks, sending accountability memes, or competing to see who can stay locked in the longest (without crying).
Analysis
View
Metric
- 3
- 1
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
- HTMLIn code
- ReactIn code
- RustIn code
- SQLIn code
- Tailwind CSSIn code
- TypeScriptIn code
- Google GeminiClaimed
7 of 8 appear in the indexed code. 1 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
109 KB
Source files
40
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
scidroid/lockingin
109 files · 1.2 MB · @ 7ec2a63
Structure
Interface
12 files · 11%Screens, components and styles rendered to the user.
API & routing
14 files · 13%Request entry points: routes, handlers and controllers.
Application logic
19 files · 17%Domain rules, services and shared utilities.
Data & schema
4 files · 4%Schema definitions, migrations and data access.
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
- TypeScript88%
- Rust8%
- Markdown2%
- SQL1%
- HTML1%
- CSS0%
- Other (1)0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
client/package.json
npm · 14- @tailwindcss/vite
- @tauri-apps/api
- @tauri-apps/plugin-opener
- lucide-react
- react
- react-dom
- swr
- tailwindcss
- +6 more
server/package.json
npm · 9- @cloudflare/workers-types
- @google/genai
- @hono/zod-validator
- @libsql/client
- drizzle-orm
- hono
- zod
- +2 more
client/src-tauri/Cargo.toml
cargo · 7- base64
- serde
- serde_json
- tauri
- tauri-plugin-fs
- tauri-plugin-opener
- +1 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.