{"id":13559010,"url":"https://github.com/mdubourg001/ssgo","last_synced_at":"2025-10-27T13:45:32.833Z","repository":{"id":37314335,"uuid":"259686882","full_name":"mdubourg001/ssgo","owner":"mdubourg001","description":"The minimalistic but flexible static site generator for Deno 🦕.","archived":false,"fork":false,"pushed_at":"2024-05-22T20:59:24.000Z","size":1587,"stargazers_count":176,"open_issues_count":0,"forks_count":3,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-30T18:04:57.422Z","etag":null,"topics":["deno","ssgo","static-site-generator"],"latest_commit_sha":null,"homepage":"https://ssgo.netlify.app","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/mdubourg001.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2020-04-28T16:06:58.000Z","updated_at":"2025-03-06T16:55:51.000Z","dependencies_parsed_at":"2024-10-25T18:34:14.198Z","dependency_job_id":"05f16afe-5069-4d3f-8fbf-6bf14ecf37a5","html_url":"https://github.com/mdubourg001/ssgo","commit_stats":{"total_commits":198,"total_committers":4,"mean_commits":49.5,"dds":"0.36868686868686873","last_synced_commit":"ea1e4f823196bb6450f8ad54650b49fc98a8dec3"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdubourg001%2Fssgo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdubourg001%2Fssgo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdubourg001%2Fssgo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdubourg001%2Fssgo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdubourg001","download_url":"https://codeload.github.com/mdubourg001/ssgo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251758162,"owners_count":21638988,"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":["deno","ssgo","static-site-generator"],"created_at":"2024-08-01T12:05:17.459Z","updated_at":"2025-10-27T13:45:27.812Z","avatar_url":"https://github.com/mdubourg001.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","deno"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/logo.png\"\u003e\n\u003c/p\u003e\n\n# ssgo\n\nThe minimalistic but flexible static site generator.\n\n**`ssgo`** is built with Deno and relies on it.\n\n![license: MIT](https://img.shields.io/github/license/mdubourg001/ssgo?style=flat-square)\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)\n![netlify: passing](https://img.shields.io/netlify/d9dae2e0-b3b2-4c86-aee8-7a625de6e18a?style=flat-square)\n\n## Documentation\n\nRead the documentation at https://ssgo.netlify.app/docs.\n\n## Quickstart\n\nTo install `ssgo` using Deno:\n\n```bash\ndeno install --unstable --allow-read --allow-write --allow-net --allow-run -q https://deno.land/x/ssgo/ssgo.ts\n```\n\n**To create a `ssgo` project** just run:\n\n```bash\nmkdir my-ssgo-project \u0026\u0026 cd my-ssgo-project\nssgo init\n```\n\nHere's what a `ssgo` project looks like:\n\n```plaintext\n├── creators/    \u003c- here go the scripts creating your pages\n├── templates/   \u003c- here go the templates of your pages\n├── components/  \u003c- here go your custom components\n└── static/      \u003c- here go your static files\n```\n\n**To launch a build**: just run:\n\n```bash\nssgo\n```\n\nYour site will be built inside of the `dist/` directory.\n\n**To start development mode** with file watching, and a hot reloaded dev server:\n\n```bash\nssgo dev\n```\n\nThe `dist/` directory will be served over `http://localhost:5580`.\n\n## Overview\n\n`ssgo` basically relies on two types of files: **templates**, and **creators**.\n\n**Templates** are the skeleton of your pages and are simply HTML files living inside the `templates/` directory (and its subdirectories):\n\n```html\n\u003c!-- templates/my-template.html --\u003e\n\n\u003chtml lang=\"en\"\u003e\n  \u003chead\u003e\n    \u003cmeta charset=\"UTF-8\" /\u003e\n    \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" /\u003e\n    \u003ctitle\u003e{{ title }}\u003c/title\u003e\n\n    \u003clink rel=\"stylesheet\" href=\"index.css\" /\u003e\n  \u003c/head\u003e\n  \u003cbody\u003e\n    \u003ch1\u003eHello, ssgo !\u003c/h1\u003e\n    \u003cp\u003eJust run \u003ccode\u003essgo dev\u003c/code\u003e to get started !\u003c/p\u003e\n  \u003c/body\u003e\n\u003c/html\u003e\n```\n\n**Creators** are like page factories. Using a `buildPage` function given by `ssgo`, they use **templates** and datas to build pages. Creators live in the `creators/` directory (and its subdirectories):\n\n```typescript\n// creators/my-creator.ts\n\nimport type { BuildPage } from \"https://deno.land/x/ssgo/mod.ts\"\nimport { fetchTitle } from \"../src/api.ts\"\n\nexport default async function (buildPage: BuildPage) {\n  const title = await fetchTitle()\n\n  buildPage(\n    \"my-template.html\" // template to use to build the page,\n    { title: title } // data to use to build the page,\n    { filename: \"index.html\", dir: \"\" } // build options\n  )\n}\n```\n\n`ssgo` also provides much more cool stuffs like components, automatic static files management, or just-in-time page build in dev mode. You can learn more about all this things by [reading the documentation](https://ssgo.netlify.app/docs).\n\n## Roadmap\n\n- [ ] Pass undefined if variable doesn't exist when passing props\n- [ ] Use CWD's `.tsconfig.json` for typescript compilation if exists\n- [ ] Add a support for a config file (.ssgorc, ssgo.config.js)\n- [ ] Provide a way to opt out of static ressources resolution on a per-file basis\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdubourg001%2Fssgo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdubourg001%2Fssgo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdubourg001%2Fssgo/lists"}