Something went wrong. Try again.
A local-first note taking app
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293{ "name": "textile", "productName": "Textile", "version": "1.0.0", "description": "Textile — a local-first text editor with extensible workspaces", "main": ".vite/build/main.js", "private": true, "scripts": { "start": "electron-forge start", "package": "electron-forge package", "make": "electron-forge make", "publish": "electron-forge publish", "lint": "eslint --ext .ts,.tsx .", "format": "prettier --write .", "format:check": "prettier --check .", "test": "vitest run", "test:e2e": "playwright test", "test:e2e:fast": "E2E_SKIP_BUILD=1 playwright test", "test:watch": "vitest", "prepare": "git config core.hooksPath .githooks || true" }, "keywords": [], "author": "ethan", "license": "MIT", "devDependencies": { "@electron-forge/cli": "^7.11.1", "@electron-forge/maker-deb": "^7.11.1", "@electron-forge/maker-rpm": "^7.11.1", "@electron-forge/maker-squirrel": "^7.11.1", "@electron-forge/maker-zip": "^7.11.1", "@electron-forge/plugin-auto-unpack-natives": "^7.11.1", "@electron-forge/plugin-fuses": "^7.11.1", "@electron-forge/plugin-vite": "^7.11.1", "@electron/fuses": "^1.8.0", "@playwright/test": "^1.62.1", "@tailwindcss/vite": "^4.2.4", "@types/electron-squirrel-startup": "^1.0.2", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@typescript-eslint/eslint-plugin": "^8.59.2", "@typescript-eslint/parser": "^8.59.2", "@vitejs/plugin-react": "^6.0.1", "electron": "41.5.0", "esbuild": "^0.28.0", "eslint": "^8.57.1", "eslint-config-prettier": "^10.1.8", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-import": "^2.32.0", "prettier": "^3.8.3", "prettier-plugin-tailwindcss": "^0.8.0", "rollup": "^4.60.4", "tailwindcss": "^4.2.4", "typescript": "~6.0.3", "vite": "^8.0.10", "vite-plugin-top-level-await": "^1.6.0", "vite-plugin-wasm": "^3.6.0", "vitest": "^4.1.5" }, "dependencies": { "@automerge/automerge": "^3.2.6", "@chainsafe/libp2p-gossipsub": "^14.1.2", "@chainsafe/libp2p-noise": "^16.0.0", "@chainsafe/libp2p-yamux": "^7.0.1", "@codemirror/autocomplete": "^6.20.3", "@codemirror/commands": "^6.10.3", "@codemirror/lang-markdown": "^6.5.0", "@codemirror/language": "^6.12.3", "@codemirror/state": "^6.6.0", "@codemirror/view": "^6.41.1", "@lezer/highlight": "^1.2.3", "@lezer/markdown": "^1.6.3", "@libp2p/circuit-relay-v2": "^3.2.24", "@libp2p/identify": "^3.0.39", "@libp2p/interface": "^2.11.0", "@libp2p/peer-id": "^5.1.9", "@libp2p/webrtc": "^5.2.24", "@libp2p/websockets": "^9.2.19", "@libp2p/webtransport": "^5.0.41", "@multiformats/multiaddr": "^12.5.1", "@noble/hashes": "^1.8.0", "@tanstack/react-query": "^5.100.11", "diff": "^8.0.4", "electron-squirrel-startup": "^1.0.1", "jose": "^6.2.3", "lib0": "^0.2.117", "libp2p": "^2.8.0", "openid-client": "^6.8.4", "react": "^19.2.5", "react-dom": "^19.2.5", "react-router-dom": "^7.15.0" }}