{"id":16182397,"url":"https://github.com/drawveloper/zob","last_synced_at":"2025-04-07T12:30:31.564Z","repository":{"id":148526336,"uuid":"376392570","full_name":"drawveloper/zob","owner":"drawveloper","description":"A really minimal static blog generator that's about the content and the performance - written in Deno.","archived":false,"fork":false,"pushed_at":"2021-08-15T20:34:29.000Z","size":11,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-13T15:18:12.262Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/drawveloper.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":"2021-06-12T22:13:33.000Z","updated_at":"2023-03-09T02:14:33.000Z","dependencies_parsed_at":"2023-05-20T10:00:33.081Z","dependency_job_id":null,"html_url":"https://github.com/drawveloper/zob","commit_stats":null,"previous_names":["drawveloper/zob"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drawveloper%2Fzob","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drawveloper%2Fzob/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drawveloper%2Fzob/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drawveloper%2Fzob/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drawveloper","download_url":"https://codeload.github.com/drawveloper/zob/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247652434,"owners_count":20973622,"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":[],"created_at":"2024-10-10T06:31:02.683Z","updated_at":"2025-04-07T12:30:31.444Z","avatar_url":"https://github.com/drawveloper.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zero Overhead Blog\n\nA really minimal static blog generator that's about the content and the performance. \n\n### Why\n\nI want to remove all excuses to having a blog. Also, I want to code some deno. So I built the simplest blog generator I could. \n\n### ~JS~ everything fatigue\n\nI hate file bloat in my repo. I get tired just from thinking of dealing with layers of React and Gatsby and `node_modules`. I just want to convert some markdown into simple, performant static pages that focuses brutally on the content - both for myself and for users. \n\nI also want to be able to edit my HTML, CSS and JS files directly using the advanced editors provided by current web browsers, without having to perform some advanced mapping configuration. It should be as simple and as straightforward as possible for beginners. \n\n### The accumulated layers of abstraction hinders first steps\n\nTry explaining to a friend who's curious about programming how your frontend setup works. They probably won't listen long enough to get to `package.json`, and by `webpack` you've lost them. \n\nWhen I was a kid, programming had much a more immediate positive feedback loop. I changed local HTML, refreshed the browser page and saw the effects. I got hooked into it - that made me explore further. This is crucial for having more people join the field - having more inclusive tools for beginners (and minimalists). \n\nI want to build tools that bring me back to that feeling of mesmerizing, iterative evolution. \"First, do it\". Doing the first thing, taking the first step must be simple. \n\n### zob is free forever\n\nYou are welcome to fork it and do whatever you want. \n\n# How to zob\n\nFirst, you must have [deno](https://deno.land) installed. \n\nThen, in your terminal:\n\n```sh\n$ deno install --allow-write --allow-read --unstable --name zob https://raw.githubusercontent.com/firstdoit/zob/master/cli.ts\n```\n\nThen, go anywhere with a `posts` folder which contains `.md` files with frontmatter containing `{title, date}`:\n\n```md\n---\ntitle: Hello, world!\ndate: '2021-06-12'\n---\n\nHello, world!\n```\n\nRun the `build` command:\n\n```sh\n$ zob build\n```\n\nThis generates a `public/` folder with some HTML and CSS files inside.\n\nPublish those anywhere. I use Vercel.\n\nEnjoy!\n\n# Live Preview\n\nWhile editing posts, you may take a look at the result with the `live` command:\n\n```sh\n$ zob live\n```\n\nAnd going to `http://localhost:8080`. Changes to posts are recompiled immediately. \n\n# Make it yours - customizing zob\n\nWhen running the first `zob build`, a default `public/index.html` is created. \n\nChanges made to `public/index.html` will be respected - zob only touches the `\u003cmain/\u003e` section in the middle of the document on each build. This means you can open `Developer Tools` in your browser and edit the file in your filesystem to your heart's content.\n\nPosts use `public/index.html` as a template. When the main index is changed, all posts must be recreated. This happens automatically on the next build, or immediately if `zob live` is running.\n\n# How upgrading works\n\nIf you want to get the latest version of `zob`, you can run the `upgrade` command.\n\nThis will attempt to merge the latest default `index.html` with your changes before and after `\u003cmain/\u003e` using `git merge-file`.\n\n# Theming\n\nYou can upgrade *into* different *themes* - these are collections of files which will try to be merged into your structure under `public/`. You can use it by adding the `--repo` flag in the format `username/repo` for an arbitrary GitHub repository. (PROTIP: You can also specify a commit or branch like `username/repo#commit`)\n\n```sh\n$ zob upgrade --repo firstdoit/zob-simple-blog-theme\n```\n\n# Local operational files\n\n- `zob` stores the `index.html` used when first creating your blog in `.zob/firstdoit/zob/{#commit}/index.html` to use it as a common ancestor during upgrades.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrawveloper%2Fzob","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrawveloper%2Fzob","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrawveloper%2Fzob/lists"}