Easy Blog Networks

1-click PBN hosting
and automation solution

Easy Blog Networks is a PBN hosting service that installs blogs with 1-click on random servers hosted by big brand hosting provider like Amazon Web Services, Digital Ocean, Softlayer and others. The system automatically updates WordPress, plugins and themes while maintaining daily blog backups.

Easy Blog Networks is currently the best, easiest and safest way to host your PBNs.

WooCommerce as a Platform

WooCart installs WooCommerce stores with local country settings in just a few clicks. Besides easy setup, WooCart also take care of your store's security and performance. With one-click staging and daily backups you will never need to worry about breaking your store with regular updates.

WooCart is the best way to host and maintain your WooCommerce store - completely worry-free.

Open Source Releases

URL: https://pypi.python.org/pypi/pyramid-straw

First release in: 2017

Technologies Used: Pyramid, SQLAlchemy

Title: Database troubleshooting tool for Pyramid apps

Summary: The first tool you should use to analyze whats going on with your database, when developing pyramid apps. We developed it when Easy Blog Networks scaled up fast and our database was locking out. To this day, pyramid_straw is part of our regular toolbox.

URL: https://pypi.python.org/pypi/collective.impersonate

First release in: 2017

Technologies Used: Python, Plone

Title: Allow administrator to impersonate another user (useful for debugging).

Summary: Install into your Plone site and head to http://ip/ploneinstance/@@impersonate. This is a remake and modernization of one of our most popular Plone add-ons, the niteoweb.loginas. We deliberately moved away from using the niteoweb. namespace to encourage more participation from the collective Plone community.

URL: https://pypi.python.org/pypi/pyramid_redirect

First release in: 2017

Technologies Used: Pyramid

Title: A Pyramid add-on for redirecting URLs

Summary: pyramid_redirect is a small extension for Pyramid to redirect URLs before further processing takes place. Especially useful in environments where you cannot control the reverse proxy in front of your app, such as on Heroku.

URL: https://pypi.python.org/pypi/pyramid_force_https

First release in: 2017

Technologies Used: Pyramid

Title: A Pyramid add-on for forcing HTTPS

Summary: pyramid_force_https is a tween for Pyramid to redirect all HTTP requests to HTTPS to make sure your users are protected. Especially useful in environments where you cannot control the reverse proxy in front of your app, such as on Heroku.

URL: https://pypi.python.org/pypi/pyramid_heroku

First release in: 2017

Technologies Used: Pyramid, Heroku

Title: Helpers for running Pyramid on Heroku

Summary: pyramid_heroku is a collection of tweens and helpers to successfully run Pyramid on Heroku.

It provides the following:

  • ClientAddr tween that sets real user's IP to request.client_addr
  • HerokuappAccess tween that denies access to your app's <app>.herokuapp.com domain for any non-whitelisted IPs.
  • migrate.py script for automatically running alembic migrations on deploy.

URL: https://github.com/niteoweb/handbook

First release in: 2017

Technologies Used: Transparency

Title: The Niteo Handbook

For the last decade, we have been accumulating the knowledge and practicalities of running an Open Source business within our walled-off intranet. At our 10th Anniversary Party we realized that it was time that we made this valuable information public with the intent of helping people in similar positions.

This Handbook offers us an opportunity to clarify what Niteo is and how we operate. It allows greater transparency to our partners, potential new team members, and the wider Open Source community.

URL: https://pypi.python.org/pypi/pyramid_letsencrypt

First release in: 2016

Technologies Used: Pyramid

Title: Easy validation of Let's Encrypt SSLs

Summary: pyramid_letsencrypt provides an easy way to host Let’s Encrypt domain validation content in your Pyramid project, with just a config entry.

This plugin is needed for deployment scenarios where you do not have a reverse proxy (think Nginx and the lot) in front of your Pyramid app to serve static content. One of such scenarios is hosting your Pyramid app on Heroku.

URL: https://wordpress.org/plugins/passive-indexation-check/

First release in: 2016

Technologies Used: WordPress

Title: Passive Indexation Check WordPress plugin

Summary: Passive Indexation Check is a WordPress plugin that notifies you when googlebot stops visiting your blog for a certain period of time, indicating your blog was deindexed from Google.

URL: https://pypi.python.org/pypi/pyramid_favicon

First release in: 2016

Technologies Used: Pyramid

Title: A Pyramid add-on for handling favicons

Summary: pyramid_favicon is an add-on for handling favicons in your Pyramid project. Normally, favicons are located on the root directory of a web site. However, with this add-on, it is possible to specify a different location for your favicon via a custom config setting.

URL: https://github.com/niteoweb/rebuild-pages

First release in: 2016

Technologies Used: Wordpress

Title: Rebuild Pages from Majestic

Summary: Rebuild Pages Wordpress plugin will rebuild page URLs from a CSV downloaded from Majestic.com. You can select a minimum amount of backlinks for a URL to get rebuilt.

Announcement blog post: https://blog.easyblognetworks.com/2016/free-rebuild-pages-from-majestic-plugin/

URL: https://github.com/niteoweb/wprewritely

First release in: 2015

Technologies Used: Wordpress

Title: WP Rewritely Wordpress plugin

Summary: WP Rewritely is a WordPress plugin for manually rewriting blog posts. Whether after spinning or just correcting posts, WP Rewritely will speed up your rewriting. It was Open Sourced and offered for free in October 2015.

URL: https://wordpress.org/plugins/spiderblocker/

First release in: 2015

Technologies Used: WordPress

Title: WordPress plugin for blocking bots.

Summary: Spider Blocker will block most common bots that consume bandwidth and slow down your server. It will accomplish this by using Apache .htaccess file to minimize impact on your website. It will also hide itself from external scanner. Only works with Apache server and mod_rewrite enabled.

As of this writing, this plugin is installed on over 100,000 WordPress blogs.

URL: https://wordpress.org/plugins/integration-between-groovehq-and-cf7/

First release in: 2015

Technologies Used: WordPress

Title: GrooveHQ Integration for Contact Form 7

Summary: Plugin allows you to choose contact forms that send requests directly to GrooveHQ inbox instead to email.

URL: https://github.com/niteoweb/heroku-buildpack-buildout

First release in: 2014

Technologies Used: Bash, Buildout, Heroku

Title: Heroku buildpack: Buildout

Summary: A Heroku buildpack for Python apps, powered by Buildout.

URL: https://github.com/niteoweb/heroku-buildpack-lftp

First release in: 2014

Technologies Used: Bash, Heroku

Title: Heroku buildpack: lftp

Summary: A Heroku buildpack for adding lftp to your application.

URL: https://github.com/niteoweb/heroku-buildpack-forego

First release in: 2014

Technologies Used: Bash, Heroku

Title: Heroku buildpack: forego

Summary: A Heroku buildpack for adding forego to your application.

URL: https://github.com/niteoweb/heroku-buildpack-unzip

First release in: 2014

Technologies Used: Bash, Heroku

Title: Heroku buildpack: unzip

Summary: A Heroku buildpack for adding unzip to your application.

URL: https://github.com/niteoweb/baculanix

First release in: 2014

Technologies Used: nix, Bacula

Title: Nix configuration for Bacula server

Summary: Testing out NixOS by doing a configuration for a Bacula backup server

URL: https://pypi.python.org/pypi/ucg

First release in: 2013

Technologies Used: Python

Title: Python bindings for UCG API

Summary: UCG is an online service for spinning text (synonym substitution) that creates unique version(s) of existing text. This package provides a way to easily interact with UCG API.

URL: https://pypi.python.org/pypi/wordai

First release in: 2013

Technologies Used: Python

Title: Python bindings for WordAi API

Summary: WordAi is an online service for spinning text (synonym substitution) that creates unique version(s) of existing text. This package provides a way to easily interact with WordAi API.

URL: https://pypi.python.org/pypi/slc.permissiondump

First release in: 2013

Technologies Used: Python, Plone

Title: Visualize a tree of local roles assigned on Plone items.

Summary: Walk the Plone portal and dump the list of local roles for each item. Then go through the dump and generate a nice HTML visualization of the tree of items with their assigned local roles.

Development of this package was done as part of our consulting gig for Syslab.com.

URL: https://pypi.python.org/pypi/chimprewriter

First release in: 2013

Technologies Used: Python, Plone

Title: Python bindings for ChimpRewriter API

Summary: Chimp Rewriter is an online service for spinning text (synonym substitution) that creates unique version(s) of existing text. This package provides a way to easily interact with ChimpRewriter API.

URL: https://pypi.python.org/pypi/niteoweb.aweber

First release in: 2013

Technologies Used: Python, Plone

Title: Aweber API integration for Plone.

Summary: A Plone add-on that integrates AWeber email autoresponder system with Plone. It allows subscribing new members programmatically or manually via the Plone Control Panel.

URL: https://pypi.python.org/pypi/iwwb.eventlist

First release in: 2012

Technologies Used: Python, Plone

Title: Provides a Plone interface for accessing the event search of InfoWeb Weiterbildung.

Summary: This package provides a Plone interface to the event search offered by InfoWeb Weiterbildung. It makes use of their web interfaces described at http://www.iwwb.de/wss/sucheIWWBServer.php See IWWB credits for more information about the content provider.

This package will be useful mostly to German users, as it explicitly targets a German site.

An example of where this package is used (with further UI customizations) can be seen on the German site gefaehrdungsbeurteilung.de.

Development of this package was done as part of our consulting gig for Syslab.com.

URL: https://pypi.python.org/pypi/spinchimp

First release in: 2012

Technologies Used: Python

Title: Python bindings for SpinChimp API

Summary: Spin Chimp is an online service for spinning text (synonym substitution) that creates unique version(s) of existing text. This package provides a way to easily interact with SpinChimp API.

URL: https://pypi.python.org/pypi/spinnerchief

First release in: 2012

Technologies Used: Python

Title: Python bindings for SpinnerChief API

Summary: Spinner Chief is an online service for spinning text (synonym substitution) that creates unique version(s) of existing text. This package provides a way to easily interact with SpinnerChief API. Usage requires an account, get one here and an api key which you get by registering a developer account.

URL: https://pypi.python.org/pypi/thebestspinner

First release in: 2012

Technologies Used: Python

Title: Python bindings for TheBestSpinner API

Summary: The Best Spinner is an online service for spinning text (synonym substitution) that creates unique version(s) of existing text. This package provides a way to easily interact with The Best Spinner API.

URL: http://pypi.python.org/pypi/collective.listusers

First release in: 2012

Technologies Used: Python, Plone

Title: A search form for listing Plone users.

Summary Solves easy task: Query users by group and/or attribute and export as vcard/csv.

Features
  • query list of users by groups displayed in table
  • control panel settings
  • configurable exported user attributes
  • export listing to csv, vcard
  • optional filtering by user attribute hooked to an vobabulary
  • z3c.form for widget

Development of this package was done as part of our consulting gig for Syslab.com.

URL: http://pypi.python.org/pypi/spinrewriter

First release in: 2012

Technologies Used: Python

Summary: Python bindings for SpinRewriter API.

Spin Rewriter is an online service for spinning text (synonym substitution) that creates unique version(s) of existing text. This package provides a way to easily interact with  SpinRewriter API.

URL: https://pypi.python.org/pypi/bobtemplates.niteoweb

First release in: 2012

Technologies Used: Python, mr.bob, Pyramid, Plone, Buildout

Title: Templates for quickly bootstrapping best-practice Plone & Python projects.

Summary: bobtemplates.niteoweb provides mr.bob templates to generate packages for Plone and Pyramid projects. Templates are designed to be reusable by others, individuals and teams. All templates have tests for verifying which files and folders were generated, along with tests that run on the actual generated package.

Plone part superseded by https://pypi.python.org/pypi/bobtemplates.plone.

URL: https://pypi.python.org/pypi/niteoweb.ipn.core

First release in: 2012

Technologies Used: Python, Plone

Title: Support for Instant Payment Notifications in Plone.

Summary: A Plone add-on package that acts as a base for supporting different Instant Payment Notification providers (such as PayPal, JVZoo, Click2Sell, etc.). You probably do not want to use this package on its own, but rather use one of its sub-packages.

URL: https://pypi.python.org/pypi/niteoweb.ipn.jvzoo

First release in: 2012

Technologies Used: Python, Plone

Title: A Plone add-on that integrates JVZoo digital products retailer system with Plone to enable paid memberships on your site.

Summary: This Plone add-on allows site owners to run a paid-membership site based on Plone. JVZoo is used for payment processing and membership renewals.

URL: https://pypi.python.org/pypi/niteoweb.jvzoo

First release in: 2012

Technologies Used: Python, Plone

Title: A Plone add-on that integrates JVZoo digital products retailer system with Plone for paid memberships.

Summary: This Plone add-on allows site owners to run a paid-membership site based on Plone. JVZoo is used for payment processing and membership renewals.

Superseded by https://pypi.python.org/pypi/niteoweb.ipn.jvzoo.

URL: https://github.com/niteoweb/rtd_buildout

First release in: 2012

Technologies Used: Python, Buildout

Title: Buildout for internally running ReadTheDocs

Summary: Buildout for internally running ReadTheDocs. This is an alternative installation procedure. For people who are not using virtualenv on their servers.

URL: https://pypi.python.org/pypi/hexagonit.portletstyle

First release in: 2011

Technologies Used: Python, Plone

Title: Assign a CSS style to a portlet

Summary: hexagonit.portletstyle is a Plone 4.x add-on that allows you to assign a CSS style to a portlet. You can chose from a list of pre-defined (configurable through Plone Control Panel) classes.

Development of this package was done as part of our consulting gig for Hexagon IT Oy.

URL: https://pypi.python.org/pypi/hexagonit.virtualgallery

First release in: 2011

Technologies Used: Python, Plone, Flash

Title: Virtual 3D image gallery for Plone

Summary: hexagonit.virtualgallery is a Plone add-on that renders a Flash-based 3D virtual gallery.

Development of this package was done as part of our consulting gig for Hexagon IT Oy.

URL: http://pypi.python.org/pypi/collective.table

First release in: 2011

Technologies Used: Plone, Python

Summary: Easy storage of tabular data.

The collective.table add-on is a replacement for the "store equipment lists, book loans, etc. in Excel files and upload to Plone". It's a list of items where members can add/edit columns and rows and of course data. By default, collective.table stores its data in the ZODB, however storage is pluggable and it's easy to write storage adapters to have data stored in SQL, LDAP, etc.

collective.table is based on  DataTables and  jEditable jQuery plugins.

The project was Nejc's Google Summer of Code assignment.

URL: https://pypi.python.org/pypi/niteoweb.fabfile

First release in: 2011

Technologies Used: Python, Fabric, Buildout

Title: A bunch of Fabric commands we use all the time.

Summary: This package contains a selection of Fabric command we at NiteoWeb use all the time. By sharing them online we hope to save someone some time researching how certain Plone-oriented tasks are performed with Fabric. Commands contain some hardcoded internal stuff, so they are not really usable out-of-the-box, more so as a point of reference. If there is interest, we’ll rewrite them to be more reusable.

Superseded by https://pypi.python.org/pypi/bobtemplates.niteoweb.

URL: https://pypi.python.org/pypi/niteoweb.click2sell

First release in: 2010

Technologies Used: Python, Plone

Title: Integrates click2sell digital products retailer system with Plone for paid memberships.

Summary: This Plone add-on allows site owners to run a paid-membership site based on Plone. Click2sell is used for payment processing and membership renewals.

URL: https://pypi.python.org/pypi/niteoweb.clickbank

First release in: 2010

Technologies Used: Python, Plone

Title: Integrates ClickBank digital products retailer system with Plone for paid memberships.

Summary: This Plone add-on allows site owners to run a paid-membership site based on Plone. Clickbank is used for payment processing and membership renewals.

URL: https://pypi.python.org/pypi/niteoweb.downloadcounter/

First release in: 2010

Technologies Used: Python, Plone

Title: Counts how many time was a File content type downloaded and displays this number on File view page.

Summary: niteoweb.downloadcounter is a simple Plone add-on. It counts how many times has a default File content type been downloaded. It displays this value in a viewlet below File’s title.

URL: https://pypi.python.org/pypi/niteoweb.transmogrifier.simpleusage

First release in: 2010

Technologies Used: Python, Plone, Transmogrifier

Title: A simple example of how to use collective.transmogrifier.

Summary: This package shows you how to use collective.transmogrifier to import news items into Plone.

By default, it uses dummy values that are hard-coded in the product itself to create some News Items, so you can see how to even use transmogrifier.

The main idea is that you can use this product as a skeleton for migrating content from other systems to Plone, since you only need to pass in correct data instead of hard-coded dummy values.

URL: https://pypi.python.org/pypi/multitrac

First release in: 2010

Technologies Used: Python, Pyramid, Trac

Title: A pyramid application to manage multiple Trac installations

Summary: We had several Trac instances and we wanted a one page overview of tickets across all of them. So we built a Pyramid app to help visualize our projects better.

URL: http://pypi.python.org/pypi/FireInFolders

First release in: 2009

Technologies Used: Python

Summary: Command line utility which executes commands in multiple folders.

This tool was created for use with buildout and svn externals. Buildout populates src/ folder with products that need svn management. This egg makes it easier to do management: "fire_in_folders svn up"

URL: https://pypi.python.org/pypi/niteoweb.loginas

First release in: 2009

Technologies Used: Python, Plone

Title: Allow administrator to login as another user (useful for debugging).

Summary: Install through quickinstaller and head to http://ip/ploneinstance/@@login-as.
One of our most popular Plone add-ons.

URL: http://pypi.python.org/pypi/niteoweb.windmill

First release in: 2009

Technologies Used: Plone, Python, Windmill

Summary: An OpenSource Third Party product for Plone CMS enabling testing a Plone site with the Windmill testing platform.

The niteoweb.windmill package extends Plone's FunctionalTestCase to provide support for running Windmill tests. This is achieved by adding an additional test layer, which starts a single-threaded ZServer instance alongside the Windmill server.

Windmill supports most of modern browser. The controller API can be found at http://trac.getwindmill.com/wiki/ControllerApi.

For more details, see  http://getwindmill.com and David Glick's  In-browser integration testing with Windmill blog post.


Open Source Contributions

URL: https://pypi.python.org/pypi/pyramid_raven

First contribution in: 2016

Technologies Used: Pyramid, Raven

Title: Raven integration for Pyramid

Summary: pyramid_raven integrates the raven python client and raven-js with a Pyramid web application. It provides a configured raven client at request.raven and a pyramid_layout panel called raven-js.

We contributed Python 3 compatibility fixes and better Sentry DSN discovery.

URL: https://github.com/Pylons/trypyramid.com

First contribution in: 2016

Technologies Used: webpack

Title: Pyramid presentation website https://trypyramid.com

Summary: https://trypyramid.com is a presentation website for the Pyramid Python Web framework. During DragonSprint.com we contributed several fixes and updates.

URL: https://github.com/Pylons/pylonsproject.org

First contribution in: 2016

Technologies Used: webpack

Title: Pylons Project presentation website https://pylonsproject.org

Summary: pylonsproject.org is a presentation website for the umbrella organization that takes care of a bunch of Web-related Python frameworks and libraries, Pyramid being the most prominent one. We helped push the site online during and after the DragonSprint.com.

URL: https://pypi.python.org/pypi/deform

First contribution in: 2016

Technologies Used: Pyramid

Title: Deform form library

Summary: Deform is a popular form library used primarily by the Pyramid folks. We use it in almost all our projects and have contributed fixes and a CSV de/serialization support for TextAreaWidget.

URL: http://libcloud.apache.org/

First contribution in: 2015

Technologies Used: Python

Title: Apache Libcloud is a Python library for dealing with "the Cloud"

Summary: Libcloud is a popular and widely adopted library in the Python ecosystem. We contributed support for several new DNS providers.

URL: https://github.com/cooncesean/mixpanel-query-py

First contribution in: 2015

Technologies Used: Python

Title: The Python interface to fetch data from Mixpanel.

Summary: The Python interface to fetch data from Mixpanel via Mixpanel's Data Query API. Note, this differs from the official Python binding which only provides an interface to send data to Mixpanel.

We contributed a few fixes.

URL: http://haraka.github.io/

First contribution in: 2014

Technologies Used: NodeJS

Title: A modern, high performance, flexible SMTP server.

Summary: Haraka is an open source SMTP server written in Node.js which provides extremely high performance coupled with a flexible plugin system allowing Javascript programmers full access to change the behavior of the server.

We contributed a few minor fixes.

URL: https://pypi.python.org/pypi/Products.OneTimeTokenPAS

First contribution in: 2013

Technologies Used: Python, Plone

Title: Login using a token that can be only used once.

Summary: The One Time Token PAS allows users to login using a special token. The token is generated and can only be used one. This allows members to login without supplying their username and password. You can send an e-mail with the special login url, so the member can access the portal easily.

Development of this Plone add-on was inspired by our add-on niteoweb.loginas. We contributed a few features and patches.

URL: https://pypi.python.org/pypi/archetypes.referencebrowserwidget

First contribution in: 2013

Technologies Used: Python, Plone, Javascript

Title: A referencebrowser implementation for Archetypes

Summary: This is an implementation of referencebrowser widget. It provides a widget used for Archetypes reference-fields. The widget can be used on its own or as a dropin replacement of the ATReferenceBrowserWidget in Plone 3 and is included in Plone >= 4. Unlike the ATReferenceBrowserWidget, archetypes.refencebrowserwidget uses an overlay instead of a popup to display the referencebrowser.

We contributed a few fixes.

URL: http://docs.plone.org/develop/plone.api/docs/index.html

First contribution in: 2012

Technologies Used: Python, Plone

Title: A Plone API.

Summary: The plone.api is an elegant and simple API, built for humans wishing to develop with Plone.

It comes with cookbook-like documentation and step-by-step instructions for doing common development tasks in Plone. Recipes try to assume the user does not have extensive knowledge about Plone internals. The intention of this package is to provide clear API methods for Plone functionality which may be confusing or difficult to access. As the underlying code improves some API methods may be deprecated and the documentation here will be updated to show how to use the improved code (even if it means not using plone.api).

Some parts of the documentation do not use plone.api methods directly, but simply provide guidance on achieving a task using Plone's internal API. For example, using the portal catalog (see 'Find content objects').

The intention is to cover 20% of the tasks any Plone developer does 80% of the time. By keeping everything in one place, the API stays introspectable and discoverable, important aspects of being Pythonic.

For several years, Nejc led the development of this popular Plone library that inspired many conference talks and beers given. Over the years more than 50 developers from all over the worlds contributed to the library. Development was taken over by the Plone Framework Team in 2014.

URL: https://pypi.python.org/pypi/collective.recipe.supervisor

First contribution in: 2011

Technologies Used: Python, Supervisord, Buildout.

Title: A buildout recipe to install supervisor.

Summary: collective.recipe.supervisor is a popular package for configuring Supervisord with Buildout. We contributed a few minor features and bug fixes.

Development of this package was done as part of our consulting gig for Hexagon IT oy.

URL: https://pypi.python.org/pypi/collective.uploadify

First contribution in: 2010

Technologies Used: Python, Plone, Javascript

Title: Multi File Upload for Plone

Summary: collective.recipe.backup was a popular package for doing multiple-file uploads in Plone. We contributed an option to give users the possibility to customize their upload queue size.

URL: https://pypi.python.org/pypi/collective.recipe.backup

First contribution in: 2009

Technologies Used: Python, Plone

Title: Sensible defaults for Plone backups.

Summary: collective.recipe.backup is a popular package for doing Plone backups. We contributed a script for easily restoring snapshots and an option to archive blog backups.


Discontinued And Sold Projects

Big Content Search

Our first SaaS product. Big Content Search is the first search engine for reusable content. Database with over 128,000 private label articles and 1,000 eBooks.

Big Article Scraper

Big Article Scraper is a web-based article directory scraper. Users can download batches of articles or use it with supported services.

Big Media Scraper

Big Media Scraper is a web service that enriches content with images and videos. Users upload a ZIP of articles and receive enriched articles. It also works with our WP Postly plugin.

WP Review Plugin

WP Review Plugin is a very simple review plugin for products. Instead of complicated templates and hundreds of options, WP Review Plugin simplifies everything to a few clicks.

WP Postly

WP Postly is a simple autoblogging plugin for WordPress. It sources articles from Big Content Search, enriches them with Big Media Scraper and posts them on your blog. It's only available as an upgrade inside Big Content Search.

WP Rewritely

WP Rewritely is a WordPress plugin for manually rewriting blog posts. Whether after spinning or just correcting posts, WP Rewritely will speed up your rewriting. It was open-sourced and offered for free in October 2015.

Client Consulting

enquos is the first comprehensive system to track, analyze, organize, and securely share nutrition, fitness, and health data, while providing tools for optimizing healthy choices.

We had a consulting gig to help them refactor their codebase to be more readable and friendly to developers, along with upping the test coverage percentage.

Syslab.com is a Munich based software development and consulting company founded in 1998. They create powerful web-based applications and content management systems for organizations, government bodies and multi-national companies.

As part of a consulting gig for them we helped them on major projects for their clients including The European Agency for Safety and Health at Work, Denso Auto, and Star Alliance.

Six Feet Up is a woman-owned company that develops, hosts and supports sophisticated enterprise content management and collaborative intranet projects.

We were consultants on one of the projects for their major customer.

Hexagon IT Oy was a Helsinki-based turnkey web service solutions provider. They provided services that include both development, maintenance and support.

We helped them migrate their main publishing platform from Plone 2.5 to Plone 4.

Consulting and training for deploying Plone sites to cloud servers.

Client wanted to migrate their sites from conventional shared Plone hosting solution to affordable dedicated servers. Cloud servers were the best choice based on what they wanted. We prepared a detailed guide on how to setup a CentOS cloud server for running Plone, how to migrate data to the server and how to handle domains and DNS. We gave additional input for their specific use-case and helped them achieve a successful migration.

The client was looking for a well-rounded introductory course in some of the commonly used technologies in the IT world.

The client wanted us to introduce four of his employees to the basics of databases, web applications, network infrastructure and general IT-related security. The course was carried out in tho parts.

In the first part we explained the general structure of a relational database (tables, relations, indexes). After the theory was explained attendees did some interactive exercises. With the help of the web interface phpMyAdmin we created a new database from scratch, built its schema and then performed some data queries on it. After that we learned how to export database to a file and how to restore database from the same file in case a server crashes. On top of that we briefly discussed how web applications use backend databases to provide dynamic content to website visitors.

In the second part we learned how to make a web application "visible" on the internet - one must open a hosting account and register a domain. We explained how DNS records need to be updated and how the DNS lookups and network routing are performed. At the end we looked at some of the most common IT security mistakes companies do and gave practical advice on how to avoid them.

We've been hired to "crowd-source" the development of a logo for new company Agrologistika.

We've done project specifications, published the contest on one of the main crowdsourcing websites for design, submitted feedback to designers and in the end showed the client the best picks.

Balanced Scorecards is a strategic performance management tool, which is used to measure efficiency of an organization not only in the financial sense, but also from the perspective of the so-called soft categories (employee happiness, company's public image, etc.). To demonstrate the usefulness of the BSC approach in assessing organizations, our client needed a prototype application for his research work. We developed this prototype using PHP and MySQL.

With the prototype application one was able to define a new organization and its internal hierarchical structure (various departments within the organization). After the structure was defined, a user could create many different types of scorecards and attach them to various departments. Based on these scorecards an application would then calculate the organization's score starting at the bottom of the department hierarchy. A user could then easily see, which departments do not perform as well as expected (and why) based on the criteria predefined by scorecards. And locating a problem is the first step towards solving it.


Client Projects

First release in: 2010

Technologies Used: Python, Plone, Buildout, Nginx, RichDocument, Supervisord

Summary: LifeInLjubljana.si is a portal that helps Erasmus students coming to Ljubljana to easily find a room and some company.

The website has three levels of users: Anonymous, Staff and Administrators. Anonymous are able to view information on the site. Staff members can manage default Plone content on the site (pages, images, etc.) alongside also managing Flats (adding and editing rooms, ratings, etc. ).

The main part of the site is the list of available flats/beds with an advanced search. Visitors can do a sorted search on several characteristics of a flat/bed.

When a booking is confirmed, Staff members enter this information on the site so visitors can always see updated information about when each room is free.

There is also integration with Google Maps. ŠOU provides a Google Map with Faculties represented as pins on the map. Also each room is represented as a pin on the map. The coordinates of there pins are then manually copied to product code, namely in config.py. The system automatically calculates distances from a Flat to the faculty. Search result sorting based on distance from a chosen faculty is also enabled.

When Erasmus students leaves Ljubljana, he is asked to provide rating of the room (from 1 to 5) and a short comment on the rating. Upon receiving this information (via email, etc.) Staff members enter this on the website.

Site news are implemented like a simple blog.

Forum is implemented by integrating Nabble mailing lists into the site.

This web system is currently deployed on a medium dedicated Cloud server to ensure a smooth experience for users and staff members.

First release in: 2010

Technologies Used: Nginx, CentOS, iptables, Munin, password managing

Summary: ŠOU needed a simple website to promote student demonstrations in Slovenia.

In the recent years they had many problems with attacks on similar sites so the highest priority was to ensure high availability.

We configured a stripped down CentOS instance, manually compiled Nginx with custom header strings and added some booby-traps for script-kiddies. Linux's default firewall, iptables, was used to deny access to non-authorized persons.

Access to the content of the website was protected with a personal key that each of the content managers received on a USB stick.

During the 4 week period before the demonstrations, the server didn't have even a single minute of downtime and have repelled all security breach attempts.

First release in: 2010

Technologies Used: WordPress, PHP, MySQL

Summary: MIROR provides logistics and civil engineering services. They needed an affordable and simple presentation website.

We used the latest WordPress version with a few add-ons and a basic theme.

First release in: 2010

Technologies Used: WordPress, PHP, MySQL

Summary: Zavod mladi podjetnik offers special prices for accounting services for it's members. This site gives detailed information of what customers get for the price and why it's a good choice.

We used the latest WordPress version with a few add-ons and a basic theme.

First release in: 2010

Technologies Used: Plone, Python, Buildout, Supervisord, CacheFu

Summary: A presentation website for a NLP and leadership trainer Marjan Racnik.

The base for the project is default Plone CMS. We built a customized theme from a design mockup made in Photoshop. Then we added basic structure of the site and modified Plone's site settings accordingly. We added a private section with materials for participants of Marjan's trainings. Marjan can post new trainings to the site and display an RSS feed from his WordPress blog.

The web system is currently deployed on a cloud server. Since it's a low-traffic site it can run on a small server instance.

First release in: 2010

Technologies Used: WordPress, PHP, MySQL

Summary: Moj fit is a fitness and recreation center. They needed a basic presentation website since the previous one was over 7 years old.

We used the latest WordPress version with a few addons and a premium theme.

First release in: 2010

Technologies Used: Python, Plone, Buildout, Nginx, RichDocument, Supervisord

Summary: A presentation website for a company delivering dynamic lubricating systems for industries ranging from steel, paper, wood, construction and food industry.

This is a basic Plone project. We strived to keep Plone as default as possible to ensure a smooth upgrade when applicable. Most of the work went into theming and organizing the initial structure of the site along with private document repository workflows for EMSA Board members.

This website was deployed on a small dedicated Cloud server until client took over it's hosting.

First release in: 2009

Technologies Used: Python, Plone, Buildout, Nginx, SSL, Supervisord, Sphinx, SMS dispatch module

Summary: Izterjevalec ("collector" in Slovenian) is a system for automatic notification about payments due. A client enters its debtors' data and the system automatically sends emails and SMS to remind the debtor to pay the invoice. The service leverages Company On Net™ verification process and practically eliminates fraudulent debt collections.

We used Plone as a basis for this project since we anticipated a multi-level user and permission model.

We built custom content types based upon default Plone content types and bound them to custom workflows. The user interface was kept similar to what Plone has by default. We added a special module for communicating with our SMS dispatch center via HTTP protocol.

We used crontab to run hourly tasks. On each full hour, a special script goes through the whole database and finds content that need SMS notification for. Then it generates the SMS text out of several pre-defined templates (based on the severity of delay) and information entered by customers. SMS is then relayed to the SMS dispatch center where it gets sent to the actual mobile device.

First release in: 2009

Technologies Used: Plone, Python, Buildout, Supervisord

Summary: A presentation website for the Next Generation Mobile Services workshop organized by Local Committee Ljubljana of Electrical Engineering Students European Association - EESTEC.

Next Generation Mobile Services workshop is an international workshop held in 2008 in Ljubljana, where students from all around Europe learn about IMS. IMS, or IP Multimedia Subsystem, is an approach to Next Generation Networking. IMS-based services will enable all-IP person-to-person and person-to-content communications in a variety of modes - including voice, text, pictures and video, or any combination of these - in a highly personalized way.

Since the project was to be done on a minimal budget we took the freely available Plone theme called 'Nautica Theme' so no extensive work was needed for the design. What was left to do was create the basic layout of the site, set correct values in Site Settings and add some members with permissions to manage content.

The web system was deployed on our servers as part of our sponsorship program with EESTEC LC Ljubljana.

First release in: 2009

Technologies Used: WordPress, MySQL, PHP

Summary: The client was looking for an inexpensive presentation website for their company.

We used the latest WordPress version with a few addons and a basic theme.

First release in: 2009

Technologies Used: plain HTML/CSS, Nginx

Summary: A classic sales website, taking inspiration from sales letters. It's a long 1-page website with pitch, quotes, testimonials and frequent call-to-action.

This is a simple HTML/CSS only page to ensure ultra-fast loading and low resources consumption.

Since it's just a bunch of HTML/CSS files and images, we deployed this site on a general purpose server, alongside other similar projects and files.

URL http://www.replus.si/

First release in: 2009

Technologies Used: Python, Plone, PloneFormGen, RichDocument, Plone Wilkin Theme

Summary: A presentation website for a Slovenian based accounting firm RE plus.

This is a basic Plone project. We strived to keep Plone as default as possible to ensure a smooth upgrade when applicable. Most of the work went into theming and organizing the initial structure of the site.

This website is currently deployed on a dedicated Cloud server. Since it's a low-traffic site it can run on the smallest and cheapest server instance.

First release in: 2009

Technologies Used: Python, Plone, Buildout, Supervisord, CacheFu

Summary: A presentation website for a company specializing in producing Energy Performance Certificates and research in this area.

The base for the project is default Plone CMS system and the Plone Nautica Theme. We customized the theme to suit the client's needs and fit with it's brand. Then we added basic structure of the site and modified Plone's site settings accordingly. Lastly we added Zinter's employees as members of the site and assigned them permissions for managing content.

The website was deployed on our virtual servers until it was taken offline by the client.

First release in: 2009

Technologies Used: Plone, Python, Buildout, Intense Simplicity, qPloneCaptchas, Plone Comments, Supervisord

Summary: A presentation website for a successful Slovenian nordic ski jumping competitor, Jernej Damjan.

We deployed a basic Plone CMS system, installed the Intense Simplicity Plone theme (which we customized a bit), added base structure to the site and modified site settings to comply with the needs. Lastly we a Jernej as a member with permissions to manage content, so he can personally add and edit news, articles and multimedia on his site.

The web system was deployed on our virtual servers. Since it was a low-traffic site it could run on the smallest and cheapest server instance.

First release in: 2009

Technologies Used: Plone, Python, Buildout, Supervisord, CacheFu

Summary: A presentation website for a consortium of two Slovenian based companies RRC d.d. and ENEKOM d.o.o.

The base for the project is default Plone CMS system and the Plone Nautica Theme. We customized the theme to suit the client's needs and fit with it's brand. Then we added basic structure of the site and modified Plone's site settings accordingly. Lastly we added Sinergija3's employees as members of the site and assigned them permissions for managing content.

The web system was deployed on our virtual servers until hosting was taken over by the client.

URL http://varnostnaspletu.si/

First release in: 2008

Technologies Used: Plone, Python, Buildout, Supervisord, Plone Nautica Theme

Summary: A website for educating Slovenian internet population how to protect themselves on the net. The site hosts news and articles from different areas of IT security. It has a section dedicated for users and one dedicated for companies.

Plone is perfect for projects like this. We took World Plone Day theme and customized it to suit the client's needs. We then setup the base site structure for news and articles. We then added members and assigned them permissions for managing content.

Client used Aweber email marketing software. We created a custom portlet for displaying a registration form for aweber's mailing list and styled it to fit into the site well.

The web system is currently deployed on our virtual servers.

First release in: 2007

Technologies Used: Plone, Python

Summary: A presentation website for a group of 7 yearly publications for Slovenian youngsters.

The base for the project is default Plone CMS system. The design was based on a graphical template from a major template-reselling site. We customized it a bit to align it with Plone's layout. We stored all customized HTML and CSS in a classic Plone theme product. We also installed some third-party Plone add-ons such as RichDocument, PloneSurvey and PlonePopoll to suit the client's needs.

The idea was that each of the 7 yearly publications has a dedicated site, but all sites must be visually coherent enough that it's immediately apparent that they are related. So we chose a bit non-standard design with leaflets and made 7 different color variations. Now each site uses basically the same theme products, but with different color scheme.

Client decided to host the site themselves. They have been up and running for more than three years now.

First release in: 2007

Technologies Used: Plone, Python, Buildout, Nginx, Supervisord, RichDocument

Summary: A presentation website for a company delivering dynamic lubricating systems for industries ranging from steel, paper, wood, construction and food industry.

The basis for this project was default Plone. We installed RichDocument add-on for Plone to enable attachments support for default Plone's Document content type. PloneTrueGallery add-on is used to deliver "Web 2.0"-ish gallery for their gallery.

The design was based on a graphical template from a major template-reselling site. We customized it a bit to align it with Plone's layout. We stored all customized HTML and CSS in a classic Plone theme product.

Employees can use the site in a normal Plone fashion: Adding new folders and subfolders, adding news and documents, managing gallery, copy/pasting content from one part of the site to another, undo-ing mistaken actions, etc.

The system now has more than 3 years of uptime, running on a cost-effective small-sized virtual server.

First release in: 2007

Technologies Used: Plone, SSL, Python

Summary: A custom built Customer Relationship Manager for a company dealing with online skiing holidays booking.

The basis for this project was our own Plone-based internal CRM system which was one our first internal projects. We took what we learned and built a customized CRM system for our client.

The client used our CRM for keeping track of accommodation partners (hotels, apartments, chalets, etc.). The system enabled the client to add upcoming interactions (calls, emails, meetings, etc. ) for every single partner and assign these interactions to employees. Employees then had a "worklist" view for listing interactions that need to be handled today, tomorrow, in the next week and so on. All interactions were stored for future reference. Accommodation partners (hotels, apartments, etc.) were sorted by country and ski-resort.

All content objects were built on top of default Plone content types enabling content actions like cut/copy/paste, history and undo.

The system had more than 2 years of uptime, running on a cost-effective small-sized virtual server even though it stored thousands of different content objects (partners, interaction, etc.).

Access to the application was protected with an SSL certificate to ensure safe data transfer.

URL http://mladipodjetnik.si/

First release in: 2006 (ongoing development)

Technologies Used: Python, Plone, Buildout, CacheFu, PloneFormGen, Varnish, RichDocument, Supervisord, CentOS, phpBB

Summary: MladiPodjetnik.si is a portal for supporting entrepreneurship among students and other youngsters. It is a growing community with daily news, articles and events. All information, help and events is free of charge. The funding for the organization is based on advertising revenue and grants.

The project started as a hobby back in 2006. The first release was a Plone 2.5 based website with default content types and a freely available Plone theme. After a few months, the community started growing and we had to release the second version, which was still Plone 2.5 based but had a customized theme and more finely tuned roles and permissions.

Work on third version of the site began in late 2008 when the old site couldn't cope anymore with increasing traffic, content and modification requests. We based the new version on Plone 3.1 and heavily customized the default content types to suit the client's needs. The design was done completely in-house: from structural design, to graphical draft to the finally installable Plone theme product. The site's front page was made from scratch to squeeze in as much information as possible but still keep it user friendly.

Since advertising is the main income for the client the layout had to be designed in a way to allow efficient and customizable ads management. We used OpenX as a backend for ads management. Client also uses Aweber email marketing software. We created a custom portlet for displaying a registration form for aweber's mailing list and styled it to fit into the site well.

Workflows were also customized and new roles added to suit the client's publication process.

In 2011 the Plone 3.1 version was migrated to Plone 4.0 and the design was updated and rewritten in Diazo.

The website is currently running on top of Plone 4.2, contains in excess of 10.000 content objects. It receives more than 40.000 unique visitors per month. This meant that we had to finely tune the delivery of content to visitors to keep server costs down. MladiPodjetnik.si runs on a 2GB virtual server.

First release in: 2006

Technologies Used: Plone, Python, Buildout, Supervisord, LinguaPlone

Summary: A presentation website with internal document storage system for Local Committee Ljubljana of Electrical Engineering Students European Association - EESTEC.

Nejc Zupan, our lead developer, joined the IT Team of LC Ljubljana back in 2006. Together with other members they developed the site using Plone 2.5. They used Pyboom Plone theme and customized it to suit EESTEC's needs. Then they've set up the site structure, assigned permissions and added members.

Currently the system holds all information a visitor needs about LC Ljubljana. Member's of LC Ljubljana can edit all content on the page and add new news items and events.

There is also a private section where internal documents are stored. This way, information such as members' mobile phone numbers or home addresses are always at hand.

The website is bi-lingual as some content is translated to English (the main language being Slovenian). This was achieved with integrating the great LinguaPlone add-on.

The web system was deployed on our servers as part of our sponsorship program with EESTEC LC Ljubljana.


 

Join our team.

Help us develop new projects and improve lives.