{"id":18068467,"url":"https://github.com/vdsabev/cmless","last_synced_at":"2026-04-16T17:38:42.529Z","repository":{"id":148476720,"uuid":"105473019","full_name":"vdsabev/cmless","owner":"vdsabev","description":"Seamless tools for building dazzling websites","archived":false,"fork":false,"pushed_at":"2023-07-19T22:14:05.000Z","size":2205,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-26T23:18:09.253Z","etag":null,"topics":["build","build-tool","frontend","google-drive-api","lambda-functions","netlify","vite","web"],"latest_commit_sha":null,"homepage":"","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/vdsabev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2017-10-01T20:42:50.000Z","updated_at":"2023-07-31T21:18:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"fec48016-ed8a-4fd1-bccd-fa8c29b633e3","html_url":"https://github.com/vdsabev/cmless","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/vdsabev/cmless","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdsabev%2Fcmless","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdsabev%2Fcmless/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdsabev%2Fcmless/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdsabev%2Fcmless/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vdsabev","download_url":"https://codeload.github.com/vdsabev/cmless/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdsabev%2Fcmless/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275114821,"owners_count":25407928,"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-09-14T02:00:10.474Z","response_time":75,"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":["build","build-tool","frontend","google-drive-api","lambda-functions","netlify","vite","web"],"created_at":"2024-10-31T08:06:47.592Z","updated_at":"2026-04-16T17:38:37.506Z","avatar_url":"https://github.com/vdsabev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"cmless\" src=\"logo.png\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Seamless tools for building dazzling websites\n\u003c/p\u003e\n\n\u003chr /\u003e\n\n# Usage\nFirst, install as a dependency:\n```sh\nnpm install cmless\n```\n\nCreate a `cmless.config.js` file in your root folder and import `cmless`. Out of the box this gives you a design system, loading Google Fonts, defining CSS variables and reset rules, and more!\n\n```js\nconst defineConfig = require('cmless');\n\nmodule.exports = defineConfig({\n  // Settings that already have some sensible defaults\n  entry: 'src/app.tsx',\n  template: 'node_modules/cmless/client/index.html',\n  // Set to `false` or `null` to not use CSS variables.\n  // Otherwise will use the variables defined in `client/theme.js`, allowing you to override them like this:\n  theme: {\n    'system-ui': 'Comic Sans MS',\n  },\n  // Set to a string containing CSS to use as a style reset.\n  // Set to `true` or leave undefined to use the built-in `client/reset.css`.\n  // Set to `false`, `null`, or an empty string to not use a style reset.\n  reset: fs.readFileSync('node_modules/cmless/client/reset.css').toString(),\n\n  // Other settings - not defined by default\n  title: 'Hammer - a website about hammers',\n  link: [\n    {\n      rel: 'icon',\n      type: 'image/svg+xml',\n      href: 'data:image/svg+xml,\u003csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 110 110%22\u003e\u003ctext y=%22.9em%22 font-size=%2290%22\u003e🔨\u003c/text\u003e\u003c/svg\u003e',\n    },\n  ],\n  meta: {\n    author: 'MC Hammer',\n    description: 'Stop, collaborate, and listen!',\n  },\n  fonts: {\n    title: 'Montserrat',\n    text: 'Inter',\n  },\n\n  // Optional built-in support for Netlify forms: https://docs.netlify.com/forms/setup\n  forms: {\n    contact: {\n      text: { tagName: 'textarea' },\n      email: { tagName: 'input', type: 'email' },\n    },\n  },\n});\n```\n\n# Plugins and customizing config\n`cmless` uses Vite under the hood, so `defineConfig` returns a Vite config with some plugins pre-configured. To add more plugins or otherwise customize config, for example adding Vue support, try the following:\n\n```js\nconst vue = require('@vitejs/plugin-vue')\nconst defineConfig = require('cmless')\n\nconst cmless = defineConfig({\n  entry: 'src/main.js',\n})\n\nmodule.exports = {\n  ...cmless,\n  plugins: [...cmless.plugins, vue()],\n}\n```\n\n# API lambda functions\nIf you're using Netlify, set the functions folder in your `netlify.toml` file:\n\n```toml\n[build]\n  functions = \"node_modules/cmless/server/\"\n```\n\nOr if you need more flexibility - require the lambda functions directly:\n\n```sh\nconst { getData } = require('cmless/server');\n\nexports.handler = getData;\n```\n\nYou can now call these functions from your local server - with Netlify the function will be at http://localhost:3000/.netlify/functions/getData\n\n# Contribution\nTo start a local server using these functions, first install the dependencies:\n\n```sh\nnpm install\n```\n\nThen run `npm start` and call a function, for example http://localhost:3000/.netlify/functions/getDocumentJSON?url=YOUR_DOCUMENT_URL_ENCODED\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdsabev%2Fcmless","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvdsabev%2Fcmless","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdsabev%2Fcmless/lists"}