{"id":20153610,"url":"https://github.com/rajatsandeepsen/scriptw","last_synced_at":"2025-10-28T04:03:34.354Z","repository":{"id":165580065,"uuid":"612582551","full_name":"rajatsandeepsen/scriptw","owner":"rajatsandeepsen","description":"In-Browser Jupyter Notebook Alternative for Javascript REPL without Nodejs Kernel","archived":false,"fork":false,"pushed_at":"2023-06-26T16:01:33.000Z","size":6301,"stargazers_count":9,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-13T23:20:32.914Z","etag":null,"topics":["javasccript","nextjs","notebook","planetscale","prisma","vercel"],"latest_commit_sha":null,"homepage":"https://scriptw.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rajatsandeepsen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-11T11:35:56.000Z","updated_at":"2024-09-14T08:06:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"f0d4b2e8-e1bd-4d9d-94a1-4e665e2e3fe1","html_url":"https://github.com/rajatsandeepsen/scriptw","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatsandeepsen%2Fscriptw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatsandeepsen%2Fscriptw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatsandeepsen%2Fscriptw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatsandeepsen%2Fscriptw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rajatsandeepsen","download_url":"https://codeload.github.com/rajatsandeepsen/scriptw/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233739715,"owners_count":18722519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javasccript","nextjs","notebook","planetscale","prisma","vercel"],"created_at":"2024-11-13T23:19:53.174Z","updated_at":"2025-09-21T09:32:10.794Z","avatar_url":"https://github.com/rajatsandeepsen.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg alt='mockupimage' src='https://scriptw.vercel.app/markdown.png'\u003e\n\n# [Script Writer](https://scriptw.vercel.app/) v1.0.1 stable release\n### In-Browser Jupyter Notebook Alternative for Javascript | by [@rajatsandeepsen](https://github/rajatsandeepsen)\n\n\n\n### Tech Stack \u0026 Tools used to build this project\n- Build with Nextjs, React, Bootstrap and Prisma\n- Deployed on Vercel \u0026 Planetscale MySQL DB\n- Authentication using Github OAuth \u0026 Next-Auth\n- Javascript, Sass, SQL\n- uiw/Codemirror, useSWR hooks etc.\n\n![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge\u0026logo=javascript\u0026logoColor=%23F7DF1E)\n![Next JS](https://img.shields.io/badge/Next-black?style=for-the-badge\u0026logo=next.js\u0026logoColor=white)\n![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge\u0026logo=react\u0026logoColor=%2361DAFB)\n![Bootstrap](https://img.shields.io/badge/bootstrap-%23563D7C.svg?style=for-the-badge\u0026logo=bootstrap\u0026logoColor=white)\n![SASS](https://img.shields.io/badge/SASS-hotpink.svg?style=for-the-badge\u0026logo=SASS\u0026logoColor=white)\n![Prisma](https://img.shields.io/badge/Prisma-3982CE?style=for-the-badge\u0026logo=Prisma\u0026logoColor=white)\n![Vercel](https://img.shields.io/badge/vercel-%23000000.svg?style=for-the-badge\u0026logo=vercel\u0026logoColor=white)\n![PlanetScale](https://img.shields.io/badge/planetscale-%23000000.svg?style=for-the-badge\u0026logo=planetscale\u0026logoColor=white)\n![MySQL](https://img.shields.io/badge/mysql-%2300f.svg?style=for-the-badge\u0026logo=mysql\u0026logoColor=white)\n![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge\u0026logo=github\u0026logoColor=white)\n![Visual Studio Code](https://img.shields.io/badge/Visual%20Studio%20Code-0078d7.svg?style=for-the-badge\u0026logo=visual-studio-code\u0026logoColor=white)\n\n\n### Features\n\n- In-Browser Javascript Notebook\n- Save and Load Notebooks\n- Share Notebooks\n- Export/Print Notebooks as PDF\n- Login using Github \n- VS code similar UI \u0026 Keyboard Shortcuts\n- Code Autocomplete (Emmet), Syntax Highlighting \u0026 Bracket pairing\n- Visibility of Notebook (Public/Private)\n- Code Execution \u0026 Code Output\n- JSON state management section\n- Code \u0026 Markdown support\n- ChatGPT integration for code suggestions (Coming Soon)\n- Build Websites using HTML, CSS \u0026 JS (Bug Fixing)\n- Build single file/page React Apps (Coming Soon)\n\n\n### Additional Function for state control\n- `set( )` - set a variable in JSON state file \n- `get( )` - get a variable from JSON state file\n- `setFunc( )` - set a function in JSON state file\n- `getFunc( )` - get a function from JSON state file\n- `importPackage( )` - async function to import CDN packages\n- `input( )` - async function to take input from user\n- `sleep( )` - async function to sleep the main thread\n\n### console functions\n- `console.log( )` - log to console\n- `console.clear( )` - clear console\n- `console.error( )` - log error to console\n- `console.assert( )` - log assertion to console\n- `console.add( )` - append HTML elements to console\n- others are coming soon\n\n### Unavailable functions \u0026 methods\n- `import`\n- `export`\n- `require`\n\n\n## Examples\n- add data to JSON \u0026 access them in next block\n```\nlet url = 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'\nset('url', url)\n```\n```\nlet { url } = get() // reading from JSON\nlet HTML = `\u003cimg src=${url} alt='img loading?' width='100%'\u003e`\nconsole.add(HTML)\n```\n\n- import CDN packages\n```\nlet url = 'https://unpkg.com/brain.js@2.0.0-beta.23/dist/browser.js'\n\nimportPackage(url, () =\u003e {\n  \n  const network = new brain.NeuralNetwork();\n\n  network.train([\n    {input:[0,0], output:{zero:1}},\n    {input:[0,1], output:{one:1}},\n    {input:[1,0], output:{one:1}},\n    {input:[1,1], output:{zero:1}},\n  ]);\n\n  // What is the expected output of [1,0]?\n  let result = network.run([1,0]);\n  for (let [key, value] of Object.entries(result)) {\n    console.log(`${key}: ${value}`)\n  }\n\n})\n```\n\n- store functions \u0026 use it on next cell\n```\nfunction findSum(a, b){ return a + b }\n\nsetFunc(\"findSum\", findSum)\n```\n```\nlet findSum = getFunc(\"findSum\")\n\nlet result = findSum(10, 13)\nconsole.log(result)\n```\n- sleep the main thread\n```\nasync function someFunc(){\n  await sleep(1000)\n  console.log(\"After thread sleeping\")\n}\n\nsomeFunc() \n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajatsandeepsen%2Fscriptw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajatsandeepsen%2Fscriptw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajatsandeepsen%2Fscriptw/lists"}