saiashirwad zero-sync-demo .cursorrules file for TypeScript

* A block based editor like logseq or remnote but with a focus on vim like keybindings and motions.
* It also comes built in with a code editor block that has access to other blocks in the same document or any other document.
* We eventually want to have things like tables etc.
* It is going to be entirely local first, so something like indexed db based sync.
* The code is going to be written in react. the styling is going to be tailwind.
* The code should be written in typescript.
* The code should be written in a way that is easy to understand and maintain.
* We should have most of the logic of the code separated away from the view/templating bits
* The editor really emphasizes the use of keyboard shortcuts and motions.
* The editor should also be very fast and be able to handle thousands of blocks per page with no performance issues.
* the design should be very clean and modern. mostly grays. the editor goes full width.
* something else i want is, i should be able to open a block and then have it and all of it's children as a whole new page. that's just a view, of course, so when we're talking about depth, that's something to consider. a block might have a depth of 5, but when it's open as a new page, it should be a depth of 0.
* we really don't want heading blocks. i want all blocks to be the same size
* we also need a concept of pages. a page can contain multiple blocks (along with their children, etc, of course)
* we need to have a concept of a block reference. a block reference is a block that references another block. it's just a block that has a referenceId property.
* we want to use quickjs for the code blocks so we can't just use the browser's javascript engine.
* later, this is basically going to end up like a note taking app + observable notebooks and a code editor. all in one.
* for styling dynamic things, let's use data attributes. 
* we're using react-aria-components for UI components.
* we're using lucide icons for icons.
* we will use signalstore https://signaldb.js.org/getting-started/ for state management, with indexeddb. we will eventually set up sync, but not right now
css
golang
html
java
javascript
react
shell
tailwindcss
+1 more

First Time Repository

TypeScript

Languages:

CSS: 0.0KB
HTML: 0.4KB
Shell: 0.3KB
TypeScript: 36.7KB
Created: 1/8/2025
Updated: 1/8/2025

All Repositories (1)