Giter Club home page Giter Club logo

open-services's Introduction

Open Services

A Open Service is a public infrastructure project which purpose is to act similar to a public service/utility.

This means the service should not seek to earn profit for it's owners and/or workers, but rather be self-sustainable by receiving funding from its users, similar to a public service.

Open Services are created for the public benefit of having a open source service providing some values to it's users. Users who think the service is providing enough value to be funded, will help fund the service.

One of the first Open Services is Open-Registry, a public package registry that serves software engineers with necessary infrastructure to share code between different projects and package managers.

Other Open Services are in the Evaluating phase.

Open Services are similar to "Open Startups" but without the for-profit motive that a company has. Open Startups refers to openness and sharing of statistics publicly, but Open Services goes one step further and declares that the Open Service is explicitly not about earning profit but about providing value for all it's users and open to the community to own and contribute to.

Each open service is financed individually, to ensure that each project is self-sustainable. They share a common framework but acts for their own survival in the end. Open service is just a set of guidelines the open services use and act according to.

Framework

Open Services aims to provide a framework for running public utility like infrastructure.

The framework consists of multiple parts.

Finance

  • Self-Funded
  • Automatic payment of expenses from same funds
  • Public history of current/past incomes/expenses
  • Efficiency of received funds
  • Have shutdown scenario in mind
    • What happens with existing funds?
    • How will shutdown of financial services happen?

Software Infrastructure

  • Automatic infrastructure
    • Deploys on commit
  • Public introspection
    • Deployment logs
    • Changelogs
  • Shared secrets access
    • Guidelines for security

Governance

  • Full transparency
    • Deploys
    • Metrics
    • Alerts
    • Funding
    • Expenses
  • Funded/Governed/Developed by the community
    • Clear governance setup
    • Visible membership in the different projects
  • Should be able to migrate to later version of framework

Product

  • No backwards incompatible changes (unsure?)
    • Once something been deployed, no taking it back
  • Full export functionality
  • Automatic export on shutdown if possible
  • Offline-first
  • Compatible with the alternative services if possible
  • Only focuses on one product category
  • Explicit phases
    • Evaluating
    • Starting
    • Operating
    • Closing
    • Closed
  • Clear start/continue/stop scenarios

The goal of a Open Service

Providing a infrastructure service to the public, in exchange for donations from the public to continue running the service.

Things that we currently have being run by private for-profit companies, should instead be provided by a non-profit oriented interest, otherwise the incentives are misaligned.

open-services's People

Contributors

victorb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

open-services's Issues

Finish version one

Files exists but obviously need to actually contain text and be finalized.

Once V1 is finished, we lock it and start working towards a V2 if needed.

  • finance
    • automatic-expensing.md
    • monthly-donations.md
    • public-history.md
    • self-funded.md
    • shutdown.md
  • governance
    • governance.md
    • memberships.md
    • migration.md
    • transparency.md
  • infrastructure
    • automatic-infrastructure.md
    • public-introspection.md
    • secrets.md
  • product
    • compatibility.md
    • export.md
    • offline-first.md
    • phases.md
    • shutdown.md
    • single-product-focus.md
  • Template for services/ directory
  • Open Services Website
    • Outlines
    • Develop
    • Publish

Setup ways to perform "Automatic Expensing"

Right now, services would have to manually perform any expensing for infrastructure. We should provide a supported way of doing this automatically.

  • Receive invoices for infrastructure costs
    • Hetzner
    • DNSimple
  • Automatically create expense report for OpenCollective
    • OpenCollective to support creation of invoices via API
  • Create service for receiving invoices and create expense in OpenCollective

GitHub inclusion bot

The framework governance document has the following section:

2.2 Currently, the inclusion in this group is manual. You'll receive an invite to the "Contributors" team on GitHub if activity from you is seen.

We should be running a bot connected to GitHub which performs this action automatically.

So the rules would be:

  1. Look through all the activity in the selected organization
  2. If any activity is seen from a new contributor:
  • Make sure they haven't been invited yet
  • Invite them to the Contributors team

Should be relatively straightforward.

Essential services eligble for Open Services

So, Open-Registry was the first project but won't be the last.

In general, the idea is to see what services OSS developers and users are relying on to continue to exist for doing their work properly and efficiently.

Before Open-Registry was created, the idea was to have a website hosting service, run as a Open Service.

Other ideas include (but not excluded to):

  • Proxy
  • Forum
  • Shop
  • Storage
  • Metrics
  • Webhooks
  • Monitoring
  • Pager
  • Deploy
  • Comments
  • Identification
  • Forms

In the end, all of those are just possible ideas.

What else is there out there that people are using, but are currently limited to use for-profit companies for it?

How to deal with voting?

Currently, the governance has bunch of scenarios that involve voting.

Some votes are open for everyone, others just for contributors and others just for the leadership team.

The is currently no structure around this voting, as the membership is very low.

I've been thinking about how to implement voting, either via a third-party service, or via GitHub.

First thing to sketch up would be how the states of the vote progresses.

Secondly finding something where we can implement it.

One service I found via OpenCollective's GitHub org is https://gh-polls.com/ (repo: https://github.com/apex/gh-polls) which seems simple and allows us to perform votes.

Only thing missing there is opening votes for when certain files changes (like if the docs/governance.md file changes, make sure the PR which proposes the change includes a poll to vote yes/no/veto)

Pipeline for roadmaps

Rather than having the leadership deciding on a roadmap they come up with, we should have a pipeline where ideas from the community can flow into the roadmap and get prioritized if it's a feature/thing a lot of people want.

Haven't thought too much about this, except the fact that we want people to be involved in the roadmap creation as much as possible.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.