Flagship Projects
The SaaS products and services we currently build, run, and grow.
1-click PBN hosting and automation solution
PBN hosting service that installs blogs with 1-click on random servers hosted by big brand hosting providers. It is the fastest, easiest and safest way to host your blog networks.
A suite of essential macOS security apps
Non-invasive alternative to corporate MDM and RMM solutions for small businesses that care about security but know it doesn't have to be invasive for their team members.
Generate high quality blog posts with AI
Craft premium, branded blog content that connects with your audience and amplifies your business's reach.
Partnerships
Long-term ventures we co-build and operate with trusted partners.
Mayet is a software company specialising exclusively in the pharmaceutical and biotech industry. We build products for the operational problems clinical QA teams face daily: vendor oversight, project tracking, and regulatory alignment.
Niteo House is a three-bedroom villa with pool and fast internet on Lanzarote. A perfect place to escape your working life or for time away. If you do need to work while at the villa, both bedrooms have a working desk with an office chair.
Discontinued and Sold Projects
Past products we either retired or handed off to new owners.
Open Source
For nearly two decades we've shipped open-source releases, contributed back to the projects we depend on, and organized community events.
Releases
Hakuto 2026
URL: https://hakuto.dev/
First release: 2026
Technologies: Astro, TypeScript, Tailwind CSS, Claude Code
A free and open source Astro site builder framework for Claude Code, designed to generate production-ready landing pages and marketing sites through conversational design.
Pareto Security apps 2025
URL: https://paretosecurity.com/apps
First release: 2025
Technologies: Swift, Golang, Nix
In 2025 we opensourced all our Pareto Security local apps, including macOS, Linux and Windows versions.
tawind 2024
URL: https://github.com/teamniteo/tawind
First release: 2024
Technologies: Wordpress, Tailwind CSS
A hybrid WordPress theme that bridges the gap between traditional theme development and headless performance optimization. It allows you to fully utilize WordPress's user-friendly interface, including live editing within the theme's canvas, while delivering headless-like speed and performance.
delpt 2024
URL: https://github.com/zupo/delpt
First release: 2024
Technologies: Elm, devenv, Tailwind CSS
Template for an elm-land app with ports and tailwind, devenv for local dev/CI, deployed to Lamdera.
gha-actions 2023
URL: https://github.com/teamniteo/gha-actions
First release: 2023
Technologies: GitHub Actions
A collection of GitHub Actions we use in our projects.
pg_subsetter 2023
URL: https://github.com/teamniteo/pg_subsetter
First release: 2023
Technologies: Golang
A powerful and efficient tool designed to synchronize a fraction of a PostgreSQL database to another PostgreSQL database on the fly. We use it to create a staging app for every Pull Request.
Awesome Pytest Speedup 2023
URL: https://github.com/zupo/awesome-pytest-speedup
First release: 2023
Technologies: Python, Pytest
A collection of tips & tricks we collected over the years on how to make your tests run faster.
Pyramid Scaffold 2022
URL: https://github.com/zupo/tutorial
First release: 2022
Technologies: Python, Pyramid
Title: Pyramid + SQLAlchemy + URL dispatch + Poetry scaffold
A scaffold for a Pyramid projects, incorporating all our latest best practices.
tesh 2022
URL: https://github.com/oceanSprint/tesh
First release: 2022
Technologies: Python
TEstable SHell sessions in Markdown.
sms2slack 2022
URL: https://github.com/ParetoSecurity/sms-slack-v3
First release: 2022
Technologies: ESP32, Python, C++, 3D printing
sms2slack is a tiny box for a SIM card that receives SMS messages, like 2FA codes, and forwards them to your Slack channel.
AreMyKeysSafe 2022
URL: https://aremykeyssafe.com/
First release: 2022
Technologies: Golang, WebAssembly, Cloudflare Workers
AreMyKeysSafe is a simple in-browser tool to check your SSH and GPG public keys. If you have been in the Web space for a number of years, there's a good chance that you are still using some SSH keys you generated 13 years ago. They might be considered unsafe by today's standards. By entering your GitHub or GitLab public handle the app will let you know.
OceanSprint 2021
First release: 2021
Technologies: Nix, ocean, beer
A week of Nix hacking, collaboration, and knowledge sharing in a beautiful seaside setting.
Niteo Salary Calculator 2021
URL: https://github.com/teamniteo/salarycalc
First release: 2021
Technologies: Python, Elm, Nix
A web app to calculate a salary of a Niteo employee. Calculations are done using the prevailing market rates taken from Salary.com for different positions and the affordability ratio applied on top of it.
NixDockerBase 2020
URL: https://github.com/teamniteo/nix-docker-base
First release: 2020
Technologies: Docker, Nix
Title: Nix Docker base images for fast and minimal builds
This project automatically generates Docker images for nixpkgs channels. So the images contains a prefetched tarball of each versions. This allows Nix builds that pin nixpkgs to that version to start quickly, without having to first fetch and unpack a tarball.
pull_request_status_action 2020
URL: https://github.com/marketplace/actions/pull-request-status-action
First release: 2020
Technologies: Python
Title: Pull Request Status Action
A Github Action that creates a Status for the Pull Request. It creates status with required state, description and target_url.
review_request_status_action 2019
First release: 2019
Technologies: Python, Docker, GitHub Action
Title: Heroku Review Apps deployment status
We developed a All-in-one GitHub Action which continuously monitors the entire deployment cycle of a Review App when a Pull Request is created and updates the status based on the Review App status.
check-untracked-changes Orb 2019
URL: https://circleci.com/developer/orbs/orb/niteo/check-untracked-changes
First release: 2019
Technologies: YAML, Bash, CircleCI
A CircleCI orb to test if any un-tracked changes(to git commit) are present in the given path. This is useful to test if any auto-formatters(like black, isort) have produced changes during CI validation.
pyramid_celery 2019
URL: https://github.com/teamniteo/pyramid_celery
First release: 2019
Technologies: Pyramid, Python
Title: Pyramid Celery
This package allows you to use pyramid .ini files to configure celery and have your pyramid configuration inside celery tasks. We contributed support for Python 3.
pyramid_openapi3 2018
URL: https://github.com/Pylons/pyramid_openapi3
First release: 2018
Technologies: Pyramid, Python, OpenAPI
Title: OpenAPI 3 integration for Pyramid
Validate Pyramid views against an OpenAPI 3.0 document and provides a API Explorer. For demo check out the YouTube video.
Hide Footer Links 2018
URL: https://github.com/teamniteo/Hide-Footer-Links
First release: 2018
Technologies: PHP
Hide Footer Links is a WordPress plugin which searches for the copyright portion (links, info) in the footer of a theme and hides it if it finds one. If it fails, a CSS selector can be provided to hide that particular portion on the page.
Rebuild Pages 2018
URL: https://github.com/teamniteo/rebuild-pages
First release: 2018
Technologies: PHP
Rebuild Pages is a WordPress plugin which can be used to rebuild URL's using a CSV downloaded via Majestic.com by selecting a minimum amount of backlinks for a URL.
pyramid_deferred_sqla 2018
URL: https://github.com/teamniteo/pyramid_deferred_sqla
First release: 2018
Technologies: Pyramid, Python, SQLAlchemy
Title: SQLAlchemy for Pyramid
Opinionated SQLAlchemy + Pyramid integration with deferred configuration in mind.
pyramid_redis 2018
URL: https://github.com/teamniteo/pyramid_redis
First release: 2018
Technologies: Pyramid, Python
Title: Redis for Pyramid
Integrate Redis with a Pyramid web application.
pyramid_mixpanel 2018
URL: https://pypi.python.org/pypi/pyramid-mixpanel
First release: 2018
Technologies: Pyramid, Python
Title: Mixpanel for Pyramid
Integrates Pyramid app with Mixpanel to learn who your users are and how they are using your app.
pyramid_straw 2017
URL: https://pypi.python.org/pypi/pyramid-straw
First release: 2017
Technologies: Pyramid, SQLAlchemy
Title: Database troubleshooting tool for Pyramid apps
The first tool you should use to analyze what's 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.
collective.impersonate 2017
URL: https://pypi.python.org/pypi/collective.impersonate
First release: 2017
Technologies: Python, Plone
Title: Allow administrator to impersonate another user (useful for debugging).
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.
pyramid_redirect 2017
URL: https://pypi.python.org/pypi/pyramid_redirect
First release: 2017
Technologies: Pyramid
Title: A Pyramid add-on for redirecting URLs
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.
pyramid_force_https 2017
URL: https://pypi.python.org/pypi/pyramid_force_https
First release: 2017
Technologies: Pyramid
Title: A Pyramid add-on for forcing HTTPS
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.
pyramid_heroku 2017
URL: https://pypi.python.org/pypi/pyramid_heroku
First release: 2017
Technologies: Pyramid, Heroku
Title: Helpers for running Pyramid on Heroku
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.
Handbook 2017
URL: https://github.com/teamniteo/handbook
First release: 2017
Technologies: 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.
pyramid_letsencrypt 2016
URL: https://pypi.python.org/pypi/pyramid_letsencrypt
First release: 2016
Technologies: Pyramid
Title: Easy validation of Let's Encrypt SSLs
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.
Passive Indexation Check 2016
URL: https://wordpress.org/plugins/passive-indexation-check/
First release: 2016
Technologies: WordPress
Title: Passive Indexation Check WordPress plugin
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.
pyramid_favicon 2016
URL: https://pypi.python.org/pypi/pyramid_favicon
First release: 2016
Technologies: Pyramid
Title: A Pyramid add-on for handling favicons
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.
WP Rewritely 2015
URL: https://github.com/teamniteo/wprewritely
First release: 2015
Technologies: Wordpress
Title: WP Rewritely Wordpress plugin
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.
spiderblocker 2015
URL: https://wordpress.org/plugins/spiderblocker/
First release: 2015
Technologies: WordPress
Title: WordPress plugin for blocking bots.
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.
CF7GHQ 2015
URL: https://wordpress.org/plugins/integration-between-groovehq-and-cf7/
First release: 2015
Technologies: WordPress
Title: GrooveHQ Integration for Contact Form 7
Plugin allows you to choose contact forms that send requests directly to GrooveHQ inbox instead to email.
heroku-buildpack-buildout 2014
URL: https://github.com/teamniteo/heroku-buildpack-buildout
First release: 2014
Technologies: Bash, Buildout, Heroku
Title: Heroku buildpack: Buildout
A Heroku buildpack for Python apps, powered by Buildout.
heroku-buildpack-lftp 2014
URL: https://github.com/dz0ny/heroku-buildpack-lftp
First release: 2014
Technologies: Bash, Heroku
Title: Heroku buildpack: lftp
A Heroku buildpack for adding lftp to your application.
heroku-buildpack-forego 2014
URL: https://github.com/dz0ny/heroku-buildpack-forego
First release: 2014
Technologies: Bash, Heroku
Title: Heroku buildpack: forego
A Heroku buildpack for adding forego to your application.
heroku-buildpack-unzip 2014
URL: https://github.com/teamniteo/heroku-buildpack-unzip
First release: 2014
Technologies: Bash, Heroku
Title: Heroku buildpack: unzip
A Heroku buildpack for adding unzip to your application.
baculanix 2014
URL: https://github.com/teamniteo/baculanix
First release: 2014
Technologies: nix, Bacula
Title: Nix configuration for Bacula server
Testing out NixOS by doing a configuration for a Bacula backup server
ucg 2013
URL: https://pypi.python.org/pypi/ucg
First release: 2013
Technologies: Python
Title: Python bindings for UCG API
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.
wordai 2013
URL: https://pypi.python.org/pypi/wordai
First release: 2013
Technologies: Python
Title: Python bindings for WordAi API
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.
slc.permissiondump 2013
URL: https://pypi.python.org/pypi/slc.permissiondump
First release: 2013
Technologies: Python, Plone
Title: Visualize a tree of local roles assigned on Plone items.
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.
chimprewriter 2013
URL: https://pypi.python.org/pypi/chimprewriter
First release: 2013
Technologies: Python, Plone
Title: Python bindings for ChimpRewriter API
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.
niteoweb.aweber 2013
URL: https://pypi.python.org/pypi/niteoweb.aweber
First release: 2013
Technologies: Python, Plone
Title: Aweber API integration for Plone.
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.
iwwb.eventlist 2012
URL: https://pypi.python.org/pypi/iwwb.eventlist
First release: 2012
Technologies: Python, Plone
Title: Provides a Plone interface for accessing the event search of InfoWeb Weiterbildung.
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.
spinchimp 2012
URL: https://pypi.python.org/pypi/spinchimp
First release: 2012
Technologies: Python
Title: Python bindings for SpinChimp API
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.
spinnerchief 2012
URL: https://pypi.python.org/pypi/spinnerchief
First release: 2012
Technologies: Python
Title: Python bindings for SpinnerChief API
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.
thebestspinner 2012
URL: https://pypi.python.org/pypi/thebestspinner
First release: 2012
Technologies: Python
Title: Python bindings for TheBestSpinner API
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.
collective.listusers 2012
URL: http://pypi.python.org/pypi/collective.listusers
First release: 2012
Technologies: Python, Plone
Title: A search form for listing Plone users.
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.
spinrewriter 2012
URL: http://pypi.python.org/pypi/spinrewriter
First release: 2012
Technologies: Python
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.
bobtemplates.niteoweb 2012
URL: https://pypi.python.org/pypi/bobtemplates.niteoweb
First release: 2012
Technologies: Python, mr.bob, Pyramid, Plone, Buildout
Title: Templates for quickly bootstrapping best-practice Plone & Python projects.
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.
niteoweb.ipn.core 2012
URL: https://pypi.python.org/pypi/niteoweb.ipn.core
First release: 2012
Technologies: Python, Plone
Title: Support for Instant Payment Notifications in Plone.
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.
niteoweb.ipn.jvzoo 2012
URL: https://pypi.python.org/pypi/niteoweb.ipn.jvzoo
First release: 2012
Technologies: Python, Plone
Title: A Plone add-on that integrates JVZoo digital products retailer system with Plone to enable paid memberships on your site.
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.
niteoweb.jvzoo 2012
URL: https://pypi.python.org/pypi/niteoweb.jvzoo
First release: 2012
Technologies: Python, Plone
Title: A Plone add-on that integrates JVZoo digital products retailer system with Plone for paid memberships.
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.org/project/niteoweb.ipn.jvzoo
rtd_buildout 2012
URL: https://github.com/teamniteo/rtd_buildout
First release: 2012
Technologies: Python, Buildout
Title: Buildout for internally running ReadTheDocs
Buildout for internally running ReadTheDocs. This is an alternative installation procedure. For people who are not using virtualenv on their servers.
hexagonit.portletstyle 2011
URL: https://pypi.python.org/pypi/hexagonit.portletstyle
First release: 2011
Technologies: Python, Plone
Title: Assign a CSS style to a portlet
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.
hexagonit.virtualgallery 2011
URL: https://pypi.python.org/pypi/hexagonit.virtualgallery
First release: 2011
Technologies: Python, Plone, Flash
Title: Virtual 3D image gallery for Plone
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.
collective.table 2011
URL: http://pypi.python.org/pypi/collective.table
First release: 2011
Technologies: Plone, Python
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.
niteoweb.fabfile 2011
URL: https://pypi.python.org/pypi/niteoweb.fabfile
First release: 2011
Technologies: Python, Fabric, Buildout
Title: A bunch of Fabric commands we use all the time.
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.
niteoweb.click2sell 2010
URL: https://pypi.python.org/pypi/niteoweb.click2sell
First release: 2010
Technologies: Python, Plone
Title: Integrates click2sell digital products retailer system with Plone for paid memberships.
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.
niteoweb.clickbank 2010
URL: https://pypi.python.org/pypi/niteoweb.clickbank
First release: 2010
Technologies: Python, Plone
Title: Integrates ClickBank digital products retailer system with Plone for paid memberships.
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.
niteoweb.downloadcounter 2010
URL: https://pypi.python.org/pypi/niteoweb.downloadcounter/
First release: 2010
Technologies: Python, Plone
Title: Counts how many time was a File content type downloaded and displays this number on File view page.
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.
niteoweb.transmogrifier.simpleusage 2010
URL: https://pypi.python.org/pypi/niteoweb.transmogrifier.simpleusage
First release: 2010
Technologies: Python, Plone, Transmogrifier
Title: A simple example of how to use collective.transmogrifier.
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.
multitrac 2010
URL: https://pypi.python.org/pypi/multitrac
First release: 2010
Technologies: Python, Pyramid, Trac
Title: A pyramid application to manage multiple Trac installations
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.
FireInFolders 2009
URL: http://pypi.python.org/pypi/FireInFolders
First release: 2009
Technologies: Python
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"
niteoweb.Loginas 2009
URL: https://pypi.python.org/pypi/niteoweb.loginas
First release: 2009
Technologies: Python, Plone
Title: Allow administrator to login as another user (useful for debugging).
Install through quickinstaller and head to http://ip/ploneinstance/@@login-as. One of our most popular Plone add-ons.
niteoweb.windmill 2009
URL: http://pypi.python.org/pypi/niteoweb.windmill
First release: 2009
Technologies: Plone, Python, Windmill
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 https://github.com/windmill/windmill/wiki/Controller-API. For more details, see https://github.com/windmill/windmill.
Contributions
NixOS Tests 2025
URL: https://nix.dev/tutorials/nixos/integration-testing-using-virtual-machines.html
First release: 2025
Technologies: Nix, Python
In 2025 we started extensively using the NixOS Test Driver to test the Pareto Security agent across different Linux distros, and contributing back to the project.
devenv 2024
URL: https://devenv.sh/
First release: 2024
Technologies: Nix
Title: Devenv
Devenv is becoming our standard replacement of nix-shell, to build development environments for our projects. We work with the devenv folks to improve the tooling.
Cachix 2023
URL: https://github.com/cachix/git-hooks.nix
First release: 2023
Technologies: Nix
Cachix is a binary cache the we use for all our projects. We contribute fixes to their opensource tooling.
poetry2nix 2022
URL: https://github.com/nix-community/nixpkgs
First release: 2022
Technologies: Nix, Python
We use poetry2nix to build all our Python projects, and we regularly contribute fixes we find along the way.
nixpkgs 2021
URL: https://github.com/NixOS/nixpkgs
First release: 2021
Technologies: Nix
Title: Nixpkgs
We packaged different software that we use daily so that it can be installed with Nix.
celery 2020
URL: https://github.com/teamniteo/celery
First release: 2020
Technologies: Python
Title: Celery
A task queue runner for Python. We added support for Python to an older version.
elm-spa-example 2019
URL: https://github.com/teamniteo/elm-spa-example
First release: 2019
Technologies: ELM
Title: ELM Sigle Page App
Fully fledged fullstack application built with Elm including CRUD operations, authentication, routing, pagination, and more. We contributed examples and added mobile support.
repoze.workflow 2018
URL: https://github.com/teamniteo/repoze.workflow
First release: 2018
Technologies: Pyramid, Python, SQLAlchemy
repoze.workflow is a state machine and associated configuration system useful for workflow-like applications. We contributed Python 3 compatibility fixes.
pyramid_raven 2016
URL: https://pypi.python.org/pypi/pyramid_raven
First release: 2016
Technologies: Pyramid, Raven
Title: Raven integration for Pyramid
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.
trypyramid.com 2016
URL: https://github.com/Pylons/trypyramid.com
First release: 2016
Technologies: webpack
Title: Pyramid presentation website https://trypyramid.com
https://trypyramid.com is a presentation website for the Pyramid Python Web framework. During DragonSprint.com we contributed several fixes and updates.
pylonsproject.org 2016
URL: https://github.com/Pylons/pylonsproject.org
First release: 2016
Technologies: webpack
Title: Pylons Project presentation website https://pylonsproject.org
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.
deform 2016
URL: https://pypi.python.org/pypi/deform
First release: 2016
Technologies: Pyramid
Title: Deform form library
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.
Apache Libcloud 2015
URL: http://libcloud.apache.org/
First release: 2015
Technologies: Python
Title: Apache Libcloud is a Python library for dealing with "the Cloud"
Libcloud is a popular and widely adopted library in the Python ecosystem. We contributed support for several new DNS providers.
mixpanel-query-py 2015
URL: https://github.com/cooncesean/mixpanel-query-py
First release: 2015
Technologies: Python
Title: The Python interface to fetch data from Mixpanel.
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.
Haraka 2014
First release: 2014
Technologies: NodeJS
Title: A modern, high performance, flexible SMTP server.
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.
Products.OneTimeTokenPAS 2013
URL: https://pypi.python.org/pypi/Products.OneTimeTokenPAS
First release: 2013
Technologies: Python, Plone
Title: Login using a token that can be only used once.
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.
archetypes.referencebrowserwidget 2013
URL: https://pypi.python.org/pypi/archetypes.referencebrowserwidget
First release: 2013
Technologies: Python, Plone, Javascript
Title: A referencebrowser implementation for Archetypes
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.
plone.api 2012
URL: https://docs.plone.org/plone.api
First release: 2012
Technologies: Python, Plone
Title: A Plone API.
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.
collective.recipe.supervisor 2011
URL: https://pypi.python.org/pypi/collective.recipe.supervisor
First release: 2011
Technologies: Python, Supervisord, Buildout.
Title: A buildout recipe to install supervisor.
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.
collective.uploadify 2010
URL: https://pypi.python.org/pypi/collective.uploadify
First release: 2010
Technologies: Python, Plone, Javascript
Title: Multi File Upload for Plone
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.
collective.recipe.backup 2009
URL: https://pypi.python.org/pypi/collective.recipe.backup
First release: 2009
Technologies: Python, Plone
Title: Sensible defaults for Plone backups.
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.
Client Work (2006–2013)
In our first years Niteo built websites, content management systems, and custom Pyramid / Plone apps for clients across Europe and the US. We transitioned fully to building our own SaaS products in 2013.
Consulting
Pyramid consulting for enquos 2013
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.
Plone consulting for Syslab.com 2012
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.
Plone consulting for Six Feet Up 2011
Six Feet Up is a 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.
Plone consulting for Hexagon IT Oy 2011
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.
Plone Cloud Deployment Consulting for Termitnjak 2010
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.
Databases Consulting for Labena 2010
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 two 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.
Logo Auctioning for Agrologistika 2009
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.
Proof-of-concept application for Balanced Scorecard Method 2008
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
Booking portal for SOU Ljubljana 2010
First release: 2010
Technologies: Python, Plone, Buildout, Nginx, RichDocument, Supervisord
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, with both faculties and rooms represented as pins. The system automatically calculates distances from a flat to the faculty, and search results can be sorted by distance from a chosen faculty. When an Erasmus student leaves Ljubljana, they are asked to provide a rating of the room (from 1 to 5) and a short comment. Site news is implemented like a simple blog; the forum is implemented by integrating Nabble mailing lists into the site.
Security hardened demonstrations website 2010
First release: 2010
Technologies: Nginx, CentOS, iptables, Munin, password managing
Š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.
Presentation Website for MIROR d.o.o. 2010
First release: 2010
Technologies: WordPress, PHP, MySQL
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.
Sales Website for Zavod mladi podjetnik 2010
First release: 2010
Technologies: WordPress, PHP, MySQL
Zavod mladi podjetnik offers special prices for accounting services for its 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.
Presentation Website for Marjan Racnik, Vodja.si 2010
First release: 2010
Technologies: Plone, Python, Buildout, Supervisord, CacheFu
A presentation website for an 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.
Presentation Website for Moj fit 2010
First release: 2010
Technologies: WordPress, PHP, MySQL
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.
Presentation Website for EMSA Europe 2010
First release: 2010
Technologies: Python, Plone, Buildout, Nginx, RichDocument, Supervisord
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.
Izterjevalec.si — Automatic Debt Notification 2009
First release: 2009
Technologies: Python, Plone, Buildout, Nginx, SSL, Supervisord, Sphinx, SMS dispatch module
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. We added a special module for communicating with our SMS dispatch center via HTTP protocol. We used crontab to run hourly tasks: a special script goes through the whole database and finds content that needs SMS notification, generates the SMS text from pre-defined templates, and relays it to the SMS dispatch center.
Presentation Website for Next Generation Mobile Services 2009
First release: 2009
Technologies: Plone, Python, Buildout, Supervisord
A presentation website for the Next Generation Mobile Services workshop organized by Local Committee Ljubljana of Electrical Engineering Students European Association — EESTEC. NGMS is an international workshop held in 2008 in Ljubljana, where students from all around Europe learn about IMS. Since the project was to be done on a minimal budget we took the freely available Plone theme called 'Nautica Theme', set up the basic layout of the site, configured site settings, and added members with permissions to manage content. The web system was deployed on our servers as part of our sponsorship program with EESTEC LC Ljubljana.
Presentation Website for G-Stanic 2009
First release: 2009
Technologies: WordPress, MySQL, PHP
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.
Sales Website VarenSplet.si 2009
First release: 2009
Technologies: plain HTML/CSS, Nginx
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.
Corporate Website for RE plus 2009
First release: 2009
Technologies: Python, Plone, PloneFormGen, RichDocument, Plone Wilkin Theme
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.
Corporate Website for Zinter 2009
First release: 2009
Technologies: Python, Plone, Buildout, Supervisord, CacheFu
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 its brand, then 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.
Public Relations Website for Jernej Damjan 2009
First release: 2009
Technologies: Plone, Python, Buildout, Intense Simplicity, qPloneCaptchas, Plone Comments, Supervisord
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 added Jernej as a member with permissions to manage content, so he could personally add and edit news, articles and multimedia on his site.
Corporate Website for Sinergija3 2009
First release: 2009
Technologies: Plone, Python, Buildout, Supervisord, CacheFu
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 its 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.
News Website VarnostNaSpletu 2008
First release: 2008
Technologies: Plone, Python, Buildout, Supervisord, Plone Nautica Theme
A website for educating the Slovenian internet population on 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. 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, added members and assigned them permissions for managing content. Client used Aweber email marketing software, so we created a custom portlet for displaying a registration form for Aweber's mailing list and styled it to fit into the site well.
Presentation Websites for Yearly Magazines 2007
First release: 2007
Technologies: Plone, Python
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, customized to align with Plone's layout. We also installed 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 non-standard design with leaflets and made 7 different color variations.
Corporate Website for DIMAS 2007
First release: 2007
Technologies: Plone, Python, Buildout, Nginx, Supervisord, RichDocument
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 the RichDocument add-on for Plone to enable attachments support for default Plone's Document content type. PloneTrueGallery add-on is used to deliver a "Web 2.0"-ish gallery. The design was based on a graphical template from a major template-reselling site, customized to align with Plone's layout. The system has run for more than 3 years on a cost-effective small-sized virtual server.
Customer Relationship Manager (CRM) for OBS 2007
First release: 2007
Technologies: Plone, SSL, Python
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, one of our first internal projects. The client used our CRM to keep 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 them to employees. Employees had a "worklist" view for listing interactions to be handled today, tomorrow, in the next week, and so on. Accommodation partners were sorted by country and ski-resort. Access to the application was protected with an SSL certificate to ensure safe data transfer.
News & Events portal for Zavod mladi podjetnik 2006
URL: http://mladipodjetnik.si/
First release: 2006 (ongoing development)
Technologies: Python, Plone, Buildout, CacheFu, PloneFormGen, Varnish, RichDocument, Supervisord, CentOS, phpBB
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. Work on the third version began in late 2008 — based on Plone 3.1 with heavily customized content types. The design was done completely in-house: from structural design, to graphical draft to the finally installable Plone theme product. We used OpenX as the backend for ads management. In 2011 the Plone 3.1 version was migrated to Plone 4.0 and the design was rewritten in Diazo. The site receives more than 40,000 unique visitors per month.
Presentation & Collaboration Website for EESTEC 2006
First release: 2006
Technologies: Plone, Python, Buildout, Supervisord, LinguaPlone
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, used Pyboom Plone theme and customized it to suit EESTEC's needs. 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. The website is bi-lingual (Slovenian and English), achieved by integrating the great LinguaPlone add-on.