{"id":28452172,"url":"https://github.com/durasj/chipsandcode","last_synced_at":"2026-02-28T19:02:01.644Z","repository":{"id":193403688,"uuid":"421953125","full_name":"durasj/chipsandcode","owner":"durasj","description":"👨🏻‍💻 Wondering how computers work? Find out by embarking on the journey of building your own computer from scratch, from chips to code. No prerequisites and for free from the browser. Work in Progress!","archived":false,"fork":false,"pushed_at":"2025-06-06T09:37:14.000Z","size":7803,"stargazers_count":2,"open_issues_count":29,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-06T17:11:32.812Z","etag":null,"topics":["chip","hardware","hdl","learning","learning-by-doing"],"latest_commit_sha":null,"homepage":"https://chipsandcode.com","language":"TypeScript","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/durasj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2021-10-27T19:46:51.000Z","updated_at":"2023-11-12T23:21:23.000Z","dependencies_parsed_at":"2023-09-08T03:51:36.397Z","dependency_job_id":"552f7f42-79a6-4d82-91f2-ff703b03a144","html_url":"https://github.com/durasj/chipsandcode","commit_stats":null,"previous_names":["durasj/chipsandcode"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/durasj/chipsandcode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/durasj%2Fchipsandcode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/durasj%2Fchipsandcode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/durasj%2Fchipsandcode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/durasj%2Fchipsandcode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/durasj","download_url":"https://codeload.github.com/durasj/chipsandcode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/durasj%2Fchipsandcode/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263074479,"owners_count":23409771,"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":["chip","hardware","hdl","learning","learning-by-doing"],"created_at":"2025-06-06T17:11:23.828Z","updated_at":"2025-10-26T20:03:54.755Z","avatar_url":"https://github.com/durasj.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://chipsandcode.com/\"\u003e\n    \u003cimg src=\"https://chipsandcode.com/logo_version.svg\" alt=\"Chips and Code logo\" width=\"72\" height=\"72\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eChips and Code\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  Wondering how computers work? Find out by embarking on the journey of building your own computer from scratch, from chips to code. No prerequisites and for free from the browser.\n  \u003cbr\u003e\n  \u003ca href=\"https://chipsandcode.com/\"\u003e\u003cstrong\u003eVisit »\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://snyk.io/test/github/durasj/chipsandcode\"\u003e\u003cimg src=\"https://snyk.io/test/github/durasj/chipsandcode/badge.svg\" alt=\"Known Vulnerabilities\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://codeclimate.com/github/durasj/chipsandcode\"\u003e\u003cimg src=\"https://img.shields.io/codeclimate/maintainability/durasj/chipsandcode\" alt=\"Maintainability rating\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/durasj/chipsandcode\" \u003e\u003cimg src=\"https://codecov.io/gh/durasj/chipsandcode/graph/badge.svg?token=OJXSAPR87F\" alt=\"Unit Test Coverage\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## Features\n\n\u003cimg src=\"./demo.gif\" width=\"100%\"\u003e\n\nCurrently contains and fully supports the first week of Nand2Tetris.\nCan work offline and supports installation as a PWA.\nNo cloud dependency for the basic functionality.\n\n- Hardware IDE\n  - Code editor with syntax highlighting\n  - Test Scripts with automated evaluation\n  - Visual diff of Expected \u0026 Actual output\n  - Pin inspection with automated evaluation\n  - Proper lexer\u0026parser with inline syntax errors.\n- Learning Content\n  - Easily editable as Markdown files\n  - Math support - KaTeX\n  - Support for embedded Hardware IDE \u0026 YouTube videos\n  - Responsive\n\n## Planned\n\nThe overall goal is to implement all functionality needed for the first six weeks of Nand2Tetris and adapt their learning material in a simplified form. That being said, it should be done with a quality-over-quantity mindset so that it's not just a simple rewrite. Everything should be thought through, and any major usability improvements have a higher priority than content.\n\nMajor features, ordered by priority:\n\n1. Create a chip schema diagram on the fly (#12).\n1. Proper tab interface - configurable tabs, everything in the same style (#13).\n1. Decimal and hexadecimal format (#14).\n1. Autocomplete \u0026 interface on hover (#20).\n1. Ability to sign in (#21).\n1. Projects (#22).\n1. 2nd week of Nand2Tetris content (#15).\n1. Support for CLOCKED (#16).\n1. Debug mode (stepping, \"animation\") accessible from the Tests tab (#17).\n1. 3nd week of Nand2Tetris content (#18).\n1. Hack Machine Language.\n1. Hack Assembly.\n1. Assembler.\n1. CPU Emulator.\n1. 4th week of Nand2Tetris content.\n1. 5th week of Nand2Tetris content.\n1. 6th week of Nand2Tetris content.\n\n## Developing\n\nThis application is powered by [`SvelteKit`](https://kit.svelte.dev).\n\nOnce you've cloned the repository and installed dependencies by running `npm install`, start the development server:\n\n```bash\nnpm run dev\n\n# or start the server and open the app in a new browser tab\nnpm run dev -- --open\n```\n\n## Building\n\nTo build static HTML files that can be served by any web server run:\n\n```bash\nnpm run build\n```\n\n\u003e You can preview the built app with `npm run preview`.\n\n\u003e The built app can be found in `/build`.\n\n## Tests\n\nThere are broadly two kinds of automated tests:\n\n- Unit tests - powered by Vitest, can be found next to the source code with the `.test.ts` suffix. During the dev, use the command `npm run test:unit:watch`.\n- Cypress tests - can be found in the directory `./cypress`. During the dev, use the command `npm run test:cy:open`. These tests also run visual regression and accessibility checks.\n\nAll checks and tests can be run using the command `npm run test`.\nThese roughly match CI checks.\n\n## Backend\n\nThe application works completely fine without any backend, but the ability to sign in save experiments requires a backend.\n\nStart by creating a `.env` from the `.env.template`.\n\nThen, you can run the backend and frontend together by running:\n\n```bash\n# runs both backend and frontend\nnpm start\n```\n\n## Deployment\n\nCurrently, this application uses Cloudflare to both distribute the website and power the backend using Cloudflare Pages.\n\nTo replicate the backend, you can log in using the wrangler:\n\n```bash\nnpm run wrangler -- login\n```\n\nYou need to change the account_id within `wrangler.toml` and sign up for Cloudflare Workers, see [documentation](https://developers.cloudflare.com/workers/get-started/guide#7-configure-your-project-for-deployment). Then, you can run:\n\n## Browser Support\n\nChips and Code is designed for and tested on the latest stable versions of Chrome, Firefox, Edge, and Safari. It does not support any version of Internet Explorer.\n\n## Background\n\nFor more information check out:\n\n- [chipsandcode.com/about](https://chipsandcode.com/about)\n- [thesis.chipsandcode.com](https://thesis.chipsandcode.com)\n\n## License\n\nSoftware: MIT License\n\nLearning Content: [CC BY-NC-SA 3.0](https://creativecommons.org/licenses/by-nc-sa/3.0/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdurasj%2Fchipsandcode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdurasj%2Fchipsandcode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdurasj%2Fchipsandcode/lists"}