Lawrence  Lesch

Lawrence Lesch

1668154560

Rowy: An Open-source Low-code Platform

rowy

Low-code for Firebase and GCP

Airtable-like UI for Firestore meets IDE in browser for cloud functions

Connect to your database, manage data in table-UI with role based access controls. Build cloud function workflows in JS/TS using any NPM or APIs. Forget CLIs, configs, and DevOps. Focus on building your apps with a platform designed for developer productivity.


Live Demo

💥 Check out the live demo of Rowy 💥

Quick Deploy

Set up Rowy on your Google Cloud Platform project with this easy deploy button.

Guided quick start button

https://rowy.app

Documentation

You can find the full documentation with how-to guides and templates here.

Features

https://user-images.githubusercontent.com/307298/157185793-f67511cd-7b7b-4229-9589-d7defbf7a63f.mp4 

Powerful spreadsheet interface for Firestore

  • CMS for Firestore
  • CRUD operations
  • Bulk import or export data - csv, json, tsv
  • Sort and filter by row values
  • Lock, Freeze, Resize, Hide and Rename columns
  • Multiple views for the same collection

Automate with cloud functions and ready made extensions

  • Build cloud functions workflows on field level data changes
    • Use any NPM modules or APIs
  • Connect to your favourite tool with pre-built code blocks or create your own
    • SendGrid, Algolia, Twilio, Bigquery and more

Rich and flexible data fields

  • 30+ fields supported
    • Basic types: Short Text, Long Text, Email, Phone, URL…
    • Custom UI pickers: Date, Checkbox, Single Select, Multi Select…
    • Uploaders: Image, File
    • Rich Editors: JSON, Code, Rich Text (HTML), Markdown
  • Data validation, default values, required fields
  • Action field: Clickable trigger for any Cloud Function
  • Aggregate field: Populate cell with value aggregated from the row’s sub-table
  • Connector field: Connect data from multiple table collections
  • Connect Service: Get data from any HTTP endpoint

Collaborate with your team

  • Granular table-level and field-level permission control
    with role based access controls
  • Built in user management
  • Customizable views for different user roles

Install

Set up Rowy on your Google Cloud project with this one-click deploy button. Your data and cloud functions stay on your own Firestore/GCP.

Run on Google Cloud

The one-click deploy makes the process of setting up easy with a step by step guide and ensures your project is setup correctly.

It deploys Rowy Run, an open-source Cloud Run instance that operates exclusively on your GCP project. So we never have access to your service account or any of your data.

Alternatively, you can manually install by following this guide.

Roadmap

View our roadmap on Rowy - Upvote, downvote, share your thoughts!

If you'd like to propose a feature, submit an issue here.

Support the project

Help

Download Details:

Author: rowyio
Source Code: https://github.com/rowyio/rowy 
License: View license

#typescript #react #cms #firebase 

Rowy: An Open-source Low-code Platform
Hermann  Frami

Hermann Frami

1668104040

Jamstack-ecommerce: Jamstack ECommerce Next

Jamstack ECommerce Next

Jamstack ECommerce Next provides a way to quickly get up and running with a fully configurable ECommerce site using Next.js.

Out of the box, the site uses completely static data coming from a provider at providers/inventoryProvider.js. You can update this provider to fetch data from any real API by changing the call in the getInventory function.

Home

Live preview

Click here to see a live preview.

Other Jamstack ECommerce pages

Category view

Category view

Item view

Item view

Cart view

Cart view

Admin panel

Admin panel

Getting started

Clone the project

$ git clone https://github.com/jamstack-cms/jamstack-ecommerce.git

Install the dependencies:

$ yarn

# or

$ npm install

Run the project

$ npm run dev

# or to build

$ npm run build

Deploy to Vercel

Use the Vercel CLI

vercel

Deploy to AWS

npx serverless

About the project

Tailwind

This project is styled using Tailwind. To learn more how this works, check out the Tailwind documentation here.

Components

The main files, components, and images you may want to change / modify are:

Logo - public/logo.png
Button, ListItem, etc.. - components
Form components - components/formComponents
Context (state) - context/mainContext.js
Pages (admin, cart, checkout, index) - pages
Templates (category view, single item view, inventory views) - templates

How it works

As it is set up, inventory is fetched from a local hard coded array of inventory items. This can easily be configured to instead be fetched from a remote source like Shopify or another CMS or data source by changing the inventory provider.

Configuring inventory provider

Update utils/inventoryProvider.js with your own inventory provider.

Download images at build time

If you change the provider to fetch images from a remote source, you may choose to also download the images locally at build time to improve performance. Here is an example of some code that should work for this use case:

import fs from 'fs'
import axios from 'axios'
import path from 'path'

function getImageKey(url) {
  const split = url.split('/')
  const key = split[split.length - 1]
  const keyItems = key.split('?')
  const imageKey = keyItems[0]
  return imageKey
}

function getPathName(url, pathName = 'downloads') {
  let reqPath = path.join(__dirname, '..')
  let key = getImageKey(url)
  key = key.replace(/%/g, "")
  const rawPath = `${reqPath}/public/${pathName}/${key}`
  return rawPath
}

async function downloadImage (url) {
  return new Promise(async (resolve, reject) => {
    const path = getPathName(url)
    const writer = fs.createWriteStream(path)
    const response = await axios({
      url,
      method: 'GET',
      responseType: 'stream'
    })
    response.data.pipe(writer)
    writer.on('finish', resolve)
    writer.on('error', reject)
  })
}

export default downloadImage

You can use this function to map over the inventory data after fetching and replace the image paths with a reference to the location of the downloaded images, probably would look something like this:

await Promise.all(
  inventory.map(async (item, index) => {
    try {
      const relativeUrl = `../downloads/${item.image}`
      if (!fs.existsSync(`${__dirname}/public/downloads/${item.image}`)) {
        await downloadImage(image)
      }
      inventory[index].image = relativeUrl
    } catch (err) {
      console.log('error downloading image: ', err)
    }
  })
)

Updating with Auth / Admin panel

Update pages/admin.js with sign up, sign, in, sign out, and confirm sign in methods.

Update components/ViewInventory.js with methods to interact with the actual inventory API.

Update components/formComponents/AddInventory.js with methods to add item to actual inventory API.

Roadmap

  • Full product and category search
  • Auto dropdown navigation for large number of categories
  • Ability to add more / more configurable metadata to item details
  • Themeing + dark mode
  • Optional user account / profiles out of the box
  • Make Admin Panel responsive
  • Have an idea or a request? Submit an issue or a pull request!

Other considerations

Server-side processing of payments

To see an example of how to process payments server-side with stripe, check out the Lambda function in the snippets folder.

Also, consider verifying totals by passing in an array of IDs into the function, calculating the total on the server, then comparing the totals to check and make sure they match.

Download Details:

Author: jamstack-cms
Source Code: https://github.com/jamstack-cms/jamstack-ecommerce 
License: MIT license

#serverless #jamstack #cms #react #javascript 

Jamstack-ecommerce: Jamstack ECommerce Next
Dexter  Goodwin

Dexter Goodwin

1667429700

Tinacms: A Headless CMS for Markdown

Tinacms

Tina is an open-source toolkit for building content management directly into your website.

Tina Demo

Getting Started

Checkout the tutorial to get started with TinaCMS.

Documentation

Visit https://tinacms.org/docs/ to view the full documentation.

Development Process

See our ROADMAP.md to learn how the maintainers work.

Questions?

Tweet Forum

Visit the community forum to ask questions or look us up on on Twitter at @tina_cms.

Changelog

Check the CHANGELOG for the latest updates to TinaCMS.

Contributing

Please see our CONTRIBUTING.md

Maintainers

Download Details:

Author: tinacms
Source Code: https://github.com/tinacms/tinacms 
License: Apache-2.0 license

#typescript #react #markdown #cms 

Tinacms: A Headless CMS for Markdown

Piwigo: Manage your photos with Piwigo

Piwigo

Manage your photo library. Piwigo is open source photo gallery software for the web. Designed for organisations, teams and individuals.

screenshot

The piwigo.org website introduces you to Piwigo. You'll find a demo, forums, wiki and news.

Requirements

  • A webserver (Apache or nginx recommended)
  • PHP 5.3 or greater (7+ recommended)
  • MySQL 5 or greater or MariaDB equivalent
  • ImageMagick (recommended) or PHP GD

Quick start install

NetInstall

More information

Manual

More information

If you do not have your own server, consider the piwigo.com hosting solution.

Contributing

Piwigo is widely driven by its community; if you want to improve the code, fork this repo and submit your changes to the master branch. See our Contribution guide.

Download Details:

Author: Piwigo
Source Code: https://github.com/Piwigo/Piwigo 
License: GPL-2.0, Unknown licenses found

#php #opensource #cms #privacy 

Piwigo: Manage your photos with Piwigo

Statamic: The Core Laravel CMS Composer Package

About Statamic

Statamic is the flat-first, Laravel + Git powered CMS designed for building beautiful, easy to manage websites.

Note: This repository contains the code for the core CMS package. To start your own website project with Statamic, visit the Statamic application repository.

Learning Statamic

Statamic has extensive documentation. We dedicate a significant amount of time and energy every day to improving them, so if something is unclear, feel free to open issues for anything you find confusing or incomplete. We are happy to consider anything you feel will make the docs and CMS better.

Support

We provide official developer support on Statamic Pro projects. Community-driven support is available on the forum and in Discord.

Contributing

Thank you for considering contributing to Statamic! We simply ask that you review the contribution guide before you open issues or send pull requests.

Code of Conduct

In order to ensure that the Statamic community is welcoming to all and generally a rad place to belong, please review and abide by the Code of Conduct.

Important Links

Download Details:

Author: Statamic
Source Code: https://github.com/statamic/cms 
License: View license

#php #cms #graphql #vue #laravel 

Statamic: The Core Laravel CMS Composer Package

Microweber: Drag and Drop Website Builder and CMS with E-commerce

Microweber: Drag-and-Drop CMS

Current version: 1.3 running on Laravel 8!


What is Microweber?

admin panel

Microweber is a Drag and Drop website builder and a powerful next generation CMS. It's based on the PHP Laravel Framework. You can use Microweber to make any kind of website, online store, and blog. The Drag and Drop technology allows you to build your website without any technical knowledge.

The core idea of the software is to let you create your own website, online shop or blog. From this moment of creation, your journey towards success begins. Supporting you along the way will be different modules, customizations and features of the CMS. Many of them are specifically tailored for e-commerce enthusiasts and bloggers.

The most important thing you need to know is that Microweber pairs the latest Drag & Drop technology, with a revolutionary Real-Time Text Writing & Editing feature. This pair of features delivers an improved user experience, easier and quicker content management, a visually appealing environment, and flexibility.

Core features of Microweber

Drag & Drop

Microweber implements Drag & Drop technology. This means that users can manage their content and arrange elements with just a click of the mouse, dragging and dropping them across the screen. Drag & Drop applies to all types of content: images, text fields, videos, and the various modules and customization options you have as a user. The default template “Dream” comes with more than 75+ prepared layouts that you can use via drag and drop.

Drag And Drop

Real Time Text Editing

Live Edit view is the manifestation of the Real-Time Text Writing & Editing core feature of Microweber CMS. Live Edit view changes your website’s interface in real time.

E-commerce solution

Powerful Admin Panel

You can add dynamic pages, posts, and products. All of these can be organized in custom categories in order to achieve a better navigation and showcase of a website's content. New pages can be created using different layouts. In addition, all pages, posts and products come with a number of preset layouts and modules to get users started. These modules can be changed and you can add your own custom set of modules in order to create the most suitable content for your needs.

Powerful Admin Panel

E-commerce Solution

The main focus of Microweber CMS is E-commerce. A rising number of people have grown fond of the idea of online entrepreneurship and we aspire to cover their needs. The software has some built-in features that will help online shop founders see their business grow and excel.

E-commerce Solution

Give a star to Microweber

See it in action

Requirements

  • HTTP server
  • Database server
  • PHP >= 8.1
    • lib-xml must be enabled (with DOM support)
    • GD PHP extension
    • intl PHP extension
    • curl PHP extension
    • zip PHP extension
    • openssl PHP extension
    • bcmath PHP extension
    • fileinfo PHP extension
    • pdo_sqlite PHP extension
    • pdo_mysql PHP extension

HTTP Server

Apache

The mod_rewrite module must be enabled in your Apache configuration. Microweber creates the necessary .htaccess files during installation, including one with Deny All directive in each folder to ensure that there are no entry points other than index.php.

nginx

Add this location directive to your server configuration block. The root directive must point to the base folder of your Microweber website (which by default is where this readme is located).

server {
  location / {
    try_files $uri $uri/ /index.php$is_args$args;
  }
  location ~ /(vendor|src|config|storage|.git|.env) {
   deny all;
   return 404;
 }
}

IIS

You can easily import the .htaccess rewrite rules. Make sure you have enabled the URL Rewrite module for your website.

Database

You have several choices for database engine: MySQL, SQLite, Microsoft SQL Server and PostgreSQL. For small websites we highly recommend SQLite. However, you can connect to more storage services (like MongoDB or Neo4j) and take advantage of the Laravel framework.

On the installation screen you can only choose from databases enabled in your PHP configuration. If you don't see your server of choice in the list you have to enable the corresponding PDO extension for your database server. An example for Microsoft SQL Server. PHP usually comes with PDO enabled by default but you might have to uncomment or add extension directives to your php.ini.

Installation

The fast way: Download and unzip.

Via Composer

Installing dependencies

You need to have Composer installed in order to download Microweber's dependencies.

You can clone and install Microweber with one command:

composer create-project microweber/microweber my_site dev-master --prefer-dist --no-dev

This will install Microweber in a folder named my_site.

Another way is to first clone the repository and then run composer install in the base directory.

File permissions

Make sure these folders, and everything inside, is writeable by the user executing the PHP scripts:

  • config/
  • storage/
  • userfiles/

Getting Started

See the online guides for developers.

Contribute

We are looking for people who want to help us improve Microweber.

If you are a developer, submitting fixes is easy. Just fork the Microweber repository, make your changes, submit a pull request, and be sure all tests are passing.

Discord server

You can join our Discord server here.

Build Status

PHP Unit Tests codecov

Download Details:

Author: Microweber
Source Code: https://github.com/microweber/microweber 
License: MIT license

#php #javascript #cms #ecommerce #laravel 

Microweber: Drag and Drop Website Builder and CMS with E-commerce

Joomla-cms: Home Of The Joomla! Content Management System

Joomla! CMS™

Overview

What is Joomla?

  • Joomla! is a Content Management System (CMS) which enables you to build websites and powerful online applications.
  • It is a simple and powerful web server application which requires a server with PHP and either MySQL or PostgreSQL to run. You can find full technical requirements here.
  • Joomla! is free and Open Source software distributed under the GNU General Public License version 2 or later.

Looking for an installable package?

Joomla is not installable out of the box from this repository, please use:

How to get a working installation from the source

For detailed instructions please visit https://docs.joomla.org/Special:MyLanguage/J4.x:Setting_Up_Your_Local_Environment

You will need:

Steps to setup the local environment:

  • Clone the repository:
git clone https://github.com/joomla/joomla-cms.git
  • Go to the joomla-cms folder:
cd joomla-cms
  • Go to the 4.2-dev branch:
git checkout 4.2-dev
  • Install all the needed composer packages:
composer install
  • Install all the needed npm packages:
npm ci

Things to be aware of when pulling: Joomla creates a cache of the namespaces of its extensions in JOOMLA_ROOT/administrator/cache/autoload_psr4.php. If extensions are created, deleted or removed in git then this file needs to be recreated. You can simply delete the file and it will be regenerated on the next call to Joomla.

Do you want to improve Joomla?

Copyright

Download Details:

Author: joomla
Source Code: https://github.com/joomla/joomla-cms 
License: GPL-2.0 license

#php #cms #hacktoberfest 

Joomla-cms: Home Of The Joomla! Content Management System

PrestaShop: An Open Source E-commerce Web Application

About PrestaShop

PrestaShop is an Open Source e-commerce web application, committed to providing the best shopping cart experience for both merchants and customers. It is written in PHP, is highly customizable, supports all the major payment services, is translated in many languages and localized for many countries, has a fully responsive design (both front and back office), etc. See all the available features.

PrestaShop 1.7 back office

This repository contains the source code of PrestaShop, which is intended for development and preview only. To download the latest stable public version of PrestaShop (currently, version 1.7), please go to the download page on the official PrestaShop site.

About the 'develop' branch

The 'develop' branch of this repository contains the work in progress source code for the next version of PrestaShop.

For more information on our branch system, read our guide on installing PrestaShop for development.

The first stable version of PrestaShop 1.7, 1.7.0.0, was released on November 7th, 2016. Further updates have been released since then. Learn more about it on the Build devblog.

Server configuration

To install the latest PrestaShop 1.7, you need a web server running PHP 7.1+ and any flavor of MySQL 5.0+ (MySQL, MariaDB, Percona Server, etc.). Versions between 1.7.0 and 1.7.6 work with PHP 5.6+.

You will also need a database administration tool, such as phpMyAdmin, in order to create a database for PrestaShop. We recommend the Apache or Nginx web servers (check out our example Nginx configuration file).

You can find more information on our System requirements page and on the System Administrator Guide.

Installation

If you downloaded the source code from GitHub, read our guide on installing PrestaShop for development. If you intend to install a production shop, make sure to download the latest version from our download page, then read the install guide for users.

Docker compose

PrestaShop can also be deployed with Docker and its tool Docker compose.

To run the software, use:

docker-compose up

Then reach your shop on this URL: http://localhost:8001

Docker will bind your port 8001 to the web server. If you want to use other port, open and modify the file docker-compose.yml. MySQL credentials can also be found and modified in this file if needed.

Note: Before auto-installing PrestaShop, this container checks the file config/settings.inc.php does not exist on startup. If you expect the container to (re)install your shop, remove this file if it exists. And make sure the container user www-data has write access to the whole workspace.

Documentation

For technical information (core, module and theme development, performance...), head on to PrestaShop DevDocs

If you want to learn how to use PrestaShop 1.7, read our User documentation.

First-time users will be particularly interested in the following guides:

  • Getting Started: How to install PrestaShop, and what you need to know.
  • User Guide: All there is to know to put PrestaShop to good use.
  • Updating Guide: Switching to the newest version is not trivial. Make sure you do it right.
  • Merchant's Guide: Tips and tricks for first-time online sellers.
  • The FAQ page should also be of tremendous help to you.

Contributing

PrestaShop is an Open Source project, and it wouldn't be possible without the help of the hundreds of contributors, who submitted improvements and bugfixes over the years. Thank you all!

If you want to contribute code to PrestaShop, read the CONTRIBUTING.md file in this repository or read the tutorials about contribution on the documentation site.

Don't know where to start? Check the good first issue label to have a look at all beginner-friendly improvements and bug fixes.

If you want to help translate PrestaShop in your language, join us on Crowdin!

Current Crowdin status (for more than 75 registered languages): Crowdin

Reporting Issues

Our bugtracker is on GitHub. We encourage you to create detailed issues as soon as you see them.

Read our Contribute by reporting issues guide for details and tips.

Reporting Security Issues

Responsible (and private) disclosure is a standard practice when someone encounters a security problem: before making it public, the discoverer informs the Core team about it, so that a fix can be prepared, and thus minimize the potential damage.

The PrestaShop team tries to be very proactive when preventing security problems. Even so, critical issues might surface without notice.

This is why we have set up a Bug Bounty Program where anyone can privately contact us with all the details about issues that affect the security of PrestaShop merchants or customers. Our security team will answer you, and discuss of a timeframe for your publication of the details.

Understanding a security issue means knowing how the attacker got in and hacked the site. If you have those details, then please do contact us privately about it (and please do not publish those details before we answer). If you do not know how the attacker got in, please ask for help on the support forums.

Extending PrestaShop

PrestaShop is a very extensible e-commerce platform, both through modules and themes. Developers can even override the default components and behaviors. Learn more about this on the Modules documentation and the Themes documentation.

Community forums

You can discuss about e-commerce, help other merchants and get help, and contribute to improving PrestaShop together with the PrestaShop community on the PrestaShop forums or on the PrestaShop Slack channel.

Thank you for downloading and using the PrestaShop Open Source e-commerce solution!

Download Details:

Author: PrestaShop
Source Code: https://github.com/PrestaShop/PrestaShop 
License: View license

#php #cms #ecommerce 

PrestaShop: An Open Source E-commerce Web Application

Filament: Admin Panel, form Builder and Table Builder For Laravel

Filament

Admin panel, form builder and table builder for Laravel. Built with the TALL stack. Designed for humans.

Contributing

If you want to contribute to Filament packages, you may want to test it in a real Laravel project:

  • Fork this repository to your GitHub account.
  • Create a Laravel app locally.
  • Clone your fork in your Laravel app's root directory.
  • In the /filament directory, create a branch for your fix, e.g. fix/error-message.

Install the packages in your app's composer.json:

{
    ...
    "require": {
        "filament/filament": "*",
    },
    "repositories": [
        {
            "type": "path",
            "url": "filament/packages/*"
        }
    ],
    ...
}

Now, run composer update.

Packages

Admin Panel • DocumentationDemo

composer require filament/filament

Form Builder • Documentation

composer require filament/forms

Table Builder • Documentation

composer require filament/tables

Notifications • Documentation

composer require filament/notifications

Spatie Media Library Plugin • Documentation

composer require filament/spatie-laravel-media-library-plugin

Spatie Settings Plugin • Documentation

composer require filament/spatie-laravel-settings-plugin

Spatie Tags Plugin • Documentation

composer require filament/spatie-laravel-tags-plugin

Spatie Translatable Plugin • Documentation

composer require filament/spatie-laravel-translatable-plugin

Need Help?

🐞 If you spot a bug, please submit a detailed issue, and wait for assistance.

🤔 If you have a question or feature request, please start a new discussion. We also have a Discord community. For quick help, ask questions in the appropriate channel.

🔐 If you discover a vulnerability, please review our security policy.

Download Details:

Author: Filamentphp
Source Code: https://github.com/filamentphp/filament 
License: MIT license

#php #cms #builder #laravel 

Filament: Admin Panel, form Builder and Table Builder For Laravel

Pimcore: Open Source Data & Experience Management Platform

Pimcore - Open Source Data & Experience Management Platform: PIM, MDM, CDP, DAM, DXP/CMS & Digital Commerce

Contribute

Bug fixes: please create a pull request including a step by step description to reproduce the problem
Contribute features: contact the core-team on our Gitter channel before you start developing
Security vulnerabilities: please use this form

For details, please have a look at our contributing guide.

Supported Versions

VersionSupportedLTS**CE End of life***
<= 4.x2017-09-28
5.x2019-12-09
6.x2021-06-23
10.5 
11.x 

** Long-term support is only available as part of our enterprise subscription.
*** Community Edition end of life date, this doesn't affect the commercial LTS offering.

Overview

Technology and Architecture

Key Benefits and Advantages

⚒ Data Modelling and UI Design at the same Time

No matter if you're dealing with unstructured web documents or structured data for MDM/PIM, you define the UI design (web documents by a template and structured data with an intuitive graphical editor), Pimcore knows how to persist the data efficiently and optimized for fast access.

🎛 Agnostic and Universal Framework for your Data

Due to the framework approach, Pimcore is very flexible and adapts perfectly to your needs. Built on top of the well-known Symfony Framework you have a solid and modern foundation for your project.

🚀 Extensible and huge Symfony Community

Benefit from all existing Symfony Components and Bundles provided by the community or create your own Bundles to extend your Projects with reusable components.

💎 Your Digital World consolidated in one Platform

No more API, import/export and synchronization hell between MDM/PIM, E-Commerce, DAM, and your Web-CMS. All is working seamlessly together, natively ... this is what Pimcore is built for.

✨️ Modern and Intuitive UI

We love good-looking user interfaces, designed to be efficient for daily use and optimized for a great experience for editors.

Preview and Demo

Data Objects

Pimcore Admin Interface Screenshot PIM/MDM Manage any structured data based on a predefined data model, either manually or automatically via the APIs. Define the structure and attributes of your objects by using the class editor. Manage any data – products (PIM/MDM), categories, customers (CDP), orders (digital commerce), blog articles (DXP/CMS). Data Objects provide the possibility to manage structured data for multiple output channels from a single source. By centralizing data in one place, Pimcore's data objects enable you to achieve better data completeness and data quality, allowing you to create and maintain a consistent, up-to-date customer experience across multiple touchpoints in less time.

Digital Assets

Pimcore Admin Interface Screenshot DAM Assets are the DAM part of Pimcore. Store, manage and organize digital files such as images, videos, PDFs, Word/Excel documents in a folder structure. Preview 200+ file types directly in Pimcore, edit pictures, and enrich files with additional meta-data. Facial recognition for focal points in images and support for VR/360° previews is available. Editors only need to maintain one high-resolution version of a file in the system. Pimcore can automatically generate all required output formats for various channels such as commerce, apps, websites. Of course, including comprehensive user management and version control.

Documents

Pimcore Admin Interface Screenshot CMS The DXP/CMS part of Pimcore for managing unstructured content such as the pages of a website and its navigation. Based on Twig templates, documents render physical HTML/CSS pages and provide the capabilities to manage the presentation of data, exactly how customers will experience it. They can be composed by administrators by arranging predefined layout elements. Pimcore documents provide multilingual and multi-site capabilities for websites, including emails and newsletters. Total frontend flexibility enables a perfect blend of content and commerce. You can also use them to create content for offline channels, such as printed catalogs (web-to-print).

Demo (Community Edition)

Admin-URL (stable): https://demo.pimcore.fun/admin/
Admin-URL (dev): https://11.x-dev.pimcore.fun/admin/
Username: admin
Password: demo

Getting Started

Only 3 commands to start! 😎

COMPOSER_MEMORY_LIMIT=-1 composer create-project pimcore/skeleton ./my-project
cd ./my-project
./vendor/bin/pimcore-install

This will install an empty skeleton application, but we're also offering a demo package for your convenience - of course also with 3 commands 💪 Click here for more installation options and a detailed guide

Download Details:

Author: pimcore
Source Code: https://github.com/pimcore/pimcore 
License: Unknown, Unknown licenses found

#php #cms #ecommerce #shop 

Pimcore: Open Source Data & Experience Management Platform
Elian  Harber

Elian Harber

1664933940

Hugo: The World’s Fastest Framework for Building Websites

HUGO

A Fast and Flexible Static Site Generator built with love by bep, spf13 and friends in Go.

Overview

Hugo is a static HTML and CSS website generator written in Go. It is optimized for speed, ease of use, and configurability. Hugo takes a directory with content and templates and renders them into a full HTML website.

Hugo relies on Markdown files with front matter for metadata, and you can run Hugo from any directory. This works well for shared hosts and other systems where you don’t have a privileged account.

Hugo renders a typical website of moderate size in a fraction of a second. A good rule of thumb is that each piece of content renders in around 1 millisecond.

Hugo is designed to work well for any kind of website including blogs, tumbles, and docs.

Choose How to Install

If you want to use Hugo as your site generator, simply install the Hugo binaries.

To contribute to the Hugo source code or documentation, you should fork the Hugo GitHub project and clone it to your local machine.

Finally, you can install the Hugo source code with go, build the binaries yourself, and run Hugo that way. Building the binaries is an easy task for an experienced go getter.

Install Hugo as Your Site Generator (Binary Install)

Use the installation instructions in the Hugo documentation.

Build and Install the Binaries from Source (Advanced Install)

Prerequisite Tools

Fetch from GitHub

To fetch and build the source from GitHub:

mkdir $HOME/src
cd $HOME/src
git clone https://github.com/gohugoio/hugo.git
cd hugo
go install

If you are a Windows user, substitute the $HOME environment variable above with %USERPROFILE%.

If you want to compile with Sass/SCSS support use --tags extended and make sure CGO_ENABLED=1 is set in your go environment. If you don't want to have CGO enabled, you may use the following command to temporarily enable CGO only for hugo compilation:

CGO_ENABLED=1 go install --tags extended

The Hugo Documentation

The Hugo documentation now lives in its own repository, see https://github.com/gohugoio/hugoDocs. But we do keep a version of that documentation as a git subtree in this repository. To build the sub folder /docs as a Hugo site, you need to clone this repo:

git clone git@github.com:gohugoio/hugo.git

Contributing code to Hugo

Note March 16th 2022: We are currently very constrained on human resources to do code reviews, so we currently require any new Pull Requests to be limited to bug fixes closing an existing issue. Also, we have updated to Go 1.18, but we will currently not accept any generic rewrites, "interface{} to any" replacements and similar.

For a complete guide to contributing to Hugo, see the Contribution Guide.

We welcome contributions to Hugo of any kind including documentation, themes, organization, tutorials, blog posts, bug reports, issues, feature requests, feature implementations, pull requests, answering questions on the forum, helping to manage issues, etc.

The Hugo community and maintainers are very active and helpful, and the project benefits greatly from this activity.

Asking Support Questions

We have an active discussion forum where users and developers can ask questions. Please don't use the GitHub issue tracker to ask questions.

Reporting Issues

If you believe you have found a defect in Hugo or its documentation, use the GitHub issue tracker to report the problem to the Hugo maintainers. If you're not sure if it's a bug or not, start by asking in the discussion forum. When reporting the issue, please provide the version of Hugo in use (hugo version).

Dependencies

Hugo stands on the shoulder of many great open source libraries.

If you run hugo env -v you will get a complete and up to date list.

In Hugo 0.100.1 that list is, in lexical order:

cloud.google.com/go/compute="v1.6.1"
cloud.google.com/go/iam="v0.3.0"
cloud.google.com/go/storage="v1.22.0"
cloud.google.com/go="v0.101.0"
github.com/Azure/azure-pipeline-go="v0.2.3"
github.com/Azure/azure-storage-blob-go="v0.14.0"
github.com/Azure/go-autorest/autorest/adal="v0.9.15"
github.com/Azure/go-autorest/autorest/date="v0.3.0"
github.com/Azure/go-autorest/autorest="v0.11.20"
github.com/Azure/go-autorest/logger="v0.2.1"
github.com/Azure/go-autorest/tracing="v0.6.0"
github.com/BurntSushi/locker="v0.0.0-20171006230638-a6e239ea1c69"
github.com/PuerkitoBio/purell="v1.1.1"
github.com/PuerkitoBio/urlesc="v0.0.0-20170810143723-de5bf2ad4578"
github.com/alecthomas/chroma="v0.10.0"
github.com/armon/go-radix="v1.0.0"
github.com/aws/aws-sdk-go-v2/config="v1.7.0"
github.com/aws/aws-sdk-go-v2/credentials="v1.4.0"
github.com/aws/aws-sdk-go-v2/feature/ec2/imds="v1.5.0"
github.com/aws/aws-sdk-go-v2/internal/ini="v1.2.2"
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url="v1.3.0"
github.com/aws/aws-sdk-go-v2/service/sso="v1.4.0"
github.com/aws/aws-sdk-go-v2/service/sts="v1.7.0"
github.com/aws/aws-sdk-go-v2="v1.9.0"
github.com/aws/aws-sdk-go="v1.43.5"
github.com/aws/smithy-go="v1.8.0"
github.com/bep/clock="v0.3.0"
github.com/bep/debounce="v1.2.0"
github.com/bep/gitmap="v1.1.2"
github.com/bep/goat="v0.5.0"
github.com/bep/godartsass="v0.14.0"
github.com/bep/golibsass="v1.1.0"
github.com/bep/gowebp="v0.1.0"
github.com/bep/overlayfs="v0.6.0"
github.com/bep/tmc="v0.5.1"
github.com/clbanning/mxj/v2="v2.5.5"
github.com/cli/safeexec="v1.0.0"
github.com/cpuguy83/go-md2man/v2="v2.0.1"
github.com/disintegration/gift="v1.2.1"
github.com/dlclark/regexp2="v1.4.0"
github.com/dustin/go-humanize="v1.0.0"
github.com/evanw/esbuild="v0.14.42"
github.com/frankban/quicktest="v1.14.3"
github.com/fsnotify/fsnotify="v1.5.4"
github.com/getkin/kin-openapi="v0.94.0"
github.com/ghodss/yaml="v1.0.0"
github.com/go-openapi/jsonpointer="v0.19.5"
github.com/go-openapi/swag="v0.19.5"
github.com/gobuffalo/flect="v0.2.5"
github.com/gobwas/glob="v0.2.3"
github.com/gohugoio/go-i18n/v2="v2.1.3-0.20210430103248-4c28c89f8013"
github.com/gohugoio/locales="v0.14.0"
github.com/gohugoio/localescompressed="v1.0.1"
github.com/golang-jwt/jwt/v4="v4.0.0"
github.com/golang/groupcache="v0.0.0-20210331224755-41bb18bfe9da"
github.com/golang/protobuf="v1.5.2"
github.com/google/go-cmp="v0.5.8"
github.com/google/uuid="v1.3.0"
github.com/google/wire="v0.5.0"
github.com/googleapis/gax-go/v2="v2.3.0"
github.com/googleapis/go-type-adapters="v1.0.0"
github.com/gorilla/websocket="v1.5.0"
github.com/hairyhenderson/go-codeowners="v0.2.3-0.20201026200250-cdc7c0759690"
github.com/inconshreveable/mousetrap="v1.0.0"
github.com/jdkato/prose="v1.2.1"
github.com/jmespath/go-jmespath="v0.4.0"
github.com/kr/pretty="v0.3.0"
github.com/kr/text="v0.2.0"
github.com/kyokomi/emoji/v2="v2.2.9"
github.com/mailru/easyjson="v0.0.0-20190626092158-b2ccc519800e"
github.com/mattn/go-ieproxy="v0.0.1"
github.com/mattn/go-isatty="v0.0.14"
github.com/mattn/go-runewidth="v0.0.9"
github.com/mitchellh/hashstructure="v1.1.0"
github.com/mitchellh/mapstructure="v1.5.0"
github.com/muesli/smartcrop="v0.3.0"
github.com/niklasfasching/go-org="v1.6.2"
github.com/olekukonko/tablewriter="v0.0.5"
github.com/pelletier/go-toml/v2="v2.0.0-beta.7.0.20220408132554-2377ac4bc04c"
github.com/rogpeppe/go-internal="v1.8.1"
github.com/russross/blackfriday/v2="v2.1.0"
github.com/rwcarlsen/goexif="v0.0.0-20190401172101-9e8deecbddbd"
github.com/sanity-io/litter="v1.5.5"
github.com/sass/libsass="3.6.5"
github.com/spf13/afero="v1.8.2"
github.com/spf13/cast="v1.5.0"
github.com/spf13/cobra="v1.4.0"
github.com/spf13/fsync="v0.9.0"
github.com/spf13/jwalterweatherman="v1.1.0"
github.com/spf13/pflag="v1.0.5"
github.com/tdewolff/minify/v2="v2.11.5"
github.com/tdewolff/parse/v2="v2.5.31"
github.com/webmproject/libwebp="v1.2.0"
github.com/yuin/goldmark="v1.4.12"
go.opencensus.io="v0.23.0"
go.uber.org/atomic="v1.9.0"
gocloud.dev="v0.24.0"
golang.org/x/crypto="v0.0.0-20211108221036-ceb1ce70b4fa"
golang.org/x/image="v0.0.0-20211028202545-6944b10bf410"
golang.org/x/net="v0.0.0-20220425223048-2871e0cb64e4"
golang.org/x/oauth2="v0.0.0-20220411215720-9780585627b5"
golang.org/x/sync="v0.0.0-20210220032951-036812b2e83c"
golang.org/x/sys="v0.0.0-20220422013727-9388b58f7150"
golang.org/x/text="v0.3.7"
golang.org/x/tools="v0.1.10"
golang.org/x/xerrors="v0.0.0-20220411194840-2f41105eb62f"
google.golang.org/api="v0.76.0"
google.golang.org/genproto="v0.0.0-20220426171045-31bebdecfb46"
google.golang.org/grpc="v1.46.0"
google.golang.org/protobuf="v1.28.0"
gopkg.in/yaml.v2="v2.4.0"

Download Details:

Author: Gohugoio
Source Code: https://github.com/gohugoio/hugo 
License: Apache-2.0 license

#go #golang #cms #hacktoberfest 

Hugo: The World’s Fastest Framework for Building Websites
Reid  Rohan

Reid Rohan

1663005600

8 Best Libraries for Node-Powered CMS Frameworks with JavaScript

In today's post we will learn about 8 Best Libraries for Node-Powered CMS Frameworks with JavaScript.

Content management systems (CMS) enable people without a strong technical background to publish content. We can use CMSs to manage our content and its delivery. There are different type of CMSs that perform different purposes and come with different features.

In this article, we will learn about some of the best Node.js CMSs, and hopefully can serve as a guide we can use to choose the best CMS that fits our requirements.

Table of contents:

  • KeystoneJS - powerful CMS and web app framework.
  • Reaction Commerce - reactive CMS, real-time architecture and design.
  • Ghost - simple, powerful publishing platform.
  • Apostrophe - CMS with content editing and essential services.
  • Cody - CMS with WSYWYG editor.
  • Hatch.js - CMS platform with social features.
  • TaracotJS - fast and minimalist CMS based on Node.js.
  • Nodizecms - CMS for CoffeeScript lovers.

1 - KeystoneJS: Powerful CMS and web app framework.

Usage & Documentation

Keystone 6 is published to npm under the @keystone-6/* namespace.

You can find our extended documentation on our website, but some quick links that might be helpful:

  • Read Why Keystone to learn about our vision and what's in the box.
  • Getting Started walks you through first steps with the create-keystone-app CLI.
  • Our Examples contain a growing collection of projects you can run locally to learn more about a Keystone feature.
  • An API Reference contains the details on Keystone's foundational building blocks.
  • Some Guides offer practical walkthroughs on how to build with those blocks.

💡 While our API Reference is generally complete, we are are still working hard on increasing the fidelity of our guides and examples. If you have an example you'd like see, please open a GitHub discussion!

Our @keystone-6/* packages are written for the Node Maintenance and Active LTS versions of Node; and our continuous integration seamlessly tracks that. You may have success with Node versions that are Pending or End-of-Life, but you may have problems too.

Looking for Keystone 5?

The Keystone 5 codebase is now in maintenance mode and lives at keystonejs/keystone-5. For more information read Keystone 5 and beyond.

Enjoying Keystone?

Interested in what's new?

For a birds-eye view of what the Keystone project is working towards, check out our Roadmap.

Feedback

Share your thoughts and feature requests on Slack (preferred) or Twitter. Bugfixes and issues always welcome.

View on Github

2 - Reaction Commerce: Reactive CMS, real-time architecture and design.

Getting started

For complete documentation go to Open Commerce Quickstart for all supported operating systems.

What you need

Clone and Start the platform

git clone https://github.com/reactioncommerce/reaction-development-platform.git
cd reaction-development-platform
make

Behind the scenes, the make process clones all of the relevant Open Commerce software repositories, sets up each environment, and pulls, builds, and starts each Docker container.

When make completes, three services will be running on localhost:

  • Open Commerce API (port 3000), including the core plugins. This service also contains the GraphQL playground at localhost:3000/graphql.
  • Example Storefront (port 4000), which is built with Next.js.
  • Admin dashboard (port 4080), used to manage shop settings, accounts, products, and orders.

Go to the complete installation instructions to see how to set up your store

View on Github

3 - Ghost: Simple, powerful publishing platform.

The easiest way to get a production instance deployed is with our official Ghost(Pro) managed service. It takes about 2 minutes to launch a new site with worldwide CDN, backups, security and maintenance all done for you.

For most people this ends up being the best value option cause of how much time it saves — and 100% of revenue goes to the Ghost Foundation; funding the maintenance and further development of the project itself. So you’ll be supporting open source software and getting a great service!

If you prefer to run on your own infrastructure, we also offer official 1-off installs and managed support and maintenance plans via Ghost(Valet) - which can save a substantial amount of developer time and resources.

Quickstart install

If you want to run your own instance of Ghost, in most cases the best way is to use our CLI tool

npm install ghost-cli -g

Then, if installing locally add the local flag to get up and running in under a minute - Local install docs

ghost install local

or on a server run the full install, including automatic SSL setup using LetsEncrypt - Production install docs

ghost install

Check out our official documentation for more information about our recommended hosting stack & properly upgrading Ghost, plus everything you need to develop your own Ghost themes or work with our API.

Contributors & advanced developers

For anyone wishing to contribute to Ghost or to hack/customize core files we recommend following our full development setup guides: Contributor guideDeveloper setupAdmin App dev guide

View on Github

4 - Apostrophe: CMS with content editing and essential services.

ApostropheCMS is content software for everyone in an organization. It helps teams of all sizes create dynamic digital experiences with elegance and efficiency by blending powerful features, developer happiness, and a low learning curve for content creators. Apostrophe has powered websites and web apps for organizations large and small for over a decade.

Getting Started

To get started with Apostrophe 3, follow these steps to set up a local development environment. For more detail, refer to the A3 getting started guide in the documentation.

Prerequisites

We recommend installing the following with Homebrew on macOS. If you're on Linux, you should use your package manager (apt or yum). If you're on Windows, we recommend the Windows Subsystem for Linux.

SoftwareMinimum VersionNotes
Node.js12.xOr better
npm6.xOr better
MongoDB3.6Or better
ImagemagickAnyFaster image uploads, GIF support (optional)

View on Github

5 - Cody: CMS with WSYWYG editor.

Getting Started

By following these steps you will be running your own CMS system in no time. If any of the steps do not work for you, please report this as an issue on this github repository and we will look into it as soon as possible!

Install nodejs and mysql

Create a new directory for your cms and navigate to it (in unix):

  $ mkdir codydev
  $ cd codydev

Install cody and its dependencies

  $ npm install cody

Set up a new web site using the guided scaffolding

  $ node ./node_modules/cody/bin/create_site
  
  Creating cody web tree in current directory
  1) Enter sitename: mysite
  Note: also using my site as database name.
  Note: by default the mysql root user has no password so you can just hit enter, if you forgot the root password see http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
  2) Enter root password for mysql so we can create a new database and user: 
  3) Enter site database user: mysitename
  4) Enter site database password: mysitepassword
  5) Enter hostname for site: mysite.local (or localhost)
  Site mysite has been prepared.
  
  Please create DNS entries, or add to /etc/hosts:
  127.0.0.1     mysite.local
  
  Also check index.js and config.json to fine-tune extra parameters, encryption key, ...
  
  Start your site using:
  forever start mysite.js
  or
  node mysite.js

Add a DNS entry for given hostname, e.g.

  $ sudo bash -c 'echo 127.0.0.1 mysite.local >> /etc/hosts'

Run the server

  $ node mysite.js

or if you want to automatically restart the server on changes

  $ forever start mysite.js

Go to "http://mysite.local:3001" to see your current site and go to "http://mysite.local:3001/en/dashboard" to see the CMS of the site.

the default users are: 'super', 'admin', 'test' and 'user' which all have password 'empty' you can ofcourse use "http://localhost:3001" too.

View on Github

6 - Hatch.js: CMS platform with social features.

Dependencies

Hatch.js requires Node 0.8+, Redis 2.6+ and imagemagick to be installed. Bower is also required to install client-side dependencies.

npm install -g bower

Installation

Use Hatch.js as an npm. Please see the examples for how to use Hatch.js in this way:

npm install hatchjs

Or standalone:

git clone https://github.com/inventures/hatchjs

Then:

npm install
bower install

Running Hatch.js

Like most node apps, Hatch.js listens by default on port 3000. We recommend using Nginx or similar to proxy requests via port 80 or 443.

node server

Running in production mode is strongly recommended for live sites. Assets are automatically combined, minified and strongly cached, view templates are pre-compiled resulting in better performance all round:

NODE_ENV=production node .
NODE_ENV=production CLUSTER=1 node .

Visit http://hostname:3000 to get started with your first group.

By default Hatch.js connects to Redis DB 0 on 127.0.0.1. You can change this by modifying ./config/database.js.

View on Github

7 - TaracotJS: fast and minimalist CMS based on Node.js.

Demo

Please take a look at the demo installation instance: https://demo.taracot.org/cp (use admin as username and admin as password).

Note: the demo is automatically re-installing every hour.

Installation guide

Follow this guide for TaracotJS instance installation.

Pre-requisites

Download and install Node.js for your operating system: http://nodejs.org/download/. Node Package Manager (npm) should be installed by default; if not, please take care of it's installation.

MongoDB and Redis are required. If your operating system is x64-based Windows, you may download the pre-compiled MongoDB and Redis here: https://taracot.org/source/db/mongo_redis_win64.zip. Unzip the files included to any folder on your hard disk and start using start.cmd. Two minimized console applications will be started, they should remain open every time you run TaracotJS server. For Linux/UNIX and MacOS-based operating systems you may install the corresponding MongoDB and Redis packages manually or compile from sources.

Quick Start

The quickest way to get started with TaracotJS is to utilize the executable taracotjs to generate an application as shown below.

Install taracotjs-generator:

npm install -g taracotjs-generator

Create Taracot JS instance:

taracotjs /tmp/foo && cd /tmp/foo

Install dependencies:

npm install

Edit config.js (using your favorite text editor), don't forget to set MongoDB connection URL and Redis port. You don't have to edit secrets and salt at this point, they will be auto-generated on the next step.

Perform system post-configuration:

cd bin && node install-system && node install-modules

Rock and Roll:

node webserver

If everything goes well, you will see the following message: “TaracotJS server listening on port: 3000” (3000 is the default port). Open up your favorite browser and open the following page: http://127.0.0.1:3000/.

Control panel is accessible via http://127.0.0.1:3000/cp/. Default username is admin, default password is admin.

View on Github

8 - Nodizecms: CMS for CoffeeScript lovers.

Status

NodizeCMS is still under heavy development, there's a ton of unimplemented features and even more bugs.

It's not ready for production yet, but you still can start to play with it and have plenty of fun !

Application stack

nodejs >0.6.x

express

zappajs

sequelize

mysql

redis (optional)

Installation

Installation has been tested under Linux, MacOS and Windows.

Git, MySQL, Node.js and NPM have to be installed

Make a global install of CoffeeScript

npm install -g coffee-script

Retrieve NodizeCMS

git clone git://github.com/nodize/nodizecms.git

Install dependencies

cd nodizecms

npm install

Create a MySQL database and modify the file "/themes/pageone/settings/database.json"

mysqladmin create pageone

Start the server

coffee app.coffee

When your database is empty, a default "admin" user will be created with a random password at server startup :

._   _           _ _         
| \ | |         | (_)        
|  \| | ___   __| |_ _______ 
| . ` |/ _ \ / _` | |_  / _ \
| |\  | (_) | (_| | |/ /  __/
\_| \_/\___/ \__,_|_/___\___|

listening on port 3000
SuperAdmin group created
Default user created, login = admin, password = 45A90 <----------- YOUR PASSWORD
Default lang created
Default menu created

Now you can access to the admistration module, open you browser on "http://127.0.0.1:3000/admin" (replace 127.0.0.1 by your server IP/URL if it's not running on the localhost).

If you're still there and that everything went fine, you should have a nice but empty backend.

Let's load some data : (replace "pageone" by your database name)

mysql pageone < themes/pageone/sql/pages.sql

or (if you have some access rights defined in MySQL) :

mysql pageone -u root -p < themes/pageone/sql/pages.sql

Now refresh your browser ! Do you see pages & articles ? Great !

Open a new browser window and enter this URL : "http://127.0.0.1:3000", if you are lucky, you're just looking at a dynamic webpage powered by Node.js & NodizeCMS !

View on Github

Thank you for following this article.

Related videos:

SonicJs Node.js CMS Demo Part 1 Overview

#javascript #node #cms #frameworks 

8 Best Libraries for Node-Powered CMS Frameworks with JavaScript

6 Popular Django CMS Packages for Developers

A content management system (CMS) is an application that is used to manage content, allowing multiple contributors to create, edit and publish. Content in a CMS is typically stored in a database and displayed in a presentation layer based on a set of templates like a website.

The following are common features of a CMS:

  • Content creation, allows users to easily create and format content
  • Content storage, stores content in one place, in a consistent fashion
  • Workflows, assigns permissions for managing content based on roles such as authors, editors and admins
  • Publishing, organizes and pushes content live

In this article below, We'll share 6 Popular Django CMS Packages for Developers

1.   coderedcms

Wagtail + CodeRed Extensions enabling rapid development of marketing-focused websites.

CRX, formerly known as CodeRed CMS, provides a large set of enhancements and pre-built components for Wagtail which are ready to use out-of-the box! This saves development time and avoids "re-inventing the wheel" by providing features commonly needed by websites:

  • Streamfield blocks and page templates for Bootstrap 5: rows, columns, hero units, carousels, buttons, modals, cards, and more!
  • Settings for adding logo, navigation, footer, and other common elements.
  • Rich set of SEO tagging attributes on each page.
  • Configurable Google Analytics and other tracking.
  • Robust form builder including the ability for multi-step forms, conditional logic, customized confirmation emails, MailChimp integration, and more.
  • Article pages for building blogs, news, etc.
  • Calendar and event pages.
  • Google Maps blocks, and store locator functionality.
  • Dynamic classifier system, for creating filterable categories.
  • Website search functionality, filterable by page type.
  • Style your site using SASS/SCSS directly from Django, without the need for Node.js

Installtion

pypi i coderedcms

View Github

2.   FeinCMS

A Django-based CMS with a focus on extensibility and concise code

When was the last time, that a pre-built software package you wanted to use got many things right, but in the end, you still needed to modify the core parts of the code just because it wasn't (easily) possible to customize the way, a certain part of the system behaved?

Django came to rescue all of us, who were not happy with either doing everything on our own or customizing another software package until it was impossible to update.

The biggest strength of a framework-like design is, that it tries not to have a too strong view of what the user should do. It should make some things easy, but just GET OUT OF THE WAY most of the time.

Just after discovering the benefits of a framework-like approach to software design, we fall back into the rewrite everything all the time mindset and build a CMS which has very strong views how content should be structured. One rich text area, a media library and some templates, and we have a simple CMS which will be good enough for many pages. But what if we want more? If we want to be able to add custom content? What if the user can't be trusted to resize images before uploading them? What if you'd like to add a gallery somewhere in between other content? What if the user should be able to administer not only the main content, but also a sidebar, the footer?

With FeinCMS, this does not sound too good to be true anymore. And it's not even complicated.

FeinCMS is an extremely stupid content management system. It knows nothing about content -- just enough to create an admin interface for your own page content types. It lets you reorder page content blocks using a drag-drop interface, and you can add as many content blocks to a region (f.e. the sidebar, the main content region or something else which I haven't thought of yet). It provides helper functions, which provide ordered lists of page content blocks. That's all.

Adding your own content types is extremely easy. Do you like markdown that much, that you'd rather die than using a rich text editor? Then add the following code to your project, and you can go on using the CMS without being forced to use whatever the developers deemed best:

from markdown2 import markdown
from feincms.module.page.models import Page
from django.db import models

class MarkdownPageContent(models.Model):
    content = models.TextField()

    class Meta:
        abstract = True

    def render(self, **kwargs):
        return markdown(self.content)

Page.create_content_type(MarkdownPageContent)

That's it. Not even ten code lines for your own page content type.

Installtion

pypi i FeinCMS

View Github

3.   FeinCMS

A flexible, scalable CMS with custom node types, and flexible block content.

Installation

First install the module, preferably in a virtual environment:

pip install django-fluent-pages

All dependencies will be automatically installed.

Features:

  • A fully customizable page hierarchy.
  • Support for multilingual websites.
  • Support for multiple websites in a single database.
  • Fast SEO-friendly page URLs.
  • SEO optimized (meta keywords, description, title, 301-redirects, sitemaps integration).
  • Plugin support for custom page types, which:

View Github

4.   django-fiber

Django Fiber - a simple, user-friendly CMS for all your Django projects

Installation

We're assuming you are using Django 1.9-2.0. Then simply install Fiber using pip:

$ pip install django-fiber

Setup

Open settings.py and add the following to your INSTALLED_APPS

INSTALLED_APPS = (
     'mptt',
     'compressor',
     'easy_thumbnails',
     'fiber',
     ...
)

Add Fiber to the MIDDLEWARE_CLASSES list

import django.conf.global_settings as DEFAULT_SETTINGS

MIDDLEWARE_CLASSES = DEFAULT_SETTINGS.MIDDLEWARE_CLASSES + (
    'fiber.middleware.ObfuscateEmailAddressMiddleware',
    'fiber.middleware.AdminPageMiddleware',
    ...
)

(Or, add the same items to MIDDLEWARE if you are using Django 1.10 or later.)

Add the request context processor

TEMPLATES = [
    {
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.request',
                ...
            ]
        }
        ...
    },
]

And configure compressor

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
STATICFILES_FINDERS = DEFAULT_SETTINGS.STATICFILES_FINDERS + [
    'compressor.finders.CompressorFinder',
]

Edit your urls.py to add the Fiber site to your url-patterns

from django.urls import include, path, re_path
from fiber.views import page

urlpatterns = [
    ...
    path('api/v2/', include('fiber.rest_api.urls')),
    path('admin/fiber/', include('fiber.admin_urls')),
    ...
    re_path('', page),
]

View Github

5.   django-page-cms

This Django CMS enables you to create and administrate hierarchical pages in a simple and powerful way.

https://github.com/batiste/django-page-cms/raw/master/doc/images/admin-screenshot-1.png
https://github.com/batiste/django-page-cms/raw/master/doc/images/inline-edit.png

Installtion

pypi i django-page-cms

View Github

6.   django-widgy

A CMS framework for Django built on a heterogenous tree editor.

Widgy is a content editor somewhat in the line of CKEditor. It is not a WYSIWYG editor though. Widgy is more suited than CKEditor for editing pages, as in a CMS because it allows you to edit specific parts of the page and those parts know how to render themselves. Whereas a WYSIWYG stores its data in HTML, Widgy stores it in a Tree where each node can render itself.

Installation

Install with pip.

pip install django-widgy

View Github

Here are all 6 Popular Django CMS Packages for Developers in my opinion. If you find it interesting, please like and share to support.

#django #python #cms

6 Popular Django CMS Packages for Developers

Ponzu: Headless CMS with Automatic JSON API

Ponzu  

Ponzu is a powerful and efficient open-source HTTP server framework and CMS. It provides automatic, free, and secure HTTP/2 over TLS (certificates obtained via Let's Encrypt), a useful CMS and scaffolding to generate content editors, and a fast HTTP API on which to build modern applications.

Ponzu is released under the BSD-3-Clause license (see LICENSE). (c) Boss Sauce Creative, LLC

Why?

With the rise in popularity of web/mobile apps connected to JSON HTTP APIs, better tools to support the development of content servers and management systems are necessary. Ponzu fills the void where you want to reach for Wordpress to get a great CMS, or Rails for rapid development, but need a fast JSON response in a high-concurrency environment.

Because you want to turn this:

$ ponzu gen content song title:"string" artist:"string" rating:"int" opinion:"string":richtext spotify_url:"string"

Into this:

Generated content/song.go

What's inside

  • Automatic & Free SSL/TLS1
  • HTTP/2 and Server Push
  • Rapid development with CLI-controlled code generators
  • User-friendly, extensible CMS and administration dashboard
  • Simple deployment - single binary + assets, embedded DB (BoltDB)
  • Fast, helpful framework while maintaining control

1 TLS:

  • Development: self-signed certificates auto-generated
  • Production: auto-renewing certificates fetched from Let's Encrypt

Documentation

For more detailed documentation, check out the docs

Installation

$ go get -u github.com/ponzu-cms/ponzu/...

Requirements

Go 1.8+

Since HTTP/2 Server Push is used, Go 1.8+ is required. However, it is not required of clients connecting to a Ponzu server to make HTTP/2 requests.

Usage

$ ponzu command [flags] <params>

Commands

new

Creates a project directory of the name supplied as a parameter immediately following the 'new' option in the $GOPATH/src directory. Note: 'new' depends on the program 'git' and possibly a network connection. If there is no local repository to clone from at the local machine's $GOPATH, 'new' will attempt to clone the 'github.com/ponzu-cms/ponzu' package from over the network.

Example:

$ ponzu new github.com/nilslice/proj
> New ponzu project created at $GOPATH/src/github.com/nilslice/proj

Errors will be reported, but successful commands return nothing.


generate, gen, g

Generate boilerplate code for various Ponzu components, such as content.

Example:

            generator      struct fields and built-in types...
             |              |
             v              v    
$ ponzu gen content review title:"string" body:"string":richtext rating:"int"
                     ^                                   ^
                     |                                   |
                    struct type                         (optional) input view specifier

The command above will generate the file content/review.go with boilerplate methods, as well as struct definition, and corresponding field tags like:

type Review struct {
    Title  string   `json:"title"`
    Body   string   `json:"body"`
    Rating int      `json:"rating"`
}

The generate command will intelligently parse more sophisticated field names such as 'field_name' and convert it to 'FieldName' and vice versa, only where appropriate as per common Go idioms. Errors will be reported, but successful generate commands return nothing.

Input View Specifiers (optional)

The CLI can optionally parse a third parameter on the fields provided to generate the type of HTML view an editor field is presented within. If no third parameter is added, a plain text HTML input will be generated. In the example above, the argument shown as body:string:richtext would show the Richtext input instead of a plain text HTML input (as shown in the screenshot). The following input view specifiers are implemented:

CLI parameterGenerates
checkboxeditor.Checkbox()
customgenerates a pre-styled empty div to fill with HTML
fileeditor.File()
hiddeneditor.Input() + uses type=hidden
input, texteditor.Input()
richtexteditor.Richtext()
selecteditor.Select()
textareaeditor.Textarea()
tagseditor.Tags()

build

From within your Ponzu project directory, running build will copy and move the necessary files from your workspace into the vendored directory, and will build/compile the project to then be run.

Optional flags:

  • --gocmd sets the binary used when executing go build within ponzu build step

Example:

$ ponzu build
(or)
$ ponzu build --gocmd=go1.8rc1 # useful for testing

Errors will be reported, but successful build commands return nothing.


run

Starts the HTTP server for the JSON API, Admin System, or both. The segments, separated by a comma, describe which services to start, either 'admin' (Admin System / CMS backend) or 'api' (JSON API), and, optionally, if the server should utilize TLS encryption - served over HTTPS, which is automatically managed using Let's Encrypt (https://letsencrypt.org)

Optional flags:

  • --port sets the port on which the server listens for HTTP requests [defaults to 8080]
  • --https-port sets the port on which the server listens for HTTPS requests [defaults to 443]
  • --https enables auto HTTPS management via Let's Encrypt (port is always 443)
  • --dev-https generates self-signed SSL certificates for development-only (port is 10443)

Example:

$ ponzu run
(or)
$ ponzu run --port=8080 --https admin,api
(or) 
$ ponzu run admin
(or)
$ ponzu run --port=8888 api
(or)
$ ponzu run --dev-https

Defaults to $ ponzu run --port=8080 admin,api (running Admin & API on port 8080, without TLS)

Note: Admin and API cannot run on separate processes unless you use a copy of the database, since the first process to open it receives a lock. If you intend to run the Admin and API on separate processes, you must call them with the 'ponzu' command independently.


upgrade

Will backup your own custom project code (like content, add-ons, uploads, etc) so we can safely re-clone Ponzu from the latest version you have or from the network if necessary. Before running $ ponzu upgrade, you should update the ponzu package by running $ go get -u github.com/ponzu-cms/ponzu/...

Example:

$ ponzu upgrade

add, a

Downloads an add-on to GOPATH/src and copies it to the Ponzu project's ./addons directory. Must be called from within a Ponzu project directory.

Example:

$ ponzu add github.com/bosssauce/fbscheduler

Errors will be reported, but successful add commands return nothing.


version, v

Prints the version of Ponzu your project is using. Must be called from within a Ponzu project directory. By passing the --cli flag, the version command will print the version of the Ponzu CLI you have installed.

Example:

$ ponzu version
> Ponzu v0.8.2
(or)
$ ponzu version --cli
> Ponzu v0.9.2

Contributing

  1. Checkout branch ponzu-dev
  2. Make code changes
  3. Test changes to ponzu-dev branch
    • make a commit to ponzu-dev
    • to manually test, you will need to use a new copy (ponzu new path/to/code), but pass the --dev flag so that ponzu generates a new copy from the ponzu-dev branch, not master by default (i.e. $ponzu new --dev /path/to/code)
    • build and run with $ ponzu build and $ ponzu run
  4. To add back to master:
    • first push to origin ponzu-dev
    • create a pull request
    • will then be merged into master

A typical contribution workflow might look like:

# clone the repository and checkout ponzu-dev
$ git clone https://github.com/ponzu-cms/ponzu path/to/local/ponzu # (or your fork)
$ git checkout ponzu-dev

# install ponzu with go get or from your own local path
$ go get github.com/ponzu-cms/ponzu/...
# or
$ cd /path/to/local/ponzu 
$ go install ./...

# edit files, add features, etc
$ git add -A
$ git commit -m 'edited files, added features, etc'

# now you need to test the feature.. make a new ponzu project, but pass --dev flag
$ ponzu new --dev /path/to/new/project # will create $GOPATH/src/path/to/new/project

# build & run ponzu from the new project directory
$ cd /path/to/new/project
$ ponzu build && ponzu run

# push to your origin:ponzu-dev branch and create a PR at ponzu-cms/ponzu
$ git push origin ponzu-dev
# ... go to https://github.com/ponzu-cms/ponzu and create a PR

Note: if you intend to work on your own fork and contribute from it, you will need to also pass --fork=path/to/your/fork (using OS-standard filepath structure), where path/to/your/fork must be within $GOPATH/src, and you are working from a branch called ponzu-dev.

For example:

# ($GOPATH/src is implied in the fork path, do not add it yourself)
$ ponzu new --dev --fork=github.com/nilslice/ponzu /path/to/new/project

Credits

Logo

The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com) The design is licensed under the Creative Commons 3.0 Attribution license. Read this article for more details: http://blog.golang.org/gopher

The Go gopher vector illustration by Hugo Arganda @argandas (http://about.me/argandas)

"Gotoro", the sushi chef, is a modification of Hugo Arganda's illustration by Steve Manuel (https://github.com/nilslice).


Watch the video introduction


Download Details:

Author: Ponzu-cms
Source Code: https://github.com/ponzu-cms/ponzu 
License: BSD-3-Clause license

#go #golang #cms #api #cli 

Ponzu: Headless CMS with Automatic JSON API
Rupert  Beatty

Rupert Beatty

1660207680

Twill: An Open Source CMS toolkit for Laravel

About Twill

Twill is an open source Laravel package that helps developers rapidly create a custom CMS that is beautiful, powerful, and flexible. By standardizing common functions without compromising developer control, Twill makes it easy to deliver a feature-rich admin console that focuses on modern publishing needs.

Twill is an AREA 17 product. It was crafted with the belief that content management should be a creative, productive, and enjoyable experience for both publishers and developers.

Benefits overview

With a vast number of pre-built features and custom-built Vue.js UI components, developers can focus their efforts on the unique aspects of their applications instead of rebuilding standard ones.

Built to get out of your way, Twill offers:

  • No lock-in, create your data models or hook existing ones
  • No front-end assumptions, use it within your Laravel app or headless
  • No bloat, turn off features you don’t need
  • No need to write/adapt HTML for the admin UI
  • No limits, extend as you see fit

Learning Twill

If you use Laravel, you already know Twill. It embraces Laravel to the fullest extent and encourages you to write beautiful code. To get started, read our documentation. If you'd like to hire us for implementation or support, contact us. We're here to discuss your plans, evaluate your needs, make recommendations, and give you a full walk-thru of Twill.

Credits

Over the last 15 years, nearly every engineer at AREA 17 has contributed to Twill in some capacity. However, Twill in its current form as an open source initiative was created by:

  • Quentin Renard, lead application engineer
  • Antoine Doury, lead interface engineer
  • Antonin Caudron, interface engineer
  • Martin Rettenbacher, product designer
  • Jesse Golomb, product owner
  • George Eid, product manager

With contributions from Laurens van Heems, Fernando Petrelli, Gilbert Moufflet, Mubashar Iqbal, Pablo Barrios, Luis Lavena, and Mike Byrne.

Contributing

We look forward to your contribution to make Twill the best it can be. You can find our contribution guidelines in the Twill documentation.

Security vulnerabilities

If you discover a security vulnerability within Twill, please email us at security@twill.io. All security vulnerabilities will be promptly addressed.

License

The Twill software is licensed under the Apache 2.0 license. The Twill UI, including but not limited to images, icons, patterns, and derivatives thereof are licensed under the Creative Commons Attribution 4.0 International License.

Attribution

By using the Twill UI, you agree that any application which incorporates it shall prominently display the message “Made with Twill” in a legible manner in the footer of the admin console. This message must open a link to Twill.io when clicked or touched. For permission to remove the attribution, contact us at hello@twill.io.

Trademark

Twill and the Twill logo are trademarks of AREA 17. You may not display or invoke the Twill name or logo in a manner that implies a relationship or affiliation with, sponsorship, promotion, or endorsement by Twill or AREA 17, except as authorized by the terms of attribution.

Copyright © AREA 17

Download Details:

Author: Area17
Source Code: https://github.com/area17/twill 
License: Apache-2.0 license

#laravel #cms #vue #framework 

Twill: An Open Source CMS toolkit for Laravel