{"id":13407799,"url":"https://github.com/suomato/base-camp","last_synced_at":"2025-04-07T18:14:54.605Z","repository":{"id":23402583,"uuid":"98866248","full_name":"suomato/base-camp","owner":"suomato","description":"Awesome WordPress starter theme for developers based on modern web technologies.","archived":false,"fork":false,"pushed_at":"2023-01-13T22:16:48.000Z","size":5669,"stargazers_count":142,"open_issues_count":21,"forks_count":22,"subscribers_count":12,"default_branch":"master","last_synced_at":"2023-10-17T15:53:26.439Z","etag":null,"topics":["bulma","composer","starter-theme","timber","webpack","wordpress"],"latest_commit_sha":null,"homepage":"https://packagist.org/packages/suomato/base-camp","language":"PHP","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/suomato.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}},"created_at":"2017-07-31T08:27:53.000Z","updated_at":"2023-10-12T21:47:49.000Z","dependencies_parsed_at":"2023-01-14T13:21:40.432Z","dependency_job_id":null,"html_url":"https://github.com/suomato/base-camp","commit_stats":null,"previous_names":[],"tags_count":20,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suomato%2Fbase-camp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suomato%2Fbase-camp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suomato%2Fbase-camp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suomato%2Fbase-camp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/suomato","download_url":"https://codeload.github.com/suomato/base-camp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247704571,"owners_count":20982298,"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":["bulma","composer","starter-theme","timber","webpack","wordpress"],"created_at":"2024-07-30T20:00:48.714Z","updated_at":"2025-04-07T18:14:54.578Z","avatar_url":"https://github.com/suomato.png","language":"PHP","funding_links":[],"categories":["Resources"],"sub_categories":["Starters"],"readme":"\u003cp align=\"center\"\u003e\u003cimg width=\"220\" src=\"https://raw.githubusercontent.com/suomato/base-camp/develop/resources/assets/images/base-camp-logo.png\"\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href='https://packagist.org/packages/suomato/base-camp'\u003e\u003cimg src='https://poser.pugx.org/suomato/base-camp/v/stable.svg' alt=\"Dependency Status\" /\u003e\u003c/a\u003e \u003ca href='https://packagist.org/packages/suomato/base-camp'\u003e\u003cimg src='https://poser.pugx.org/suomato/base-camp/v/unstable.svg' alt=\"Dependency Status\" /\u003e\u003c/a\u003e \u003ca href=\"https://packagist.org/packages/suomato/base-camp\"\u003e\u003cimg src=\"https://poser.pugx.org/suomato/base-camp/license.svg\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## About Base Camp\n\n\u003e Awesome WordPress starter theme with own CLI for developers based on modern web technologies.\n\n## Features\n* [Bulma](http://bulma.io/) (Responsive CSS framework based on Flexbox)\n* [Timber](https://www.upstatement.com/timber/)\n  * Twig Template Engine\n  * Cleaner and better code\n  * Separates the logic from presentation\n* [Webpack](https://webpack.github.io/)\n  * Sass / Scss for stylesheets (Minimize in production)\n  * ES6 for Javascript (Minimize in production)\n  * Automatic Cache Busting\n  * Split javascript code to two chunks, app.js and vendor.js\n  * [Vuejs](https://vuejs.org/) for boosting frontend development\n  * [BrowserSync](https://www.browsersync.io/) for synchronised browser testing\n* [Luna](https://github.com/suomato/luna) (Command-line interface included with Base Camp)\n* [WooCommerce](https://woocommerce.com/) support with basic boilerplate.\n\n## Requirements\n* [Wordpress](https://wordpress.org/) \u003e= v4.9.6\n* [Composer](https://getcomposer.org/download/) \u003e= v1.6.5\n* [PHP](http://php.net/manual/en/install.php) \u003e= v7.0\n* [Yarn](https://yarnpkg.com/en/) \u003e= v1.7.0 **or** [npm](https://www.npmjs.com/) \u003e= v6.1.0\n* [Nodejs](https://nodejs.org/en/) \u003e= v8.11.1\n\n## Installation\n* Go your themes folder and run`composer create-project suomato/base-camp`\n* `cd base-camp`\n* `yarn` **or** `npm install`\n* define your custom webpack config to `build/config.js` file\n* `yarn watch` **or** `npm run watch`\n* Happy developing :)\n\n## Structure\n```\nbase-camp/                                          # Theme root\n├── app/                                            # Theme logic\n│   ├── config/                                     # Theme config\n│   │   ├── wp/                                     # WordPress specific config\n│   │   │   ├── admin-page.php                      # Register here WordPress Admin Page config\n│   │   │   ├── image-sizes.php                     # Register here WordPress Custom image sizes\n│   │   │   ├── login-page.php                      # Register here WordPress Login Page config\n│   │   │   ├── maintenance.php                     # Maintenance mode config\n│   │   │   ├── menus.php                           # Register here WordPress navigation menus\n│   │   │   ├── scripts-and-styles.php              # Register here WordPress scripts and styles\n│   │   │   ├── security.php                        # Things that increase the site security\n│   │   │   ├── sidebars.php                        # Register here WordPress sidebars\n│   │   │   └── theme-supports.php                  # Register here WordPress theme features\n│   │   ├── autoload.php                            # Includes all config files (DON'T REMOVE THIS)\n│   │   ├── timber.php                              # Timber specific config\n│   │   └── woocommerce.php                         # Init woocommerce support\n│   ├── models/                                     # Wrappers for Timber Classes\n│   ├── timber-extends/                             # Extended Timber Classes\n│   │   └── BaseCampSite.php                        # Extended TimberSite Class\n│   ├── bootstrap.php                               # Bootstrap theme\n│   ├── helpers.php                                 # Common helper functions\n├── build/                                          # Theme assets and views\n│   ├── config.js                                   # Custom webpack config\n│   ├── webpack.config.js                           # Webpack config\n├── resources/                                      # Theme assets and views\n│   ├── assets/                                     # Front-end assets\n│   │   ├── js/                                     # Javascripts\n│   │   │   └── components/                         # Vue Components\n│   │   ├── sass/                                   # Styles\n│   │   │   └── components/                         # Partials\n│   ├── languages/                                  # Language features\n│   │   ├── base-camp.pot                           # Template for translation\n│   │   └── messages.php                            # Language strings\n│   ├── views/                                      # Theme Twig files\n│   │   ├── components/                             # Partials\n│   │   ├── footer/                                 # Theme footer templates\n│   │   └── header/                                 # Theme header templates\n```\n\n## Models\n\u003e Models are wrapper classes for Wordpress Post Types and Taxonomies. They provide very simple interface to interact with the database.\n\n### How to use\n```\n// index.php\n\n\u003c?php\n\nuse Basecamp\\Models\\Post;\n\n// returns an array of TimberPost objects\nPost::all();\n\n// returns TimberPost object with the ID 1 (if it exists)\nPost::find(1);\n\n// returns first two posts;\nPost::take(2)-\u003eget();\n\n// skips first two posts;\nPost::skip(2)-\u003eget();\n\n// returns published posts;\n// Supported values: https://codex.wordpress.org/Post_Status#Default_Statuses\nPost::status('publish')-\u003eget();\n\n// returns all posts except post with ID 1;\nPost::exclude([1])-\u003eget();\n\n// returns only posts with ID 1;\nPost::include([1])-\u003eget();\n\n// returns an array of posts descending order by author;\n// Supported Values: https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters\nPost::orderby('author', 'desc')-\u003eget();\n\n// returns an array of posts authored by admin;\nPost::author('admin')-\u003eget();\n\n// returns an array of posts which are in category 'cars' or 'vehicles';\nPost::inCategory(['cars', 'vehicles'])-\u003eget();\n```\n\n\u003e All queries are chainable. For example you can get three first incomplete posts authored by admin:\n```\nPost::status('draft')-\u003eauthor('admin')-\u003etake(3)-\u003eget();\n```\n\nAll models are able to use almost every methods. However there are some exceptions:\n\n* Only `Post` model has `inCategory()` method\n* Taxonomies (Category, Tag) have `hideEmpty()` method\n\n\n## Luna (Command-line interface)\n\u003e [Docs](https://github.com/suomato/luna)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuomato%2Fbase-camp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuomato%2Fbase-camp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuomato%2Fbase-camp/lists"}