This is the multi-page printable view of this section. Click here to print.
The Nivenly Foundation Blog
- Updates for October and November
- Hey, I've got questions...
- An announcement regarding Kris Nóva
- Haidra Nivenly Member Discussion Process
- A Deeper Dive into Haidra
- Building Nivenly: A letter from Quintessence
- Federation Safety Enhancement Project Announcement
- Our First Community Discussion and Vote: Haidra
- Haidra Joins the Nivenly Foundation
Updates for October and November
Hello everyone! As many of you know, we have been working to restore and formalize operations and duties after the unexpected passing of our founder, Kris Nóva, in August. We would like to update you on what has been happening in each project, what they’re looking for next, and how you can get involved in the decision process.
For a tl;dr; on upcoming votes & new discussions you can participate in:
- Survey for resuming the process on Haidra
- Pachli application Q&A & next steps
- FIRES proposal Q&A & next steps before the first implementation
- Discussion on codifying process for incubating/approving projects / clarification on board vs general member powers
A quick overview
Nivenly is a member-run co-operative, with many projects that have their own maintainers and communities. We will cover more about governance towards the end of this post. There are four projects with updates: Haidra, FSEP, Pachli, & FIRES. These are each at different stages of acceptance, and we have heard your feedback on the onboarding process. We will be having discussions earlier and publishing applications and such (more later!)
Nivenly projects (not just those four), are looking for volunteers and maintainers. Volunteering on a project can help you learn skills, exchange advice, and build up contributions to open source. It’s a great way to help shape, maintain, and understand the programs you use, and give back to free software. Nivenly projects are also governed by the members of the co-operative, in a way that’s different from commercial software.
Here’s a crash course about Nivenly’s projects & soon to be projects:
- Aurae: Lead maintainer: dma
- Preferred contact: Nivenly Discord
- Needs: see https://github.com/aurae-runtime/aurae
- Hachyderm: led by entire Hachyderm Moderation and Hachyderm Infrastructure teams.
- Haidra: Lead maintainer: db0
- Preferred contact: @dbyzer0:matrix.org
- Needs: Python developers, community managers, Postgresql admins, funding
- FSEP: currently on hold (see this post)
- Pachli: Lead maintainer: Nik Clayton
- FIRES: Lead maintainer: Emelia Smith
All Nivenly project discussion is welcome on our Discourse (https://nivenly.discourse.group/), which is a more permanent place compared to Discord. There’s separate member areas for member specific actions/discussion.
The Nivenly Foundation is also looking for volunteers to help run Nivenly itself. Nivenly non-profit volunteers are asked to contribute a modest commitment of at least two hours per week.
Of particular note: our new documentation & member advocacy team (lead by Alex & Risotto) is looking for volunteers. For docs, you’ll help with drafting blog posts, site documentation, and maintaining meeting records. For member advocacy you’ll help with addressing questions, facilitating conversations, & watching for patterns in Q&A.
More about each project
State of Hachyderm Infra: we completed the big upgrade to 4.2.0 (and more recently 4.2.1), which brought some very neat features to Hachyderm and saw the return of full-text search. We’ve gotten in a very good groove with a proven runbook for upgrades, and, in the future, we should see us upgrade to stable releases very quickly.
Under the hood, we spent some time improving our database backup routine and switched to pgbackrest and said thank you and goodbye to pg_dump. The new backup mechanism allows for faster incremental backups and more straightforward restores in the event of a disaster.
From a capacity perspective, we have significant headroom to weather additional, sudden growth. We likely won’t need to add any capacity until we 2x our current user base/traffic.
What’s up next?
Fastly CDN in front of hachyderm.io - take advantage of Fastly’s global presence and DDoS protection Improved resilience in the web stack - multiple mastodon-webs behind load balancers, enable things like downtime-less upgrades Commoditized components - reduce operator toil to replace components like sidekiq by booting new boxes and taking out the old
The moderation is composed of volunteer team members distributed across the globe. These team members work together to:
- Review reports submitted by Hachyderm users,
- Review reports submitted and forwarded about Hachyderm users,
- Handle appeals,
- Develop moderation documentation and procedures,
- and Proactively monitor instances in the Darkfedi
While a majority of our work is completed async, we also meet on a regular cadence to check in on each other, review complicated reports/appeals, and discuss policy or procedure changes.
If you would like to join the moderation team, review the Moderator Covenant (https://community.hachyderm.io/docs/moderation/covenant/) and submit your application by visiting https://volunteer.hachyderm.io/.
In the new year, we will also be establishing a trusted reporter network and restarting our Moderator Minutes monthly reports. Be on the lookout for more details about the trusted reporter networking coming in the January Moderator Minutes.
Nivenly is running a quick survey about the governance process in the coming weeks (and will send another update when we do). We’re curious where it would be best to restart the process, since our founder’s passing caused a significant delay in the middle. Nivenly’s process for project approvals has become more open due to feedback (Pachli’s and FIRES’ applications & Q&A will be different for example), and we’re curious whether members want to restart at a second Q&A or a formal acceptance vote, et cetera. We want to learn more about how we can engage with Nivenly General Members so they can ensure their voices are heard at the stages of the process they wish to be heard in. The last time discussions on this happened were back in August.
Haidra has been relatively steady as far as development. There’s a new beta version of the worker backend code they’re working on and constant stream of updates in the AI Horde Middleware. Code is pretty decent and if you’d like to help there’s a Haidra discord.
Haidra itself was in limbo as far as member processes go, and we would like to restart them soon, slightly delayed. Where previously the board would select or professionally recommend projects, as this is a cooperative we want membership to move towards making these sorts of decisions and processes going forwards.
Recently to deal with CSAM on Lemmy, Haidra developed an image interrogation service. This allows you to automatically scan images during upload to reduce mod burden and then flag them for further review, or block their upload entirely, for example.
Federation Safety Enhancement Project (FSEP)
FSEP is a product requirements paper written by Ro. The ultimate goal of FSEP is to enable more seamless management of multiple blocklists - local, imported, subscribed - so that Fediverse admins and moderators have an easier way of managing abusive behavior. The goal of FSEP was to release the v1.0 of the paper, which included one initial blocklist source - The Bad Space (also made by Ro). The goal was for other blocklist providers to see this template and give feedback for what would allow FSEP to be compatible with their own blocklists. Unfortunately due to a few factors, including the unexpected passing of our founder Kris Nóva days after the release of the product requirements document as well as the author and original maintainer Ro needing to take a step back due to a torrent of racism that he received over The Bad Space, the originally planned Q&A that was supposed to happen shortly after FSEP was published did not have the opportunity to happen.
FSEP itself was a wonderful opportunity to engage with the community and create a feedback loop. There was a lot of positive and negative criticism around the concepts that FSEP introduced and the ideas it supported to handle them. Ultimately, this is a great start!
The status of this project is on hold, pending the return of either the original maintainer or a handoff to a new one.
(Disclosure statement: the FSEP paper was funded by Nivenly via a direct donation from a member of Nivenly’s board, Mekka Okereke.)
New ( 🎉 ) Project Applications with Next Steps
We have two projects in the queue, one is a project that has expressed interest in applying to be a Nivenly Project and the other is a sponsored project to support those interested in full time Trust and Safety work. Both of these will have separate blog posts with more detail, including timelines, published in the next couple of weeks.
Pachli - A Mastodon Application for Android
Nivenly has received a project application from Pachli, a fork of the Tusky Android project. In response to member feedback, we wanted to make sure that members have the opportunity to have their questions answered much earlier in the project application cycle. In this case, right after the draft of the project application finished any initial Q&A from Nivenly’s board.
Pachli’s complete application is visible here. We’re sure both members and non-members have questions about Pachli! For members, since your questions are part of the governance process please put your questions in the member only area of our Discourse. For non-members, please feel free to ask questions as well in our Discourse’s public area. To help us, and the head maintainer of the project, keep track of the question threads we’ve created both of the members-only and general public threads to kick off the discussions.
FIRES (formerly known as FFS)
Nivenly is also sponsoring Fediverse Intelligence Recommendations & Replication Endpoint Server (FIRES), which is led and being built by Emelia Smith (@thisismissem). For those who have been following her work, this is a rename of the same project formerly referred to as Fediverse Filter Server (FFS). Nivenly’s support for FIRES is two fold: both the initial technical proposal as well as the initial reference implementation. (Updated to add: we’ve been asked a couple of times if FIRES is the same project as FSEP. These are independent projects with separate maintainers that operate in the same space. To borrow from a familiar concept, this is no different than the Ghost and Wordpress blogging platforms. Both are in the same space, blogging, but are completely separate projects run by different people.)
First: what is FIRES? FIRES is in part a response to feedback that there needed to be more nuance in moderation than simply allow and deny lists. Instead, the primary goal of FIRES is to provide the ability to subscribe to moderation advisories and recommendations that change over time. The moderation data will also be structured instead of unstructured - basically instead of a single text field, as is the experience today, the data will be highly structured and capture the full history of changes to moderation recommendations and advisories. This allows machines to better interact with the data of moderation recommendations and advisories, such that tools and user interfaces can be built to expose more data to moderators and end users alike.
As Emelia mentioned in her blog post, she is writing a 6000+ word technical proposal for FIRES. The technical proposal has been undergoing extensive private peer review from other instance moderators and groups, as well as September’s FediForum. At the time of publication, it will be ready for a round of review by members prior to the first server implementation, and will incorporate feedback from the Fediverse as needed. If you are an instance moderator, or have a background in trust and safety, please feel free to contribute your feedback (to the proposal and the implementation)! Once the proposal is ready, we’ll publish it and include where and how to submit feedback in the announcement blog post. If you’re curious about Emelia’s current progress, please check out her October Update or November Update.
For any preliminary questions, please feel free to make a post in the Nivenly Projects section of the Nivenly Discourse. While you do need an account on the Discourse, you do not need to be a Nivenly Member to sign up for an account or to ask questions about one of the projects we are stewarding.
(Disclosure notice: Nivenly is a sponsor of FIRES. Nivenly sponsored this project via a direct donation from a member of Nivenly’s Board, Mekka Okereke.)
Nivenly governance and participation
Nivenly governance is made of four components: The Board, Trade Members (trade chamber), Project Members (project chamber), & Nivenly General Members. Trade & Project chambers function on delegates. For our upcoming processes we would love to see more general member input on Discourse. We will be having several updates regarding processes, and members themselves are allowed to bring topics or polls up for a vote to initiate a change, too. Some actions are board initiated, some may require member votes, and we hope this process gets more ironed out with time.
For now, here are some key points:
- At least 51% of Nivenly General Members must participate in a vote for there to be a quorum of that chamber.
- At least 51% of those votes must be in agreement to pass a formal vote.
- It’s recommended to post on the discourse to discuss the topic and keep things organized and easy to follow.
- Try to summarize your thoughts before diving deep into data
- If you need help you can reach out to our team members
The upcoming decisions we would like to see member participation on are:
- Haidra: survey on restarting Q&A or an application acceptance vote, or just continuing on with it
- Pachli: initial application publishing and opening for Q&A
- FIRES: member discussion of initial proposal and vote on funding initial implementation
- Discussion on formalizing acceptance process, funding requirements, powers of general members vs board
Looking forward to hearing from you on Discourse!
Hey, I've got questions...
Hey, I’ve got questions…
The Nivenly Foundation is growing fast and our community has many questions. We’re dedicating time from our volunteers to answer them. This blog post describes why we think this is a critical step to take at this point in the growth of our community, how we prioritize which questions to answer when, and how you can engage with the process (see our Discourse). As a cooperative, our strength lies in our community. The better informed and engaged we are, the better we can deliver for our community.
I’ve asked questions that took a long time to answer.
First of all: thank you for your patience! Kris Nóva’s unexpected passing was a significant impact to us, and we’ve been working hard to catch up on the backlog of questions that have queued up. We ask that you continue to be patient with us as we process and catch up. We’re also expanding our volunteer team and we’ve created an area on our Discourse where anyone can ask questions about Nivenly and we will do our best to answer. Common questions will be to our documentation either on an upcoming FAQ page or other relevant pages.
What is happening to Nivenly after Nóva’s passing?
Kris Nóva was a source of strength to many of our members as a founding member and President of the Board. Her sudden passing has left us all with a hole in our hearts. If you knew her and wish to share a memorial, Nivenly has set up a memorial page that we will continue to maintain.
Given her stature in the tech community and her very visible association with the Nivenly Foundation, it is appropriate to ask what happens next. The answer is that the Foundation was built to succeed, even with changes to board membership. Nivenly is still run by the four remaining members of the board of directors as well as the Executive Director. Currently, the board is looking to backfill her seat on the board and to nominate a new President. The Executive Director, Quintessence, is actively recruiting more volunteers to support Nivenly’s non-profit operations including answering member questions as well as writing blog posts and documentation.
What are Nivenly Members?
As a cooperative, Nivenly is governed by its members. You can learn more about the kinds of members and how our governance actually works on our dedicated governance page. If you’re interested in becoming a general member, the process is quick and easy. Find more information in our membership documents. One of the main benefits of membership is participation in governance and access to the members-only area of our Discourse. We’d love to have you!
How does Nivenly relate to projects?
First, a little context. We at Nivenly strongly believe in project stewardship. To us, that means providing the tools and resources needed to be successful. Most commonly people think of money for this, and with good reason, but we are also focused on building a place where community, project maintainers, and trade organizations can come together and build toward common goals and resolve differences via governance resources.
This means that projects retain control of their own project, as we believe strongly that maintainers of each community or open source project should have independent control. Depending on how you wish to influence a project will determine which group you should engage with: the project maintainers or Nivenly. In general, when you wish to influence a project itself you must work with the project maintainers. If you wish to influence the interaction between Nivenly and projects in general, for example project application process, project differentiation (e.g. a proposal for incubated projects), and so forth then you would work with Nivenly. Our membership documents explain the process of joining and of establishing projects under Nivenly stewardship.
What about Hachyderm and the Fediverse?
One of our first projects was the Hachyderm Mastodon Server and although the Hachyderm community and the Nivenly Foundation have a significant overlap, they are governed separately. Nivenly supports the independent maintainers of Hachyderm. We also believe that the Fediverse in general lends itself well to independent, maintainer-controlled spaces. As a foundation, we are always looking for ways to improve the Fediverse tooling in that direction. We support other projects as well. You can find the full list on our projects page. And, if you’re a maintainer who is interested in our support, we have an intake process to help you get started including how to tell if we’re the right fit for you.
How can I tell when you’re wearing which hat?
Nivenly is a cooperative with many of the projects under our stewardship that are also run by members of our community. At times this may lead to confusion about “which hat” a particular person is wearing when they communicate: Nivenly? Their project? We’ll try to be as clear as possible, but this is definitely an area where we’ve got work to do. Recently, in particular, there has been some confusion about the relationship between Nivenly, Hachyderm, and the broader Fediverse ecosystem. This issue of transparency and accountability is at the heart of our decision to write this blog post. There will also be future blog posts and documentation to help clarify this.
Sounds complicated. How are you planning to address it?
As a cooperative, Nivenly doesn’t maintain staff specifically for the purpose of writing blog posts and web pages. Our volunteers take an hour or two out of their schedules to drop in and help out as their skills and availability meet our needs. In an effort to clarify how Nivenly works and where each project fits into the broader ecosystem, we’ve created an area on our Discourse where we can record questions as they come up. Questions can come from anyone, members and non-members alike. Our volunteers will do their best to prioritize answering questions that have the broadest impact on our community. Instructions and guidelines are in the pinned post. You can sign up for the discourse at nivenly.discourse.group. Where appropriate, we’ll convert the answers to our official Nivenly documentation.
An announcement regarding Kris Nóva
It is with immense sadness that we must share with you the news of the loss of our friend, our leader, and our mentor, Kris Nóva.
It was Nóva who inspired us to come together to build Hachyderm, whose vision created Nivenly, and whose mission we continue to carry forward. In her working life beyond Nivenly, she has left behind a legacy of professionalism and strength of vision, and we all miss her terribly.
This is very fresh and raw for us in the Nivenly community right now, so we ask for patience while we figure out how we move forward. But move forward we will, as we know that is what Nóva would want.
Haidra Nivenly Member Discussion Process
Today is the beginning of the Nivenly General Member Discussion for Haidra. To help with the discussion, please take a look at our posts about Haidra and our Letter from Quintessence about Nivenly:
As was mentioned in Quintessence’s letter, we’re evaluating tools that provide more functionality and have a broader reach than GitHub tools. Most specifically, the ability to have member-only areas that will facilitate member discussions, elections, and so forth. The tool we’re using for this discussion is Discourse. (If it goes well, we’ll be keeping Discourse for broader use. We’ll outline the specifics when that time comes.)
The member discussion itself
The goal of Nivenly is to support open source, and the primary focus of any Nivenly conversation should be around how to incrementally improve the state of open source. There are a few member discussion topics that need to take place here, both in the AI space generally and as applies to Haidra, specifically.
- Because this is the first member discussion we will be targeting an “unconference” style discussion where members suggest and vote on topics during the discussion.
- Discussion topics need to be directed toward outcomes. For example, if the result of a discussion is that something doesn’t exist today, how can we work together to build it?
A couple example topics that may be used to seed the conversation:
- What are examples of existing ethical AI models that projects can use?
- What member contributions can improve the state of open source AI?
- What could Haidra do (if anything) to satisfy concerns raised by members? What could be different?
- What timeline would Haidra have to address concerns raised by members? What should the state of the project be during this timeline?
How to sign up for Discourse
Right now we cannot automate the sign up process for Discourse, e.g. by connecting to Open Collective. So for this part of the process, we’ll need to do a manual reconciliation. In order to do this:
- Sign up for your Discourse account
- Use the invite code provided in our message in Nivenly’s Open Collective
- Post the link to your Open Collective user URL in the Member sign up thread within 24 h
- Your member URL should be of the format: https://opencollective.com/user-1234asdf
- When you make your post, you’ll see that we’ll need to approve the post before it posts
We’re taking the step to approve the posts as they’re posted, so we can approve and delete the posts as we manually reconcile sign ups with Nivenly General Members (on Open Collective). Once your account has been approved, you can participate in the discussions in the Nivenly General Member area of Discourse.
A Deeper Dive into Haidra
Hey everyone, db0 here. I’m the lead developer of the AI Horde and the public face of Haidra. I want to thank everyone who provided feedback in the past weeks. I am working hard with Nivenly to show that Haidra is an opportunity to improve the open commons.
I will say that the criticisms we received when we made the original announcement caught me by surprise. Therefore I was unprepared for the volume and passion displayed, and perhaps didn’t handle it the same as I should have in a different situation. As a neurodivergent, I will readily admit that I do not react well to such comments and for that I’d like to apologize and try again.
I want to tell you all about Haidra and the AI Horde, my hopes as its maintainer, and how collaboration with Nivenly is meant to improve the areas that we are lacking and help steward us to a place that is both much better than what we could achieve on our own and also satisfies the needs and concerns about data and Generative AI.
What is Haidra
Haidra is the overarching organization for the ecosystem built around the AI Horde. Before we can explain what Haidra is, we need to talk about the AI Horde.
What is the AI Horde
AI Horde is a Free/Open Source Software allowing everyone to cluster compute for generative AI.
https://aihorde.net is the public instance which is run by me, the developer, and is free and open for everyone to use based on crowdsourced compute from volunteers.
The AI Horde was started almost exactly a year ago. Around August 2022 I created the KoboldAI Horde, and in September I forked it into the Stable Horde. Eventually those two were merged back into a single unified AI Horde.
Why was the AI Horde built
The AI Horde got started funnily enough, almost by accident because I was (technically,still am😀) making a FOSS video game and I could not find any volunteers for art and storytelling no matter how much I looked and begged. It just so happened that the onset of FOSS Generative AI happened during this time and I realized I could use my GPU to provide free Art and Story for my free game. As I was building the proof of concept that would become the AI Horde, I realized that if I could use my own PC to make an open API for a video game, I would also provide an open API that every PC could power.
I originally built AI Horde as a passion project, so the original use case was my own. As the project started to grow, I had the dream that I wanted to do more than just power my own video game. I wanted to power everyone’s video game and empower the open source community to do so.
Why was Haidra created
The AI Horde is merely a middleware API. By itself it doesn’t provide enough functionality to be useful. It requires specialized machine learning expertise to provide the backend work, and it required
fancy work on the frontend to have a use-case. While I did some basic work on these myself, a lot of these frontends, backends, libraries etc were created by the community who gathered around the promise of the AI Horde. I needed a way to provide a common umbrella for all of these, that does not get confused with the middleware.
This is the reason Haidra was born, to be able to talk about the whole ecosystem **around **the AI Horde and the contributors that comprise it. To be able to have things like orgs on github and huggingface which contains things like datasets, libraries, bots, and the AI Horde itself and be able to better arrange the collaboration between all of them, as well as to be able to recognise the people making this possible.
For me, it’s important that Haidra exists as the results of community effort for the open commons. A focus point, and a point of pride for everyone who is involved. Not just programmers, but other important members like community managers, generally helpful people and even just enthusiasts for what we’re trying to achieve.
A quick recap of relevant concepts
To help understand how and why both AI Horde and Haidra are built the way they are, it is important to understand a bit about generative AI and distributed workload clusters, and how they apply to the projects.
What is generative AI
Generative AI is a novel process that allows computers to generate text and images by predicting the results the human operator wants to have based on the input. Generative AI typically has two steps.
First is the training of an AI model by using a pre-existing human-created content which one wants the Generative AI to mimic. This requires a massive amount of computing power and time, which corresponds to a massive cost which makes them prohibitive but the most well-founded companies to achieve. This results in a model, which ranges in size typically from a few gigabytes to a few hundred gigabytes.
The second step is the inference where the prompt is fed an input and and it spits out an output it predicts will approximate the result the human operator wants to achieve. The input is usually a “text prompt”. Sending that prompt to a text generative AI model will attempt a very fancy form of “autocomplete”, whereas sending that prompt to an image generative AI model will attempt to create an image that matches what the prompt describes. The inference step requires way less compute than training, and can by typically run on consumer GPU cards, but more power typically allows one to use bigger and more coherent AI models.
Keep in mind, the scope of this technology is way too large to adequately encompass in a short introduction like this. This is as short and succinct as possible.
How Haidra uses generative AI
As a free and volunteer run project, Haidra does not have anywhere close to the budget required to train new AI models. Instead we provide a way to use pre-existing Generative AI models other parties have trained and released on the internet. Typically, we rely on open source models as the project doesn’t have the resources to train its own AI. Since Haidra relies on the current state of open source models to function, there is an amazing opportunity here. Since projects are in a state of growth, this also means that the community can work together to improve the open source models available in a manner which promotes the open commons instead of progressing towards a more profit-driven and enclosed future. And who knows, as this technology improves, it might be soon possible to even pivot the Haidra community to train new models from scratch in ways that authors, artists, and users of Generative AI would like to see.
Back to Haidra specifically, the lynchpin of the whole system is the AI Horde. It provides the central location, where requests to use AI models are sent. Sort of like an automated clearing house. The public AI Horde allows everyone to use and contribute to it.
The AI Models do not live on the AI Horde. Rather, volunteers download them on their own PC and plug them into the AI Horde using specialized software. Those volunteers take on all the costs such as the cost of the graphic card, and the electricity costs, to support the generations requested by anyone in the world. The reward they get is priority for their own generative AI requests. They become part of the distributed workload cluster that is the AI Horde.
Anyone in the world can request Generative AI generations via the AI horde. The request is sent to the AI Horde via one of the Haidra (i.e. community built) frontends, bots, or software plugins. The request is queued anonymously to one of the available workers and the result is sent back to the requestor. The AI Horde handles the smart queuing and priority. \
The AI Horde is agnostic about the needs and uses of the models being served. Effectively it is a dumb pipe which is meant to empower the use of Generative AI for all. As a young project, we also tried to accommodate different views and understanding about AI into the project. This is why the models provided are opt-in by both the crowdsourced workers and the users.
What is a distributed workload cluster
A distributed workload cluster is a number of computers all working towards the same goal, by breaking a compute goal (i.e. a “workload”) into smaller tasks and providing a small piece of the whole. If you are familiar with projects like Seti@Home and Folding@Home, they are likewise distributed workload clusters.
Effectively this approach allows one to create a supercomputer at a fraction of the cost, when speed is not as important.
How does Haidra use distributed workloads
As mentioned above, the workers of the AI Horde are volunteers connecting their PCs to help generate for others, sometimes anonymously, for free. They are responsible for getting the Generative AI models they serve independently and doing inference on them.
The public AI Horde provides a curated list for image and text models that match our shared guidelines, but anyone can also run their own AI Horde and serve any models they want, including private ones which are not available online.
Overall what is the objective of the Haidra in regards to generative AI
The main purpose of the Haidra is to allow access to the revolutionary technology that is Generative AI to everyone, regardless of power and wealth, using the practice of mutual aid via direct action. We wish to ensure that the most powerful and popular functionality belongs to humanity as a whole, instead of a few rich shareholders.
For this, we not only rely on the volunteer compute of our workers and the free development of our integrators, but also the free models released as open source by companies like stability.ai. Without them the only people who would be able to have access to this technology would be powerful companies like OpenAI and Adobe who would use it to ensure only those with wealth could even compete in the sectors generative AI accelerates.
That said, the Haidra cannot train Generative AI models. In fact, the AI Horde as an open source software is completely agnostic about the models that would be served through it.
The public AI Horde, which is the flagship of Haidra, relies primarily on the models and finetunes created by the enthusiast community around Generative AI. It provides community driven curation to ensure that we do not provide illegal content and provides ways to protect the volunteer workers which make it possible.
Likewise, the AI Horde collaborates with non-profits like LAION to improve future AI models and the overall ecosystem through initiatives like crowdsourced aesthetic ratings. This is to ensure that the open commons can stay the most powerful player in the Generative AI space.
AI and ethics in Haidra
I am cognizant of the controversy around Generative AI. I am aware that many authors and artists do not agree to the use of their works to train generative AI models.
Many consider the wishes of the authors on how their art can be consumed is the end of the discussion. I think it is only part of the discussion. I think there are, of course, times when an artist only wants their art to be used a particular way. Maybe they are trying to teach something, or make a statement, although even that can be hotly debated as was done in the death of the author.
That said, I think the main reason artists mostly care about who and how their art is utilized is because they need to be paid for their art in the economic systems under which we live. I understand this and I don’t have any easy answers for that particular systemic problem.
What I can say is that I think AI is a rapidly emerging revolutionary technology that is here to stay, and that I want to ensure that it empowers everyone. I want to be in a world where artists don’t have to worry about how their art is used for monetary reasons, only ideological ones that are open for discussion and compromise. I acknowledge that it’s not going to be an easy journey to get us there, but I want to build trust that all of my actions are driven by this objective.
Generative AI is here to stay. There’s no putting this genie back in the lamp. This means that it introduces ethical and legal challenges that we all need to work through and reconcile as we work with it or around it. There are models already out there, and what I’ve been taking the opportunity to learn is that even with elective choice, we can build something more complete. This means that there might be a wholly new opportunity for us to work together here, as we strive to build something that we can agree comes into alignment with the world we want to see**.**
I believe that in the absence of open source projects, then it is likely that corporate models will continue to dominate the AI space. They will have the funds and other resources to build AI as fits the corporate world. But I don’t want to see a future where generative AI only fits the corporate world. I want generative AI for everyone, and I want to do my best to learn and grow myself and the project so that we can build something much better.
Generative AI is a revolutionary technology, for sure. Like the automobile and the photograph before it. It will disrupt all existing business models, undeniably. It is what it is. But if the only options that remain is embrace it or be left behind, I want to give everyone the chance to embrace it, if they wish to.
The only ethical questions that remain, is “How do we ensure Generative AI remains accessible for everyone” and “How do we ensure the technology is not used for unethical purposes”
How Haidra tries to encourage healthy interactions
Ensuring the Generative AI remains accessible to all who need it, is at the core of how the software works. We have designed the whole kudos priority system used by the AI Horde to facilitate rewarding those who support others outside of the monetary system by making the AI Horde priority, a utility to be used.
The more someone contributes to the health of Haidra, whether that is by providing volunteer compute, or by helping other members with tech support, or by making new FOSS tools for people to use, or by simply sharing art or making engaging games to play, we reward them with extra priority for their own generation. This creates a virtuous cycle where people are incentivized for helping the larger community around open Generative AI.
Likewise those who want to simply leech, or exploit the common resources, are not only algorithmically deprioritized, but the community itself has an incentive to discover and drive them away or otherwise undermine them.
Haidra has had to not only discover a lot of lessons but also make up quite a few of the required solutions. Our kudos priority system follows a similar dynamic to timebanks but we had to figure out ways to ensure the system is not being gamed by leechers.
It has been my experience that the best way to combat bad actors, is not simply to trust in algorithms, but to empower one’s own community to discover them, because hundreds of human eyes cannot be gamed, especially when they’re ideologically aligned.
Haidra, AI Horde, and Moderation
AI Horde has also been in the forefront of making sure that our public resources on generative AI images do not facilitate the creation of CSAM which put risk onto everyone around Haidra and are generally nothing that we want to support.
In this case we’ve had to put weeks of work into discovering and developing novel ways to detect CSAM content with the least impact to legitimate content. Our successes were also released as open sourced code which can now be used by anyone to protect their users and services without having to rely on the proprietary secret “black box” technologies.
This is an actual concrete improvement in the world that would not have existed were it not for the needs of Haidra.
Likewise we have incentivized good behavior itself through the utility of our kudos priority system, with integrating it with our discord community itself to positively reinforce helpful, funny, sharing or otherwise beneficial content, along with it being a utilitarian reward to the moderators which help enforce our community rules. These approaches, such as non-monetary, yet utilitarian rewards to reinforce good deeds and behavior, is something that a universal tool like the AI horde can provide to any community, not just our own. What works for us, we hope to prove can help everyone.
I wanted to thank everyone who provided feedback and took another look at Haidra and AI Horde. I’ve been hard at work for the past year as the project went from a hobby project to a passion project to something much much bigger than I ever anticipated, effectively taking over all my personal time.
I came to Nivenly for help and support, hoping that I will find others to work with who are interested in helping to support access to Generative AI for all, and especially for the open commons via free software.
Although I have done a lot of work learning about the legal and ethical implications of this technology while building the AI Horde, I can see from the feedback that there are opportunities for me to improve as a maintainer as well as real possibilities for Haidra to become even better. I want to hear about your concerns around data providence that I might not have considered and utilize this knowledge to improve Haidra. I look forward to those future discussions where I can learn fr0om all of you. I want to offer an explicit welcome to anyone who would like to chat more with me and our existing community, or who would like to join our project as a contributor, and together build something that one day will set the example of how AI projects should be built and maintained.
Building Nivenly: A letter from Quintessence
Hello everyone! My name is Quintessence and I’m the Executive Director of the Nivenly Foundation. I wanted to take the opportunity to talk to you, myself, as the Executive Director.
As you may know, we recently announced Haidra and the Federation Safety Enhancement Project as the two newest projects to the Foundation. Haidra in particular has inspired a lot of feedback, some for Haidra itself and some for Nivenly. For Nivenly, I had a realization that helped me connect why some of our initial communication hasn’t gone the way that I hoped and have some ideas for how to build toward a better future.
I definitely made a mistake in how I communicated. Not only for Haidra’s announcement but also for some of the queued up posts we have that will do deeper dives into Nivenly. I had, without realizing, assumed that many of you either joining the co-op, or evaluating if you would like to, were doing so with some assumptions about what co-ops are and aren’t, and that mostly you “just” needed information about “our type of co-op”. This makes me wonder, what are some better ways for me to handle this?
By happenstance, I had some truly superb feedback from how to fix this and start producing the communications that are needed. The feedback came from one of the calls I scheduled with someone who, as I found out on the call, has been deeply involved with tech unions for some time. In our conversation I learned that unions face similar problems as well - they are in a position where people maybe kind of do, and kind of don’t, have a pre-existing understanding of what unions are and aren’t. This also means that it usually falls on the union to have some pretty great communication so they can help their new members understand “what the holy fuck is going on”.
Not only was it an exciting chance for me to learn about unions, as “I kind of do, and kind of don’t, understand unions” definitely applies to me, as a result of the “mock onboarding” conversation I have started to understand some of what you might need as you’re navigating “what the heck is Nivenly” and “what even is a co-op in the tech industry”. I don’t have any quick and fast solutions, but I am going to start changing what and how we send our outbound communications to be more informative for all of you. I will be asking for your help as well, as Nivenly cannot run only on one person, or even a small group of people, it can only run on a collaborating cooperative.
To start to address this, let me talk a bit about Nivenly itself.
What is Nivenly?
The best way to describe Nivenly is a non-profit co-op that is focused on providing governance and support to open source projects. We want to be a safe place for communities to have agency in their work and their projects. Which means we need help from our communities. There isn’t an elite group sitting at the top, just a small set of volunteers who need help running the show.
But what does this mean, for you? How do you, the member community, help “provide governance and support to open source projects”? How does Nivenly?
The short version is that you provide you and Nivenly provides resources and support. The resources and support include the governance process, a code of conduct, a contributor license and easy way to sign it, as well as resources like GitHub and additional tools. The longer version involves understanding Nivenly’s primary goal and how that applies to you as a member.
Goal: Supporting our communities
While myself and the board have put a lot of labor into building the governance model, working with legal support to have it translated into bylaws, and talking with others to ensure we’ve captured what needs to be in the plain text and legalese, it actually isn’t the end goal for Nivenly Members to engage with governance all that often.
I know. We put a lot of work into something I just told you isn’t the goal, and that probably feels really counterintuitive. It’s true though! The reason we put so much time into it is because governance is a safeguard measure and an important one at that.
You see, the long term goal of Nivenly is for Nivenly Members, of all member types, to feel they are empowered and have agency to be the change they want to see. We believe in decentralization where projects own their own destinies. This can either be via direct contributions to a project or discussions with other members of any member type (general member, project member, or trade member).
There will be times when members are able to agree. Maybe there is a universally loved project or maybe there’s an easy common ground to a specific topic or decision.
There will also be times when members do not agree. Maybe there is a project that is controversial, or a discussion that is becoming contentious. How do we work together, when we feel like we cannot work together? One answer is to have an agreed upon fallback mechanism to allow us to still come together and be able to accept the outcome of that process and keep moving forward. That fallback is governance. This means that:
The goal of Nivenly is to provide a place for communities to work together on community built technology (open source).
The goal of governance is for there be an agreed upon mechanism to reach agreement and consensus to make decisions together when we disagree. (After all, why engage in a process when we agree?)
As we build Nivenly together, the goal is for the Foundation to support members to get what they need done. To help inspire some thoughts about what this might mean, let me provide an example.
Let’s say that a member saw an open source project was working with art in technology, but perhaps not with artists. Let’s say further that they felt really strongly that there is a gap in lived experience and expertise between artists and technologists and that they felt that gap could be bridged by knowledge sharing between the groups. A member of Nivenly can, either individually or with the help of the cooperative (including other members as well as myself and the board), facilitate a discussion between a panel of artists and the Nivenly community. The result of the panel would likely be an improved ability to include more considerations when building projects, and not just the project that inspired the original request. In Nivenly’s model, no one would need to request permission “from Nivenly” to do this. Instead, they would only need to ask for what support they needed and let everyone know about the cool panel they’re organizing so people will attend.
What I am mainly trying to communicate with this example, is how this might differ from a more corporate model. In a more corporate model, you likely need to Ask Permission before doing things. You would need to ask an agent of the company before introducing guests, and you would need to request permission for outcomes, and so forth. In the cooperative model, you work with the cooperative to (for the most part) Just Do.
Another way this differs from the more corporate models is who has agency in building toward the desired result. In a more corporate model consumers, customers, and so forth would need to vault feedback, Letters to the CEO style, over a metaphorical fence to inspire change in the company or organization. The key thing here is that as a customer, consumer, or even employee that you are outside the decision making ecosystem of that organization. So you are trying to inspire them to do differently as an outsider.
We are designing our cooperative model to enable people to have as little overhead as possible. That means that we want members to feel empowered to build together, both their own ideas and each others, with as little overhead as possible.
As a very young organization, we’re still working together as we build and change the ways that help us work together the best. The ultimate goal is to find a sustainable way to work together that facilitates creative exchanges with as little bureaucratic overhead as possible.
What does Nivenly look for in projects
When the board and myself look at a new prospective project, we have a few top concerns:
- Can we work together with the maintainer or maintainers of this project?
- How does this project break the mold? How is it different from the norm? Why does THIS project need our help the most.
- The details of the project: what it is, is it open source, what legal concerns does it introduce, etc.
Our topmost concern might feel counterintuitive, in the same way that reading we went heads down to build a robust governance model that isn’t the end goal might have felt counterintuitive. Just like then, there is a reason why we consider how collaborative the project is first.
We want to work with projects that have maintainers who are collaborative because collaboratively minded people want to work with others. This means that whether we accept a project that is universally loved or that inspires heated debate, the end result is still collaboration.
Essentially, a collaborative maintainer of a contentious project will listen to concerns, invite criticism, and do their best to merge the project goals with community concerns and needs. A non-collaborative maintainer of a contentious project is not open to views outside their own and will not welcome the free exchange of ideas that we hope to build here.
Beyond these top concerns, we look at the project itself. We have a lightweight template that we ask maintainers to use when applying to Nivenly. (The GitHub version of the template is located here.) The prompts ask for answers around:
- A description of the project and what is needed from Nivenly
- Project scope - what problems or concepts the maintainer(s) are hoping to solve
- Intended use - how the maintainers intend the project to be used
- Anticipated misuse - how the maintainers anticipate the project may be misused
- Countermeasures - how maintainers protect against misuse
- Accessibility to the project - this can be both accessibility as a contributor and accessibility as an end user, the question is intentionally broad to fit as many projects as possible.
We adjust our expectations around the depth of the responses to each of our questions depending on a few factors, including project age and complexity. To put it another way, a very complex project that is very young might not have all the details thought out, but is striving to get there. On the opposite side, a longstanding project that is much less complex might not have deep answers to each question due to the simplicity of the project.
Let’s take a look at how this process applies to Haidra.
Haidra’s application process
db0, Haidra’s lead maintainer, was connected with us on social media (Mastodon) when he mentioned he was struggling with a rapidly growing project. After a quick discussion where we asked a few clarifying questions about his project and he asked a few clarifying questions about Nivenly, we mutually decided to proceed with the formal application process.
Haidra was our first project that we were going to accept via an application process, as both Aurae and Hachyderm were already projects when Nivenly was created. Haidra’s maintainer was very happy to work with us while we requested an initial application via Google Docs and requested a few small follow ups with additional questions for clarification for the application itself. The culmination of all of this was a singular Google Doc that had all of our initial questions answered in one place and the template that we have in place for future applications. We decided at this stage that we wanted to have the application itself live in a transparent place, so we added AI Horde’s application (and our general application template) to our project GitHub repository.
As part of the decision making process, db0, myself, and the board had several asynchronous conversations to cover more Q&A about the project, it’s goals, and make sure we had a solid understanding of what the project is, was trying to grow into, and what was needed for Nivenly.
I mentioned earlier that we adjust our expectations depending on a few factors such as age and complexity of the project. Haidra is no exception. In Haidra’s case, Haidra is a very young, complex, and rapidly growing project. (For reference, Haidra has yet to have its “first birthday” and has already hit 150k subscribers.)
Haidra also started as db0’s passion project. The initial mental model he had for building the project accommodated a much smaller audience and much smaller growth, and one of the main reasons he was interested in talking to an organization like ours is because his project had rapidly grown past his ability to consider everything he needed to consider, and implement everything he needed to implement. To put it another way: scale breaks almost everything. When Haidra grew rapidly, he suddenly found that decisions had more implications than his design had accommodated and had grown beyond the scale he anticipated. By a lot.
Even though AI Horde and Haidra were growing far, far faster than db0 had anticipated, he had done a lot of work to try and prevent misuse. What I am specifically referencing here are content moderation, worker opt-in, and the kudos model. For content moderation, Haidra is constantly working to make sure that images generated do not contain harmful content like CSAM. This is actually one of the earliest misuse mitigations that db0 had put in place for Haidra out of the gate.
Haidra’s opt-in model for workers we also felt was crucial. The project was young enough that while it might not have project-level opinions it wanted to enforce, it did allow individuals to do so. (Note that project-level opinions can, and frequently do, differ from maintainer(s) opinions.) The way Haidra implements this is by allowing people who were willing to add their computer as a worker to be explicit in what they wanted to opt-in to. This was specifically done to allow individuals to accommodate how they were reconciling their own ethics with how they did, or did not, want to participate in the project.
Lastly, a little bit about Haidra’s kudos model. As some have pointed out, this is somewhat similar to a “karma” model. Essentially, good work is rewarded via kudos. Workers with more kudos have their work prioritized, so that they can continue to do good work. The result is that those who are engaging in bad faith, but not to enough of a degree that they are moderated out completely, are disincentivized.
We, myself and board, acknowledge that none of these three solutions is complete. For a project this young, we primarily evaluated:
- Tangible work done toward a stated goal, i.e. steps accomplished toward a stated goal, instead of only stated a goal.
- Ability to collaborate
For a developing project, it is our opinion that works in progress are opportunities for collaboration. They can only be opportunities for collaboration if the core / lead maintainer is looking to collaborate, and he is. For a project that is in a contentious or divisive space, we view the potential for collaboration to be even greater: while it might not be true in a more corporate model, in a cooperative model people have the opportunity to share thoughts and opinions that can influence the trajectory that a project and/or technology is taking.
For these primary reasons, the Haidra project was accepted by the Nivenly board of directors.
(For deeper details on the above, please see Haidra’s blog post.)
So What’s Next?
I realize that was a lot. As we grow, our communication will start to be smaller and more iterative rather than deep and long. I look forward to working toward that stage with you all. I have a few requests of the community to help us get there together.
Actively seeking a common onboarding project
Something I discussed on the call with the union organizer: the lack of a onboarding project. The goal of the onboarding project would be to:
- Provide a common experience for all/most members who are interested in contributing to projects
- Provide a place that helps build knowledge and awareness to the contributor process and feedback loops
The call to the community is the onboarding project itself: we’re actively looking for either a project that can meet these needs or to create a mock project that meets these needs. For anyone that can help with this, either with a project in mind or building one, please either email us or start a Discussion on GitHub.
Actively seeking support for a newsletter
Something that some of our members have expressed interest in is a newsletter to help members be more engaged and have the information they need. What we need help with is for a small group interested in curating the newsletter itself. We have the information to provide and need help getting it into the hands of our members at a better pace. For anyone interested in this, please either email us or start a Discussion on GitHub.
Actively seeking support to test tools to support member activity
Although we are very excited that our governance model was ready for our main launch, there is a lot more work to be done. Tooling rollout is no exception. In our earliest communications (as in back around March) we tried to set the expectation that at launch there will be a certain amount of “building the airplane while it’s in flight”. This is where we’re at today.
The disparate needs of FSEP and Haidra have provided us with a wonderful opportunity to find tools that meet more needs, better. It showed the strengths and weaknesses of the feedback loops we have in place today: GitHub, Discord, and email. As we mentioned in the FSEP announcement we’re evaluating tools for where its Discussions can be hosted that doesn’t constrain on GitHub, as well as how to handle a Live Q&A. The request for a member newsletter also introduces a potential for a tool.
We need a group of interested members that are interested in being added to tools before they are announced as a formal feedback loop so we can do more “pre-launch” testing instead of testing at the launch itself. The most valuable information we find is generally surfaced when we can observe what the tools can and cannot do based on how participants actually try to use it (rather than relying on its advertised feature set alone, which is of course also helpful but not predictive). Same as before, for anyone interested in this, please either email us or start a Discussion on GitHub.
How we’ll handle the tool roll outs
Something I wanted to call out explicitly. Since we’re working through what tools do, and do not, work very rapidly as part of these first project announcements we will likely do a few shifts to a new tool when we discover that a current tool has a critical limitation. (e.g. a lack of a voting mechanism) We appreciate everyone’s patience while we work hard together to get this part done right, and we will definitely strive to keep these changes to a minimum. When we do start to “sunset” using a particular feedback loop, we will not close the feedback loop without warning. I mention this in particular around GitHub, as it was a great place to quickly capture all the initial interest, discussion, and criticism around Haidra and AI, but isn’t sustainable in the longer term. As we make new changes we will make sure to communicate where people can send us their feedback and participate in discussions, while also being explicit about the timeline for moving away from an incumbent tool.
How we’ll handle project announcements going forward
As I watch and compare the discussions around Haidra and FSEP, something that I feel we can do with future project announcements is to include a statement from the new maintainer where they introduce themselves, take the opportunity to outline why they’re joining Nivenly and what they explicitly hope to learn from the Nivenly community, as well as do a deeper dive into their project. I’m curious if members feel this would help with the initial introduction to a new project, as well as help them feel more empowered to ask questions and participate in discussions. What are your thoughts?
I want to thank everyone for working with us as we go through our launch. I also wanted to extend an extra thank you to everyone who took the time to write us their long form criticisms, sincerely. We are a new organization and Haidra is a new project. I recognize how much time and care went into those posts. It takes someone truly hoping to change things for the better to put that level of nuance and attention to trying to change things for the better, especially before there is even an established history where you can trust that your thoughts are even being read or considered. We have read them, and we hope to build that trust by continuing to actively follow through on the questions and concerns raised as we build Nivenly together. Thank you.
Federation Safety Enhancement Project Announcement
We’re excited to announce that the initial release of the Federation Safety Enhancement Project is now ready for community review.
What is the Federation Safety Enhancement Project?
The goal of the Federation Safety Enhancement Project (FSEP) is to reduce the administration burden for Mastodon admins, and increase safety for Mastodon users, by providing tools that will make it easy and convenient for admins and moderation teams to consistently discover harmful instances and protect their communities.
Who wrote FSEP?
FSEP was authored and researched by Roland X. Pulliam (Ro) in collaboration with Nivenly, The Bad Space, IFTAS, and Oliphant.social. Ro is a creative professional with over 20 years of experience and former admin of Play Vicious (PV).
What was completed so far
The goal of the first phase of FSEP was to produce a starting product requirements document for Fediverse members working on shared safety projects to review and discuss. You can view FSEP v1.0 here. This first release has been reviewed by community members and other organizations that have shown interest in this space. We’re now opening it up for review and comment by you, members of the Nivenly community, and the broader Fediverse.
FSEP Feedback Loops
FSEP is designed to grow with feedback - v1.0 is not the “first and final” release. There are two “types” of feedback: minor and major changes. How to submit feedback and how it’ll be merged depends on whether it is minor or major.
Minor feedback is anything that clarifies, but does not significantly alter, intent and existing content. Typos, grammar, a bullet point that doesn’t render, adding a forgotten word or reworking a run-on sentence would all fall under “minor”.
Major feedback is anything that fundamentally creates, updates, or removes / deletes (CRUD) a concept in the document. An example of major feedback could be adding a new feature or criteria for Deny List Management or Onboarding.
When publishing FSEP, we are reconciling the published current version with FSEP’s source Google Document. When there are updates, the version number on each document will update and will be in sync. In general, minor updates will update the decimal (e.g. v1.1) and major updates will update the integer (e.g. v2.0).
The reason we are sharing the source Google Doc is because Fediverse moderation is a topic that cannot be limited to GitHub, which is a tool mostly used by those in the tech industry.
How to submit feedback
Please use any of the following:
- Provide a comment or edit suggestion on FSEP’s source Google Doc
- Send us an email at firstname.lastname@example.org
- Open a GitHub Issue or Pull Request
- If opening a Pull Request you need to sign the Nivenly Contributor License Agreement for us to merge the PR.
If your feedback is minor feedback and can be merged without fundamentally altering the document, then please feel free to either open an Issue / PR directly if you are comfortable and able, or add an edit / suggestion on the source Google Document. Minor feedback will be merged regularly to keep the documents in sync.
If your feedback is major, please make a suggestion on the source Google Document for visibility and accessibility to moderators on the Fediverse. If you are unsure if your feedback would be minor or major, please submit it as a suggestion on the Google Document. In situations where major feedback requires deeper discussion, the discussion will need to come to consensus / resolve prior to adding the feedback as a version update.
We might be replacing GitHub for Issues / Discussions with another tool, e.g. NextCloud. If we do, then we will be updating this section to replace GitHub as the discussion source for this project (direct PRs for minor feedback will still be welcome). We’ll be testing NextCloud for the author Q&A, which is in the next section.
Live Author Q&A
Since this document has broad scope and potential to improve the moderation experience of many Fediverse moderators, we are working with Ro to have an author Q&A as part of this initial release. This is because we anticipate a lot of interest, questions, concerns, and desire to help steward the project as it grows with the goal of improving safety and moderation on the Fediverse.
We’re still finalizing the time and details with the author, Ro, at the time of this writing. Once we have the time we will update this paragraph with the necessary information and also share on our Mastodon account. We’re looking to use NextCloud or a similar platform to host the Q&A. Depending on how the tool experience goes, we will include it as one of the options for where to provide feedback.
What happens next? What do we need?
The ultimate goal of FSEP is to provide Federating platforms the ability to integrate with dynamically updating blocklists. Now that we have released the v1.0 document, we need the help and collaboration of the broader Fediverse Trust & Safety community, including existing moderators and admin groups, to ensure the resulting tools have the correct features and implementation detail. We want FSEP to ultimately be compatible with all major Fediverse platforms, including but not limited to Mastodon, PixelFed, CalcKey, and more.
Once the tool requirements are complete, we will need community support to help create and maintain the resulting integrations.
How can I contribute to this project?
There are two types of contributions to this project: expertise and financial. For expertise, please feel free to use any of the feedback loops to help iterate and move the project forward.
FSEP is a funded project. Thus far we’ve funded the authorship of this original requirements paper. We will need community and sponsor help so we can continue to fund the future of the project. Nivenly accepts donations through the following platforms:
Special thanks to the partner organizations who made this work possible:
What is the Nivenly Foundation?
The Nivenly Foundation is a non-profit co-op organization that seeks to provide governance and support to Open Source Projects. Our belief is that more active collaboration will improve open source projects, and our goal is to provide spaces and supporting mechanisms that enable communities and maintainers to work together.
What does it mean to be a Nivenly member?
Nivenly has three member types: General Members (the community), Project Maintainers (those building and maintaining projects), and Trade Members (sponsors). General membership is open to the public, whereas project and trade members have an application process.
Do I need to be a member of Nivenly to contribute?
You do not need to be a member of Nivenly to contribute to this project.
Our First Community Discussion and Vote: Haidra
We wanted to thank our members for voicing their concerns and questions about the recently announced Haidra project. It became very evident that we missed the mark for communications that our members would have liked to receive. For that, we apologize and strive to do better. We also think it is a great opportunity to put in place what our members tell us they need and want to see.
We have been collecting the questions that members have been asking while preparing this post. As we’ve been watching the discourse, we’ve noticed a few categories for questions: questions for deeper details about Haidra as a project, questions about how to participate in governance relevant to member projects, and broader Nivenly questions.
To respond to this, we are going to be making a series of three posts that will target each category of questions:
- A post about how to create and participate in member discussions and elections (this post)
- A post that answers questions about Haidra
- A post that answers questions about Nivenly
As Nivenly formed we called out our core governance that we believed would help in situations like this. We feel it is time to put our governance to the test, and we need our members’ help and participation to do so. In order to help our members help us, we prioritized this post first. The rest of this post is dedicated to sharing information relevant to creating and participating in discussions about Haidra and how to arrive at consensus.
A Quick Co-Op Refresher
Since we are a co-op, that means that co-op members have the ability to have a direct voice and impact the organization, as well as work together both as individual member types and across the Foundation. The way that members participate in decision making and their outcome is by engaging with us and each other. Our goal is to create an organization where people can learn and grow and can, relevantly, experience graceful failure modes. (For a deeper discussion about co-ops, and our reasoning, please see our Announcement blog post from March.)
The way that co-op members exercise their voice and enact change is via discussions and governance. In this case, that means that Nivenly co-op members can discuss and use their votes to impact decision making. Ensuring that members are easily able to request what they need, and participate to the degree they wish, is both how we want Nivenly to grow as a community as well as how we want to handle growth and improvement from failure.
The Application Process and the Nivenly Covenant
There are two main parts to consider with member projects: the application and its process and The Nivenly Covenant. The latter is an adaption of the well known Contributor Covenant, and governs baseline expectations for community involvement, safety standards, and enforcement of those standards. Just like Nivenly has a community at the org level, including people maintaining and volunteering to help Nivenly, each member project also has its own community of people building, maintaining, and using the project. In order to ensure that everyone in the project’s community feels safe and enabled to participate with that project, each project is expected to maintain high safety and moderation standards.
The other aspect of the project involves the project’s application, providing deeper clarification, and so forth. Our application template is designed to be lightweight so that it can provide the framework for what we need projects to answer. Projects may supply more or less detail depending on age / maturity of the project, complexity of the project, and so forth.
Haidra’s application is here. Haidra originally submitted under the name of AI Horde, but in clarifying follow up Q&A it was established that Haidra was the umbrella for AI Horde, not vice versa, so the project is accepted as Haidra. We will provide more information about Haidra’s application process in the Nivenly Q&A follow up post mentioned earlier in this blog post.
Community Enablement and Goals
As the first request for a General Member election, we need to outline the initial process and goals. Since process is goal oriented, goals first:
- Information needs to be provided to General Members so they can have a deep understanding about what Haidra is, and isn’t, and how it is implemented and with what constraints.
- Determine if Nivenly General Members agree with the board that Haidra is compliant with the goals and outcomes that Nivenly and its members want to build together.
- Use that to inform next steps (continued discussion or election) for what needs to happen.
In order to support these goals there will be:
- A question gathering period: questions will be gathered to be answered by the Haidra maintainer or Nivenly (depending on to whom the question is directed toward).
- Note that this process has already begun.
- Two separate follow up blog posts, one from the Haidra maintainer and one from Nivenly, answering the questions directed at each group.
- If still requested, a General Election.
The outcome of the General Election will determine next steps. For example, if part of the discussion raises the need to change a Nivenly process, like our Covenant or the application process, then a parallel process to the above will be triggered to make those amendments. If it is found that Haidra can make small changes that will put it in alignment with member expectations, we can explore all of that at that time.
Since the “where do we go from here” will be heavily contingent on the outcomes of the discussions and election, we’ll provide more updates about that at that time.
Expectation setting: while Nivenly and its member projects are small, the volunteers supporting each will need time to work their day jobs while ensuring that the answers provided to questions are clear and complete. General Members also often have their own jobs and commitments, and will need time to include their questions and thoughts. In order to facilitate this, here is the Discussion and Election timeline:
- Question gathering: til next Tuesday, 8 Aug 2023
- Follow up blog posts will be posted by Monday, 14 August, at the latest.
- General Member Discussion, 14 - 25 August 2023.
- The purpose of the General Member Discussion is for members to determine if they agree with the board that Haidra is compliant with the goals and desired outcomes of Nivenly and its community.
- This is the reason that we will support the ongoing, public discussion happening prior to the 14th as the Discussion that starts on the 14th is intentionally scoped with a specific outcome.
- General Members will also need to establish if there is consensus that there is a desire to move forward to the election phase.
- General Member Election about Haidra and Nivenly alignment.
The specific date of the General Election will be within one week after the General Member Discussion concludes. We’ll post the specific date during the week of the General Member Discussion, to maximize visibility to participating General Members.
Where Questions Should be Posted
We will be checking the following for questions about Haidra and Nivenly to inform the follow up blog posts:
- Nivenly Community GitHub Discussions
- We are also reviewing the existing open discussion on GitHub for questions.
- Nivenly Community GitHub Issue
- Emails to email@example.com
To prevent questions from being missed, please do not rely on Nivenly’s social media mentions for Q&A. We will do our best to keep track of our notifications and answer questions raised to that account, but the best way to ensure that your questions are visible and received with the intent to be answered in the upcoming blog posts is to use one of the three above methods.
Similar to our social media, we also answer questions on our Discord. Also similar to social media, while we do answer questions we are asking members to use GitHub or email for questions that they specifically want answered in the follow up blog posts.
There are two main reasons we’re restricting the Q&A to these avenues. The first is we don’t want to miss anything in scrollback or the way that threads are handled on Discord. The second is that we want to ensure that posting is happening in a limited number of places so that questions aren’t missed.
Quorum, Consensus, and Participation
We’re going to be making a PR where we will add the full text of our by-laws into our docs. When we do, this paragraph will change to include that link.
In our Hello World announcement blog post, we explained a bit about co-op structures, why we’re building a co-op, why Nivenly is a non-profit, and some other details. What needs to be understood in the context of the Haidra Discussion and Election is:
- As a co-op, only co-op members and Directors have decision making power within Nivenly.
- Elections restricted to specific chambers can only be voted on by members of those member types.
- This means in the case of a General Member Election, only General Members can vote.
- Member discussions can include any member type, though if the purpose of the discussion is to inform a specific chamber’s election process then members of different types can only provide information and support for the chamber trying to reach a decision.
- In simpler words, this means that Nivenly Project Members can participate and answer questions in the Member Discussion to provide information and clarity, but cannot vote in the General Member Election.
While non-members are welcome to ask questions and contribute in the information gathering phase, only co-op members can participate in the General Member Discussion. Anyone participating in conversation in Nivenly spaces, including the GitHub Discussions and Issues, are bound by the Nivenly Covenant - even if you are not participating as a member.
For the election itself, all elections require:
- A quorum
- A consensus
Both are defined as “a simple majority”. This means that:
- A minimum of 51% of Nivenly Members need to vote
- A consensus is 51% or more of the votes
Call for Volunteers to Support Requested Processes
There are two ways that we need members to help support the governance process.
First, as part of the FAQ and General Member Discussion Process, we will need members who have relevant background to help ensure that members have the information they need to make informed decisions.
The other is election tool support. One of the problems that we currently are facing is a lack of tooling for our general elections. We believe that finding a trustworthy way to host a secure, safe, and reliable election is key to making decisions and have been looking at tools like Loomio and NextCloud to this end. Ultimately, we want a tool that doesn’t require our members to have accounts that are a burden for them to keep track of, while also ensuring the right access so that we can ensure that only members are voting.
We have had some conversations with both members and other people in the space about this as well, and have been taking a look at some tools. Since we understand that members want to have a more active participation in some of these decisions, we will open up a Member Discussion about this topic in the Nivenly Community Discussions.
If we end up sticking with GitHub and doing a Discussion poll or similar, we’ll need General Members to help us reconcile their GitHub handles and Open Collective membership so we can restrict participation to members.
Concern About Funding
Although we have a FAQ at the bottom of the post, we have been asked whether Nivenly is funding Haidra, or whether Hachyderm, as a member project of Nivenly, is funding Haidra. We chose to address this here, so it wouldn’t be missed.
To answer the Haidra specific aspect of this question: Haidra is currently self-funded, which means that Haidra’s existing community is funding Haidra. As they mentioned in their application this isn’t true indefinitely, but we can confirm that Haidra is not yet receiving funding from Nivenly and we can commit that that will remain true for the duration of this election cycle.
To answer the indirectly asked question: Nivenly can honor donations being made to specific projects to remain with those projects. Since we’re prioritizing the Haidra discussion and election at this time, we can explore this more fully in the Nivenly updates we’re posting after those conclude.
As Nivenly grows, we will use this election, and the lessons we’ve learned about communicating proactively with the community, as the precedent for future project decisions. Our goal is to work with our members to ensure they have the information they need to participate in governance.
What was considered when adopting Haidra as a member project?
The short answer is that we looked into the project itself, its implementation, and how it created and maintained safe community spaces for users and maintainers. The longer answer is going to be included in our Q&A blog post that we mentioned above. Apologies for the delay, as we mentioned at the top we’re trying to answer the three top level categories of questions separately so that they can have the time and attention to detail that they deserve.
Who can participate in member discussions about policy and governance for Nivenly?
Only Nivenly members. This means that someone must be either a Director, General Member, Project Maintainer, or Trade Member.
Who can vote in Nivenly elections?
Only Nivenly members and Directors. In a co-op model, only defined co-op member types participate in governance decisions for a co-op organization. The specifics of what this means is defined by a by-law process.
Which Nivenly members can participate in an election?
Which members are voting depends on the election type. For elections that involve the Nivenly Community, for example, you must be a Nivenly General Member. If there is a decision making process that requires two or more chambers to vote, then only members of each participating chamber can vote.
I’d like to take part in the discussion, or election, but I’m not a member.
Non-members are welcome to participate in open discussions, but only members of the Nivenly co-op can participate in Member Discussions and participate in governance processes. Since Nivenly is focused on OSS governance, and thus in the tech industry, these discussions are currently housed on Nivenly’s GitHub Issues and Discussions.
Do you take feedback from other, non-GitHub, sources?
We do take feedback, and do Q&A, off of GitHub. The common places currently are either our Mastodon account or the Nivenly Community Discord, as well as of course our email.
That said, while again we do receive feedback and do Q&A with non-Nivenly members, only Nivenly Members are empowered to make changes to decisions, processes, and so forth for the Nivenly Foundation. Nivenly members of all member types enact dialog and change through the governance process. If any Nivenly member would like to know how to start a change process, they can reach out to us via email, Discord, or GitHub.
Who is a Nivenly Member?
General Membership can be signed up for on our Open Collective page. Both Project and Trade memberships are handled via application processes.
I’m on Hachyderm - does this make me a Nivenly member?
There are only three paths to membership: signing up to be a General Member, being a maintainer for a Nivenly Project, and being a Trade Member. Using one or more of the projects that Nivenly stewards, Hachyderm or any other projects, is not a path to membership.
One way to conceptualize this is a better known co-op structure: food co-ops. Most grocery-style food co-ops (in the United States anyway) do not require you to be a member to purchase food or other items from their stores. You may, separately, choose to be a member of that co-op which would then entitle you to whatever that means for that co-op, benefits and governance-wise. The same is true here: you do not need to be a Nivenly member to use, participate, or otherwise contribute to any Nivenly project. Likewise, using or participating with a member project, unless you are specifically a project maintainer, is not a path to membership.
I am a member and want to make changes, but am unsure how to engage in governance to start.
We understand! This cycle is a bit ahead of other process releases we’re planning to stage out and has a lot of interim tooling. If this applies to you, please let us know using one of the following:
- Nivenly Community GitHub Discussions
- Nivenly Community GitHub Issue
- Nivenly Community Discord
- Emails to firstname.lastname@example.org
What does this sentence on the governance page mean?
In the early stages of bootstrapping the foundation, the board of directors serves as the main facilitators of due process. At this time the board of directors will reserve total control of the organization.
Succinctly: it means that the board of directors makes decisions in the event that a chamber is still being populated or cannot reach quorum and/or consensus. This is to help keep decisions and discourse unblocked. As Nivenly grows, there will be decisions owned by the directors and/or members, as we work together to keep or change process.
Will Nivenly always rely on GitHub?
Right now we’re relying heavily on GitHub tooling since we are focused on Open Source Software, which means that we expect that those interested in OSS governance will be in the tech industry and have GitHub accounts.
In the interest of facilitating the requested conversations and election regarding Haidra, we are relying on existing GitHub tools to meet member needs. We may choose to keep this longer term, but if not then we’ll be replacing them with more permanent tools.
Haidra Joins the Nivenly Foundation
We are very excited to share that Haidra has joined the Nivenly Foundation as a member project. Through its membership, Haidra and its maintainers will receive governance and legal support of the Foundation to help it remain a fully open and neutral community as it grows.
What is Haidra?
Haidra is a dynamic community organization behind the groundbreaking AI Horde project and the thriving software ecosystem that surrounds it. AI Horde is the only crowdsourced cluster for Generative AI, aiming to democratize access to - and what people can do with - AI, regardless of wealth and resources. More specifically, Haidra seeks to provide and support a broader developer ecosystem around its open AI Horde API. This has already borne fruit, as Haidra has plugins for Krita, GIMP, Mastodon, Lemmy, multiple telegram and discord bots, as well as front end interfaces for generating images and text, such as Lucid Creations, ArtBot and KoboldAI lite.
All software developed by Haidra are also Free/Libre Software ensuring that all this effort will forever belong to the common culture. You can find everything on GitHub and you can take a look at the amount of 3rd party tools available.
How Can You Get Involved?
Getting involved with Haidra is pretty easy and you can contribute as much or as little as you are able. Every contribution counts. Here are a few ways to get started with the project.
- Help keep operations running: The infrastructure of AI Horde is fully funded by community donations. You can contribute in-kind here. AI Horde also relies on volunteer compute power to keep operations running at a reasonable speed. Anyone can support this by simply onboarding their computer as an AI Horde worker. By doing this, you provide resources to the community. You also receive priority for your own Generative AI creations for both images and text.
- Keep the communities safe: Not only does Haidra generate text and images, which comes with its own privacy concerns, but it also has the various GitHub repositories for the project and its ecosystem, as well as the central Discord. The Haidra project maintainers take pride in a high standard of community safety, and need to scale moderation to meet the project’s growing needs.
- Contribute code and expertise: Of course, as with any open source project, Haidra relies on its community to contribute code that advances the project under its umbrella. If you have ideas for the project or want to help with fixes, day-to-day code maintenance, etc. join the community on GitHub. As always, when you contribute to a Nivenly project you will need to sign the Nivenly CLA. (Note that Nivenly’s default code license is Apache 2, but each sub-project may have a separate licensing. When contributing to a specific project, you are bound by the terms of that project’s license.)
- Join the Haidra conversation: Haidra also maintains a presence on social media, such as Mastodon and Lemmy and they have a vibrant community in the official discord server with regular events and support channels and posts updates to their blog. The Haidra community welcomes you to join any/all of these channels to learn more about the project and get involved in important discussions happening in the community. Taking part in events and helping others is also a great way to receive more priority for your use on the AI Horde.
Interested in Nivenly Membership?
If you’re new around here, firstly, welcome - we are so glad you’re here! If you like what you see, and are interested in joining our Foundation, here are the Cliff Notes (The full rundown is here.) The Nivenly Foundation is a non-profit co-op that provides governance and legal support to open source projects. Our ultimate goal is to create a place where individuals, project maintainers, and project sponsoring entities can build healthy, effective, and sustainable working relationships that nurture the positive benefits that each group brings, while offsetting common sources of friction, bias, and unbalanced influence that can stifle projects’ long-term potential.
Welcome again to the Nivenly Foundation, Haidra! We look forward to supporting this amazing project, and seeing its impact continue to grow.
* We are continuing to work on our governance structure and will have more information about this soon!
🎉 Hello and Welcome 🎉
Today marks the official “release” of the Nivenly Foundation.
We are very excited to have finally reached this juncture in our journey. This means we’ve opened up the ability to do direct donations and are also opening up memberships. There is a lot of information we are going to provide in this post, please use the table of contents below to jump around as needed:
- What is the Nivenly Foundation?
- Donations and how they differ from memberships
- What’s next?
What is the Nivenly Foundation?
The Nivenly Foundation is a non-profit co-op that we’re creating to provide governance and legal support to open source projects. Each concept in this sentence was chosen with care, the ultimate goal is to create a place where individuals, project maintainers, and project sponsoring entities can build healthy, effective, and sustainable working relationships that nurture the positive benefits that each group brings while offsetting common sources of friction, bias, and unbalanced influence that often create discord, block progress, and are not sustainable in the long term.
Why a co-op?
The co-operative structure allows for members to partake in decisions that govern the co-operative entity. In our case as a foundation, that means that all members work together to make decisions and find solutions. We chose this structure specifically for this reason: we wanted to create a place where everyone that uses, builds, and finances open source software to have a voice in decisions that impact them. In fact, “uses, builds, and finances” is what we determined the main differentiators are for the member types.
Membership is a core concept to co-ops, as the co-op defines one or more member classes and then also defines the mechanics of how they raise concerns, make decisions, reach consensus, change policy, and so on.
Here at Nivenly, there are three types of membership: general membership, project membership, and trade membership (use, build, and finance - with some overlap). All members must adhere to the Nivenly Covenant and membership itself is managed via Open Collective.
General memberships are open to all individuals that are willing to adhere to the Nivenly covenant. You do not need to write code, provide donations (beyond member dues), supply in-kind donations, or do literally anything else to become a general member. General members vote in general elections, and the outcome of general elections is decided by a majority vote. At minimum, the quorum percentage of general members must participate in the election for the results to be valid.
General memberships are currently $7 / mo. (USD) and are available on our Open Collective page.
Project memberships are for project maintainers of projects supported by the Nivenly Foundation. Project members must also adhere to the Nivenly covenant. There are no dues or fees associated with project membership: project members are supporting Nivenly just by contributing to their project(s).
For information about becoming a project member, please email us at email@example.com.
Trade memberships are for companies, businesses, and similar organizations, foundations, and entities, that wish to support the Nivenly Foundation and partake in governance. Trade memberships are purchased and price is based on the size of the entity. The pricing structure is on our governance page.
For information about becoming a trade member, please email us at firstname.lastname@example.org.
More information on governance
For more information about the governance model, please check out our governance page. We’re also going to be updating our docs in the coming weeks and months with more detail about governance application processes, and more - so stay tuned!
Why a non-profit?
The main reason we have chosen to found a non-profit is our collaborative intent. There are three ways that being a non-profit, instead of a for-profit, helps with our mission:
- Makes it easier for board members and other volunteers to work on the Foundation and its projects while also having their dayjob.
- Makes it easier to partner with other entities, both for-profit and non-profit.
- Makes it easier to prioritize the community needs over business needs.
How does being a non-profit “make it easier” for each of these?
It is common for many employers to need to have clauses in their employee contracts about not having secondary jobs, receiving payment for other work, or basically otherwise engaging in activity that could create a conflict of interest with their employer. Even the most progressive and relaxed employee IP agreements such as GitHub’s Balanced Employee IP Agreement (BEIPA) call out specific rules for navigating IP with regard to non-employer activities. As a non-profit that is not competing with a potential contributor’s parent company, we are intentionally trying to avoid situations that would be common sources for conflicts of interest.
In the same way that being a for-profit may introduce a conflict of interest for potential volunteers and contributors on an individual level, it also could have created a conflict of interest at the “organizational” or “company” level. We want to be able to collaborate with existing companies, businesses, and non-profit organizations, foundations, and so forth. It is our belief that heavy competition is the death of collaboration; therefore, in order to foster a collaborative environment, we chose to be a non-profit.
Being a non-profit also helps us be able to nurture a healthy relationship with the Nivenly Community. In a competitive environment, when the community and business needs come into conflict frequently the business needs are prioritized. The purpose of a non-profit is specifically to provide service(s) and other community benefit, which means that being a non-profit puts us more in alignment with our community by default than having a for-profit status.
What is governance and legal support?
We provide our open source projects and services assistance with:
- Managing funding
- Community management
- We file and hold trademarks for IP protection
With these, we try to make it easier for projects that are just starting out to have access to the tools they need - both human and legal - so they can be successful. We also want to make it possible for companies et al to contribute in a low risk way that avoids indirect competition. To put it another way, the individual projects themselves do not need to create an entity that would put their volunteers and maintainers at risk of violating any of their employment contracts, just to get certain legal protections met for the project.
Donations are not memberships
Key takeaway: memberships are different from direct donations.
Donations: When you as an individual or entity want to support the Nivenly Foundation but do not want to take part in governance (or would like to donate beyond your member dues). Support can come via direct or in-kind donations and can be to Nivenly as the parent org or made directly to any of its projects such as Hachyderm and Aurae.
Memberships: When you as an individual, project, or entity want to support the Nivenly Foundation and absofragginlutely do want to partake in governance. There are a few different paths to membership, and we’ll be covering them all in the next section.
The main takeaway is that you can support Nivenly via a membership and partake in governance and/or separately donate to Nivenly or any of its projects. Currently, the two projects are Hachyderm and Aurae, and between these Hachyderm is the hungry one, financially speaking. That means that most of direct-to-Nivenly donations and membership dues are supporting Hachyderm specifically. As we grow, and possibly take on other large projects, this is likely to change.
How to donate and where to buy swag
The Swag Store
Swag for Nivenly, Hachyderm, and Aurae is available on our swag store:
Right now there are a lot of options as we let SpreadShirt do its thing, though we might slim it down once we know what the preferred options are as there are a lot of options that might be overwhelming. When you use the top nav bar to select a particular type of clothing or accessory (stickers, mugs, etc.) the results are for only the Nivenly store, not site-wide for SpreadShirt.
There are a few places to donate directly to the Nivenly Foundation and its member projects. Since many of our members have GitHub accounts, one of the easier ways to donate is via Nivenly’s GitHub Sponsor page.
That said, the Nivenly Foundation and its member projects all have their own sponsor pages on GitHub. You can also do a one-time donation via Stripe directly to Nivenly or, if you were previously using Kris Nóva’s Ko-fi to donate to Nivenly and/or Hachyderm, you should update to donating to Nivenly’s Ko-fi directly. We will leave Kris Nóva’s Ko-fi up and transfer Nivenly-specific donations out of it for the next month or two while people transition away from using her Ko-fi exclusively. When we are closing to closing her Ko-fi (for Nivenly anyway) we will post another announcement. For those donating specifically to Kris Nóva because she’s awesome: no changes needed.
Complete list of ways to donate to Nivenly and Nivenly’s projects:
- GitHub Sponsors
- No longer Kris Nóva’s Ko-fi
- Nivenly’s Ko-fi
- One-time Nivenly Donation
- Only for one-time donations; cannot configure recurring donations at this time.
The one long task we’re working on in parallel with all of our other tasks: finalizing our 501(c)3 status with the IRS. This is a time-consuming process, so we’ll announce, loudly and proudly, once it’s complete rather than a series of iterative updates. Based on our prior experience with this it should take roughly a year to complete, but we’ll be overjoyed if it happens sooner.
Beyond the 501(c)3 status, there are a couple organizational things that we’ll be working on in the upcoming months and during our first year overall.
- Baking into the bylaws how new projects are onboarded into the organization. Effectively: “which member types vote and on what”.
- Building process around, and getting started on, our technical opinion pieces.
Of course, these bylaws and any future changes to them will continue to be made in public.
The opinion pieces are something that we strongly feel will benefit the community. Essentially, we’re looking to create deep analyses of different, relevant, technologies to help the community grow their industry-specific knowledge. You’ll be seeing more about this as we approach our first publication.