note taking app with auto sync leetcode and local llm model integration A developer built Daily Routine, a local-first note-taking app that automatically syncs LeetCode submissions and integrates with Obsidian and local LLM models. The app, available as a macOS app and web version, stores notes, keys, and database locally, and includes features like automated LeetCode note creation, reports, multiple routines, and chat with local or API models. I built this app over the weekend as a side project. πŸ› οΈ The problem was simple: after I submit on LeetCode, going back and forth to write notes and save them is painfully manual. I wanted one place for those notes β€” and an automated flow that already talks to Obsidian, because I already have a lot of files sitting in my vault. So in two days I ran a hell of a lot of things and shipped Daily Routine β€” a local SDE-2 / SDE-3 workspace macOS app + web . Notes, keys, and the database stay on your machine. πŸ’»πŸ”’ What landed: - πŸ“₯ LeetCode β†’ notes, automatically Add your username + LEETCODE SESSION. Every new submission is pushed into the app as a file. If that problem already exists, it appends the new solution with tags β€” it does not overwrite. It polls every hour. ⏱️ - πŸ“Š Reports you can actually read Daily, weekly, and monthly reports, plus heatmaps and a calendar. You see the streak, not a feeling. πŸ”₯ - πŸ“… Multiple routines, on Apple Calendar Create more than one routine. Push them to Apple Calendar so the plan is on your phone, not only in the app. - πŸ“ New notes Add a problem, a pattern, or a free note the moment you need it. No export ritual. - 🏷️ Extra properties Add your own fields on notes β€” text, number, date, select, multi-select, checkbox, wikilink. Difficulty, Status, Pattern, next revision… or whatever schema you actually use. - ♻️ Restore deleted files from snapshots Trash is not gone. The latest 10 deletes are snapshotted. Restore the note or folder from Settings β€” including the tree around it. Permanent delete only drops the snapshot. - πŸ”— Obsidian sync Vault write-through both ways. The files you already created in Obsidian come in. Edit in the app or in the vault β€” markdown stays the source of truth. - 🧠 Chat on your files Local models, API models, or OmniRoute. Chat with @notes and /folders. Insights come from your graph, not a generic prompt. - πŸ•ΈοΈ Graphs like Obsidian Problems, patterns, and wikilinks as a real graph β€” not a tag cloud. - 🐘 Postgres, not a JSON dump Notes, submissions, chat, routines, and snapshots persist in Postgres. First run creates the database for you. - βš™οΈ Settings that matter App theme, markdown / code theme, Obsidian + LeetCode sync, extra properties, trash restore, and LLM provider config local, API, OmniRoute in one place. - πŸ” Fuzzy search across files and folders Title, body, properties β€” type a messy query, land on the note. - ↩️ Backlinks Every note shows what points at it. Forward links and backward connectivity, the way a Zettelkasten is supposed to work. Give it a go. Fork it. See it for yourself. πŸ‘€ Happy to take feedback β€” or any feature you wish this had. Web: npm run dev β†’ http://127.0.0.1:8765 http://127.0.0.1:8765 Mac: npm run app 🍏 Repo: https://lnkd.in/ghuwTmfK https://lnkd.in/ghuwTmfK