suomato / Base Camp
Licence: mit
Awesome WordPress starter theme for developers based on modern web technologies.
Stars: ✭ 135
Projects that are alternatives of or similar to Base Camp
Wordpress Starter
📦 A starter template for WordPress websites
Stars: ✭ 26 (-80.74%)
Mutual labels: webpack, wordpress, timber
Bathe
The simplest WordPress starter theme including full setup for Sass, PostCSS, Autoprefixer, stylelint, Webpack, Eslint, imagemin, Browsersync, etc.
Stars: ✭ 65 (-51.85%)
Mutual labels: webpack, wordpress
Wordpress
Automatically updated WordPress composer package
Stars: ✭ 94 (-30.37%)
Mutual labels: wordpress, composer
Composify
Turn WordPress plugin zip files into git repositories, so that composer version constraints work properly.
Stars: ✭ 36 (-73.33%)
Mutual labels: wordpress, composer
Bottle Vue Kickstart
🍕 Very basic Bottle kickstart kit with Vue.js and Webpack. Included Axios, Autoprefixer, Babel, Webpack config, demo app with Bulma and Web font loader.
Stars: ✭ 83 (-38.52%)
Mutual labels: webpack, bulma
Webpack Wordpress
Build Wordpress themes using Webpack and Hot Module Reloading
Stars: ✭ 100 (-25.93%)
Mutual labels: webpack, wordpress
Wordless
All the power of Pug, Sass, Coffeescript and WebPack in your WordPress theme. Stop writing themes like it's 1998.
Stars: ✭ 1,374 (+917.78%)
Mutual labels: webpack, wordpress
Jackpine
WordPress starter theme with Timber, Tailwind, and Alpine.js.
Stars: ✭ 101 (-25.19%)
Mutual labels: wordpress, timber
Wp React Boilerplate
Boilerplate for creating WordPress plugin UI's with REST API, BrowserSync, Webpack and React
Stars: ✭ 109 (-19.26%)
Mutual labels: webpack, wordpress
Spinupwp Composer Site
A WordPress site setup using Composer that is primed and ready to be hosted using SpinupWP.
Stars: ✭ 58 (-57.04%)
Mutual labels: wordpress, composer
Wp Multitenancy Boilerplate
WordPress multitenancy boilerplate configured and managed with Composer and PHP dotenv.
Stars: ✭ 24 (-82.22%)
Mutual labels: wordpress, composer
Rubel
Rubel is a cms built with Laravel and React.
Stars: ✭ 70 (-48.15%)
Mutual labels: webpack, bulma
Presspack
💻 Wordpress like it's 2020 with Webpack and Docker
Stars: ✭ 658 (+387.41%)
Mutual labels: webpack, wordpress
Vue Wordpress Pwa
An offline-first SPA using Vue.js, the WordPress REST API and Progressive Web Apps
Stars: ✭ 665 (+392.59%)
Mutual labels: webpack, wordpress
Wordplate
WordPlate is a wrapper around WordPress. It's like building any other WordPress website with themes and plugins. Just with sprinkles on top.
Stars: ✭ 1,594 (+1080.74%)
Mutual labels: wordpress, composer
About Base Camp
Awesome WordPress starter theme with own CLI for developers based on modern web technologies.
Features
- Bulma (Responsive CSS framework based on Flexbox)
-
Timber
- Twig Template Engine
- Cleaner and better code
- Separates the logic from presentation
-
Webpack
- Sass / Scss for stylesheets (Minimize in production)
- ES6 for Javascript (Minimize in production)
- Automatic Cache Busting
- Split javascript code to two chunks, app.js and vendor.js
- Vuejs for boosting frontend development
- BrowserSync for synchronised browser testing
- Luna (Command-line interface included with Base Camp)
- WooCommerce support with basic boilerplate.
Requirements
- Wordpress >= v4.9.6
- Composer >= v1.6.5
- PHP >= v7.0
- Yarn >= v1.7.0 or npm >= v6.1.0
- Nodejs >= v8.11.1
Installation
- Go your themes folder and run
composer create-project suomato/base-camp
cd base-camp
-
yarn
ornpm install
- define your custom webpack config to
build/config.js
file -
yarn watch
ornpm run watch
- Happy developing :)
Structure
base-camp/ # Theme root
├── app/ # Theme logic
│ ├── config/ # Theme config
│ │ ├── wp/ # WordPress specific config
│ │ │ ├── admin-page.php # Register here WordPress Admin Page config
│ │ │ ├── image-sizes.php # Register here WordPress Custom image sizes
│ │ │ ├── login-page.php # Register here WordPress Login Page config
│ │ │ ├── maintenance.php # Maintenance mode config
│ │ │ ├── menus.php # Register here WordPress navigation menus
│ │ │ ├── scripts-and-styles.php # Register here WordPress scripts and styles
│ │ │ ├── security.php # Things that increase the site security
│ │ │ ├── sidebars.php # Register here WordPress sidebars
│ │ │ └── theme-supports.php # Register here WordPress theme features
│ │ ├── autoload.php # Includes all config files (DON'T REMOVE THIS)
│ │ ├── timber.php # Timber specific config
│ │ └── woocommerce.php # Init woocommerce support
│ ├── models/ # Wrappers for Timber Classes
│ ├── timber-extends/ # Extended Timber Classes
│ │ └── BaseCampSite.php # Extended TimberSite Class
│ ├── bootstrap.php # Bootstrap theme
│ ├── helpers.php # Common helper functions
├── build/ # Theme assets and views
│ ├── config.js # Custom webpack config
│ ├── webpack.config.js # Webpack config
├── resources/ # Theme assets and views
│ ├── assets/ # Front-end assets
│ │ ├── js/ # Javascripts
│ │ │ └── components/ # Vue Components
│ │ ├── sass/ # Styles
│ │ │ └── components/ # Partials
│ ├── languages/ # Language features
│ │ ├── base-camp.pot # Template for translation
│ │ └── messages.php # Language strings
│ ├── views/ # Theme Twig files
│ │ ├── components/ # Partials
│ │ ├── footer/ # Theme footer templates
│ │ └── header/ # Theme header templates
Models
Models are wrapper classes for Wordpress Post Types and Taxonomies. They provide very simple interface to interact with the database.
How to use
// index.php
<?php
use Basecamp\Models\Post;
// returns an array of TimberPost objects
Post::all();
// returns TimberPost object with the ID 1 (if it exists)
Post::find(1);
// returns first two posts;
Post::take(2)->get();
// skips first two posts;
Post::skip(2)->get();
// returns published posts;
// Supported values: https://codex.wordpress.org/Post_Status#Default_Statuses
Post::status('publish')->get();
// returns all posts except post with ID 1;
Post::exclude([1])->get();
// returns only posts with ID 1;
Post::include([1])->get();
// returns an array of posts descending order by author;
// Supported Values: https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters
Post::orderby('author', 'desc')->get();
// returns an array of posts authored by admin;
Post::author('admin')->get();
// returns an array of posts which are in category 'cars' or 'vehicles';
Post::inCategory(['cars', 'vehicles'])->get();
All queries are chainable. For example you can get three first incomplete posts authored by admin:
Post::status('draft')->author('admin')->take(3)->get();
All models are able to use almost every methods. However there are some exceptions:
- Only
Post
model hasinCategory()
method - Taxonomies (Category, Tag) have
hideEmpty()
method
Luna (Command-line interface)
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].