{"id":21489091,"url":"https://github.com/tact-lang/website","last_synced_at":"2025-08-01T03:06:51.842Z","repository":{"id":105019985,"uuid":"485461665","full_name":"tact-lang/website","owner":"tact-lang","description":"Tact website","archived":false,"fork":false,"pushed_at":"2025-05-30T12:36:29.000Z","size":14963,"stargazers_count":7,"open_issues_count":30,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-07-26T12:38:41.916Z","etag":null,"topics":["tact","tact-lang","ton"],"latest_commit_sha":null,"homepage":"https://tact-lang.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tact-lang.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,"zenodo":null}},"created_at":"2022-04-25T17:07:15.000Z","updated_at":"2025-05-30T12:36:31.000Z","dependencies_parsed_at":"2023-08-24T08:44:09.840Z","dependency_job_id":"d3785b81-cb0e-4f31-9520-26c17dff1e5a","html_url":"https://github.com/tact-lang/website","commit_stats":null,"previous_names":["tact-lang/website"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tact-lang/website","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tact-lang%2Fwebsite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tact-lang%2Fwebsite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tact-lang%2Fwebsite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tact-lang%2Fwebsite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tact-lang","download_url":"https://codeload.github.com/tact-lang/website/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tact-lang%2Fwebsite/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268162391,"owners_count":24205702,"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","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["tact","tact-lang","ton"],"created_at":"2024-11-23T14:14:09.032Z","updated_at":"2025-08-01T03:06:51.668Z","avatar_url":"https://github.com/tact-lang.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tact Website\n\nDeveloped by [TON Studio](https://tonstudio.io), powered by the community.\n\n[![Website](https://img.shields.io/badge/Website-blue?style=flat)](https://tact-lang.org)\n[![Documentation](https://img.shields.io/badge/Documentation-blue?style=flat)](https://docs.tact-lang.org)\n[![Audited by Trail of Bits](https://img.shields.io/badge/Audited%20by-Trail%20of%20Bits-blue?style=flat-square)](https://github.com/trailofbits/publications/blob/master/reviews/2025-01-ton-studio-tact-compiler-securityreview.pdf)\n[![Twitter](https://img.shields.io/badge/X%2FTwitter-white?logo=x\u0026style=flat\u0026logoColor=gray)](https://x.com/tact_language)\n[![Telegram](https://img.shields.io/badge/Community_Chat-white?logo=telegram\u0026style=flat)](https://t.me/tactlang)\n[![Telegram](https://img.shields.io/badge/Tact_Kitchen_🥣-white?logo=telegram\u0026style=flat)](https://t.me/tact_kitchen)\n\n## Local setup\n\n\u003e [!IMPORTANT]\n\u003e Make sure you have Node.js version 16 or higher installed. To verify, run `node --version` — it should display at least 16.13.0 but not exceed version 22.\n\u003e Otherwise, download and install Node.js 22 from here: https://nodejs.org/en/download.\n\n1. Install dependencies without altering the lockfile: `npm ci`\n2. Start a local development server: `npm run start`\n\nThis will open a new browser window displaying the local version of the website. Most updates are automatically reflected.\n\n## Project structure\n\nHere is a top-level overview of the directory structure:\n\n```\n├── docs/             ← folder with compilation artifacts\n├── pdfs/             ← docs: audits, whitepapers, etc.\n├── src\n│   ├── app           ← main code of the website\n│   ├── assets        ← images, fonts, favicons, misc.\n│   ├── environments\n│   ├── favicon.ico\n│   ├── global.d.ts\n│   ├── index.html    ← landing page template\n│   ├── main.ts\n│   ├── polyfills.ts\n│   ├── scripts\n│   ├── styles        ← global Sass styles\n│   └── styles.scss   ← main Sass style file\n├── .gitignore\n├── CNAME             ← Contains a URL for GitHub Pages deployments\n├── package.json\n├── tsconfig.json\n└── angular.json      ← Angular configuration\n```\n\nIf we switch to the `app/` directory, it has the following contents:\n\n```\n├── app.component.html\n├── app.component.scss\n├── app.component.ts\n├── app.module.ts          ← root module (rarely modified)\n├── app-routing.module.ts\n├── core/\n│   ├── components         ← footer and header components\n│   ├── constants          ← link constants (docs, social media, etc.)\n│   ├── core.module.ts     ← module declaring footer, header, and misc.\n│   └── models\n├── features/              ← IMPORTANT: modules that constitute the landing page\n└── shared/                ← modules shared (rarely modified)\n```\n\n## Commands\n\nAll commands are run from the root of the project, from the terminal:\n\nCommand               | Action\n:-------------------- | :-----\n`npm ci`              | Install dependencies without changing the `package-lock.json`.\n`npm run start`       | Starts local dev server at `localhost:4200`.\n`npm run build`       | Build a production site to `./docs/`. This step is mandatory for correct [deployments](#deployment).\n`npm run ng -- ...`   | Access and run Angular's CLI commands directly.\n\n## Deployment\n\nDeployments are done to GitHub Pages via GitHub Actions. The pipeline triggers when anything is merged into the `master` branch.\n\nCurrently, CI does NOT build the website for you. Instead, it only uses the built contents of the `docs/` folder as is. Therefore, after editing any code, you need to:\n\n1. Stop the local server if it is currently running: `Ctrl+C` in the respective terminal\n2. Make the build: `npm run build`\n3. Commit the build together with all your changes\n4. Open a PR with your changes — they should include the new build in `docs/`!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftact-lang%2Fwebsite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftact-lang%2Fwebsite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftact-lang%2Fwebsite/lists"}