Anahita Project

Anahita Project's Articles

Rastin Mehr

Rastin Mehr

What are the changes in Anahita 4.4.1

Anahita 4.4.1 Birth release provides several security fixes and enhancement. For those of you who are developing custom apps for Anahita, you need to be aware of these changes. 

Signup endpoint has changed

The REST endpoint for signing up a new person is now a POST request to

String attribute validations

We have improved field validation in Anahita entities, and you can enforce minimum, and maximum length constrains to an entity attribute. To follow a convention, we are using the numbers: 3-30, 8-80, 10-100, 1,000, 5,000, and 40,000. Here is an example of how to use limit constrains in the Person entity:

Default selected Item in configurations forms

In the component or plugin configuration files, we used to use the term default for the selected item in a list. We are now using the term selected, which is more appropriate for lists....

Umesh liked this
Rastin Mehr

Rastin Mehr

Welcome To All Consistent Anahita Framework

Welcome to all consistent Anahita framework

We just reached an important milestone for Anahita. All the Nooku Koowa code which was being used are merged with the Anahita framework and most of the unused code has been removed. 

Our framework is now nice and consistent and no more confusions between "K" and "An" prefixes as well as "koowa" and "anahita" identifiers. Now all the class prefixes are "An" and wherever we had "koowa" it is "anahita". 

This release will be tagged version 4.4 because all your custom apps need to be updated to accommodate the recent changes. 

Our special thanks to the Nooku team for we couldn't have made it this far without their framework. 

Now while we're at it, could you please test installing from the master branch and let me know if everything is working properly? Thank you! 

#Anahita #Framework #nooku #koowa

Unknown Person liked this
Rastin Mehr

Rastin Mehr

What do we want to see in Anahita 4.*

Blossoms in WestEnd

The focus of #Anahita 4.3 was to completely remove Joomla from Anahita. The focus of next release will be #MobileFirst and developing a client server architecture where all the UI layouts and elements are generated in the browser using Javascript while the server side php becomes mostly an API.

This article describes the ideal scenarios that we are aiming to achieve.

Designing for Mobile First

The current release of Anahita is using Bootstrap 2.2.4 which is primarily developed for desktop devices while providing a responsive mode for mobile screens. Mobile traffic is now surpassing the desktop traffic on the web so it makes sense to treat mobile users as primary users. Latest releases of #Bootstrap and #MaterialDesign have already rewritten their libraries for the mobile devices as primary users. 

Quite likely we will be using the Material Design library for the next release of Anahita which seems to be more suitable for web applications compare to the Bootstrap library. We will be usi...

4 people liked this
Rastin Mehr

Rastin Mehr

Anahita 4.* Roadmap

This is the list of goals that we want to accomplish for this release. The implementation details and time are generally unknown until we actually start developing them.
16 people liked this
Rastin Mehr

Rastin Mehr

How to report bugs

Software bugs are a fact of life. The following is a guideline on how to report bugs an participate in fixing them. #anahita #bugs #guideline #protocol
Rastin Mehr

Rastin Mehr

Storing and retrieving data in a node's meta field

Short tutorial on storing an address in a node's meta field. This tutorial in fact teaches you how to add geolocation abilities to the app you are developing.
3 people liked this

Anahita 2.1 ChangeLog

Anahita 2.1 ChangeLog
4 people liked this

Anahita 3.* Vision - CLOSED

This is by no mean a roadmap, however it is a list goals that we would like to accomplish for this release. The implementation details and time are generally unknown until we actually start developing them.
27 people liked this

The Actor Manifesto

Defining an Actor in Anahita
Christian Hent liked this
Rastin Mehr

Rastin Mehr

Anahita 4.4.0 Birth Release Is Now Available

Anahita 4.4.0 Birth release is now available

We just tagged this release on Github. It doesn't provide any new features, but some significant changes in the core framework has happened that are essential for those of you who are building custom applications for Anahita. 

How to upgrade

We have merged all the parts that we were using from the legacy Nooku and Koowa frameworks and removed most of the unused code. This has made the Anahita framework API consistent everywhere. So basically:

  1. All classes and objects prefixed with "K" or now prefixed with "An"
  2. All instances of "koowa" in the identifiers are now "anahita"
  3. All instances of "KOOWA" constants are now "ANAHITA"
  4. In the www/configuration.php file, "AnConfig" is now "AnSiteConfig". That's because once we merged the KConfig classes as AnConfig, it interfered with the AnConfig in the config file.     
IT IS IMPORTANT that you update any custom apps or templates in your existing Anahita installation to reflect those changes. There are no database schema changes in this release, s...
Unknown Person liked this
Rastin Mehr

Rastin Mehr

Where Is Anahita Heading To? The Action Plan

Where is Anahita heading to? The Action Plan

I started an article reflecting on Anahita's history and goals. It was supposed to be just a paragraph, but it grew to become an independent blog post. Apparently, I like to ramble on when it gets to talking about Anahita. You can find the published article here:

TL;DR after building a learning management system for an old-school education company, I was inspired to build a more democratic and distributed online learning and knowledge sharing platform. I left my job, focused on my new company, grew a team, got down to coding. At the time we thought social networking was the solution to all humanity's ailments, but then alternative facts, click-bait content, and extremist ideas started spreading around on mega giant social media. After some reflection, we decided to focus on building tools for open science and data. Our goal is to make Anahita the lightest viable unit required to set up a knowledge sharing and collaboration platform. We want brutal minimali...

3 people liked this

React Redux Material UI Resources

In the next release of Anahita we are rebuilding the UIs in #ReactJS and #MaterialUI. The php back-end will be mostly providing Restful APIs and will only be rendering pages with SEO value, otherwise Anahita will be mostly rendering as a single page app #SAP for the logged in users. If you want to start learning the technologies that we will be using here are some resources that I've studied:

ReactJS Tutorial & Documentation: 


  1. A Material Design implementation using ReactJS:
  2. A frontend framework for building admin SPAs on top of REST services, using React and Material Design
  3. Flow is a habit tracker and personal data analytics app that lets you keep focus on what matters. Flow owns none of your data:
  4. Personal podcast web client htt...
2 people liked this
Rastin Mehr

Rastin Mehr

Upgrading from php5.6 to php7

Commands to upgrade from php5.6 to php7 or reverting back
Rastin Mehr

Rastin Mehr

Installing the Anahita embryo code directly from the master branch

Instructions on how to install Anahita embryo code from the GitHub master branch.
Bent Rune Skulevold liked this
Rastin Mehr

Rastin Mehr

How To Contribute To Anahita

I have created a wiki page on Github that shows you how you can fork the Anahita code, create a local repository from your fork, commit and push your code, and then send us a pull request.
Rastin Mehr

Rastin Mehr

Tips for building an Announcements app

This is a good alternative to an event. Sometimes you do not need event as actor nodes within your network that handle the entire event management workflow and instead you are interested in only posting the announcements of events that are organized somewhere else (eventbrite, facebook,, or real world). #geolocation #expireable
9 people liked this
Rastin Mehr

Rastin Mehr

Anahita 2.0 Development Workflow

Anahita 1.5, 1.6, to 2.0 took about 1 year to be released. In order to avoid that situation and being able to have a Birth release let's say every 2 months, we adopted a new strategy since the Anahita 1.6 Birth release. This page contains a diagram.
7 people liked this

Overriding Class Identifiers in Anahita

How to properly override a native Anahita class identifier instead of directly making changes to the core code.
Unknown Person liked this

Changing Class Behaviors without Hacking the Core

There are often needs to change some of the core behaviors of Anahita in order to accommodate for cretins needs. Here are some way you can accomplish that without changing the core files. #kservicemapping #objectmapping
5 people liked this

Powered by Anahita