Aardwolf powers social, connected communities with free software.
Aardwolf is a new platform for creating new social networks, connected across the web. While existing social media sites work to funnel the world into a single shared experience (and advertising marketplace), we recognize that we are all individuals with different identities and interests.
Aardwolf is the engine behind a new Facebook-like social platform which is being actively developed.
Aardwolf shares a philosophy and underlying protocols with Mastodon, a federated microblogging platform with over a 1000 independently-run servers, hosting more than a million active users.
What's Different About Aardwolf?
Aardwolf is a social platform, meaning that each server hosts it's own community of users who are posting, sharing pictures, links, etc. They are replying and "liking" each other's posts, and re-sharing the ones they like best.
Even better, Aardwolf is a connected (the technical term is "federated") platform: users are not limited to only interacting with other users on their service: they can follow users on other sites that are powered by Aardwolf just as if they were on their own site. They can even connect with users on other platforms, if -- like the microblogging service Mastodon -- they implement the same free protocols Aardwolf is built on.
Finally, Aardwolf is free software, which means that all code is publicly available, and developers who want to contribute or understand how it works can dig in and do so.
The scaffolding is still being built, but the pieces are coming together much quicker than originally anticipated! A sample of the web interface should be online soon.
If you would like to follow along Aardwolf development happens on Github. Feel free to fork the repo and contribute.
Get in Touch
Lately we have been hanging out on Matrix chat which is available via web https://riot.im/app/#/room/#aardwolf-discussion:matrix.org.
Or on your favourite client: #aardwolf-discussion:matrix.org
We also have a forum WeAreSocial.tech (you can login with your GitHub account), and a mailing list, both of which have been super quiet.
Donating to the cause
For those who would prefer to help us in a monetary fashion you may do so through LiberaPay: https://liberapay.com/Aardwolf
Please do not be afraid to ask questions. There are a lot of things that Banjo would appreciate help with. Even if you do not know Rust, there may be other ways to participate! :D
Website design by Steve Ivy - https://www.monkinetic.blog/
Logo by Alex Daily - https://beepboop.one/@Alexis
State of the Aardwolf
Cutting to the chase. Here is the current status of the project.
- Code compiles under Rocket, or Actix
- Authentication is being updated
- WebPack needs considerable improvement
- Documentation has improved
- General repo cleanup
- Actor models are largely completed
- Other models are also done
- Logging is in progress
Updates added to: Aardwolf-Interface Repository
- A lot of wireframes have been added (80% coverage)
- Some wireframes have been coded in pure HTML/CSS (30% coverage)
- i18n translations were updated in main repository
Here are the current priorities for the project
- E-mail notifications (required for user sign-ups
- Get basic timeline working
- Fix WebPack so that it grabs the proper styling resources
- Convert existing interface templates to Ructe Syntax
- Code up remaining templates to match wireframes
- Build additional wireframes to get 100% coverage for Minimum Viable Product (MVP)
A more modular hyena
Our dear friend, and colleague Arlo (aka Asonix), has once again blessed us with several metric tonnes of code. Not the least of which is a more modular backend. Short version,
it is now possible to build with either Rocket.rs, or Actix. This is really cool because it means that we can do some serious side-by-side testing down the road. It also has the
benefit of providing more choices. Sadly I am not quite versed enough to explain why choose one over the other but hey, glad to have the option ;)
Just a few moments ago PR #159 was merged, thus finally nailing down Tera as our templating language (syntax?) of choice!
Also included in this is the i18n translation functionality, which has become a pretty important part of the project. Unfortunately these translations are only with the aardwolf-rocket
feature, and will not (yet) work on Actix. Given that the i18n_rocket crate (what we are using for the i18n support) will soon see a major update the decision has been made to hold off
on making it work with Actix. Once the updates have been released, we will look at it with fresh eyes.
Back in action
After a painfully long hiatus, I am finally back, and actively poking away at things. The chatroom has sprung to life with some new blood,
as well as some old faces (welcome back KD0BPV). While it felt shamefully good to let my brain decompress for a while, I kept always thinking how little progress I was making. This new influx however,
has really rejuvinated my interest, and I’ve been busy chattering away, and posting lots of little updates.
Thank you Redditors
It seems as though some of the new folks have been finding us by way of This Reddit
to which I spent the better part of 4 hours frantically trying to reply to! So if you are on Reddit, please feel free to spread this around, and ask questions as you see fit :)
I promise I will try to keep up haha :D
Here is the real meat of the update.
- i18n-templates, with a great deal of help from Redditor christiansakai is now finally in a semi-working state!!
This branch includes Baptistes rocket_i18n crate for UI translations, as well as switching from Handlebars.js to Tera.rs templates.
- Master branch still compiles, and has some minor package updates for WebPack.
- Lastly I have added some of my -raw- design_notes to the aardwolf-interface repository for folks that want to visually see
how I /think/ things should look.
- Logging is being looked at again
- SMTP functionality is also being re-discussed
- The “demo” server still is not ready for registrations, but I am thinking about using a different TLD for it.
I have received a wonderful set of artwork from Alex Daily that we can use for the Aardwolf project. There is still some work to be done on our side to get things posted,
and credited properly, but its here! The full set will be included with the other art assets before too much longer.
Aaren’t you glad I didn’t title this Aartwork? :P
Open to All Contributors
Just wanted to give everyone a friendly remind that anyone interested in the project is more than welcome to contribue. Even if it is something as small as suggesting an edit to fix a spelling error.
If you have ever wanted to learn to write code, be it Rust, or HTML/CSS that’s fine too! We actually have several contributors that are still learning to program, and we are all more than willing to
mentor folks that want the help. Working on a project, and having someone to bounce ideas off of is always a great way to learn new things :D
Mozilla Global Sprint 2018
I have submitted the Aardwolf project to Mozilla’s Global Sprint (May 10th-11th), and have been (somewhat) frantically trying to get the repository ready.
If you would like to check out what other projects are part of go check them out! Mozilla Global Sprint Homepage.
By “getting the repository ready” I mean mostly working on documentation, and trying to better define what in the heck it is we need!
Hackers Guide to Aardwolf
Most of the above has been coming in the form of The Hackers Guide to Aardwolf. The hackers guide, is simply a top-level directory which I am using as a library for documenting the development targets/features.
At this point pretty much all of the docs in here (including the README.md) are first-draft attempts, and likely need a lot of collaboration to really flesh out the ideas. But hey! It is a starting point right?
I should also note that, while there are a few docs in here already, I’ve started a new branch (note_taking) which is currently tracking the chaotic mess of me adding things on the fly. Hoping to merge this soon.
If you want a direct link, here you go – Hackers Guide to Aardwolf.
Public demo, closing user registrations
The, seemingly, steady flow of user-auth requests for the live demo have been enough to make me want to put a hiatus on them. For the time being I’ve frozen the new user creations because there really-and-truly is not much
more than a static web page that allow authentication. When we have something more interesitng to look at, the registrations will open again. If however, you are a developer that would like to do testing, please let me know, and we can work something out :)
New repository for Aardwolf Interface hackers
I have created a separate repository that can be used by folks that would prefer to only work on what the future of Aardwolf looks/feels like.
That is found here: Aardwolf Interface Development
Current state of the Aardwolf code
- The server compiles
- The Master branch, which uses Handlebars.rs for the web templates will render okay, and work for testing logins
- Logins work, but the auth-token is sent to STDOUT so I literally have to copy/paste it into a browser to authenticate new users
- We are migrating to Tera for templates, but the language files are not -yet- in the correct context which causes a 500 error because Rocket/Tera is trying to populate the ``
High Priority TODO’s
- Bring the language files from /lang/*.toml into the correct context (fixing Tera runtime issue)
- Configure something for e-mailing the auth-tokens
Alpha-release (MVP) Targets
- Develop functionality for a single-instance “shoutbox-like” posting
- Basic federation between two servers
Now available on GitLab!
For those of you that prefer to use GitLab instead of GitHub, I’ve just added the project to the GitLab group And My Axe.
You can find it here Aardwolf on GitLab
Welcome to the Aardwolf project!
Not really sure where I should start off but maybe if I just keep typing something cool will come to me… OH, I know!
Frequently Asked Questions
Q: Why not contribute to Diaspora, Friendica, or [insert_project here]?
A few reasons.
- One, at the time of inception I’d completely forgotten about Diaspora.
- Two, I strongly feel that having -more- options is better than fewer.
- Finally, I, and the rest of the initial dev-team, REALLY just wanted to do a cool project in Rust-lang.
Q: Why did you pick Rust-lang?
Because Rust seemed like a cool system-level(ish) language with built-in security. The fact that it can DO web-stuff is also pretty awesome.
Go checkout Are We Web Yet? for more info on the Rusty Web :)
These are the folks I trust implicity with the project
- Pete “BanjoFox” - Project Manager, Wiki documentation, supposed to be working on Front-End stuff…
- Mark “KD0BPV” - Rust Back-end wizard, also helps keeps Pete in line ;)
- Eric “SillyString” - Started the original GitHub project
- Paul “pwoolcoc” - Rust back-end, rocket, diesel, lots of other good stuff!
- Jason “jfmcbrayer” - Big props to helping with architecture/design considerations
Oh.. and this guy too.
- Steve “Sivy” - The one responsible for the website your reading right now ;), and also some design stuff he may not want me to talk about.