Site settings JSON views

Until now, site configurations didn't have a JSON view for Browse and Read methods, and that made it impossible to manage site configurations from a client app. 

We added those JSON views in the site settings component, and the code is in the master branch. We are still refining the output as we are developing the UX and UI in the Anahita React app, so we appreciate your patience until we tag a new release. On the other hand, you can build site management workflows in your clientside apps for mobile, desktop, and web. 

#SiteSettings #SiteConfigurations #AnahitaReact #JSON #API #RestAPI

Setup Anahita-React and Anahita Backend as API on Digital Ocean

This article will help developer to setup Anahita ReactJS and Anahita as Backend service on Digital Ocean droplets.
Rastin Mehr liked this
Rastin Mehr

Rastin Mehr

Anahita 4.4.1 Birth Release is out

This update contains some critical security updates, so we advise you to update your Anahita installations. We have also improved the overall security of the Anahita domain entities. 

For those of you who have custom Anahita apps on your system, you may need to update them. Here are the changes that you need to make:

What's new

We are now supporting Amazon S3 Regions. When you upgrade your installation, go to Settings Plugins Storage Amazon S3 and select the Region for your AWS S3 bucket.

We are also using 2 Google API keys for Geolocation and Google Maps APIs. That is because Anahita does geolocation on the server-side while the maps pass the key on the client-side. You can technically reuse the same key for both services, but you may want to use two different keys with different constraints. Go to Settings Apps Locations and update the keys. 

How to update

Go to the root of your Anahita installation and run the following commands:

$ composer upd...

2 people liked this
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

It's time to update to OAuth 2 and support more services

Just a heads up that the LinkedIn OAuth is no longer working because we need to update it for OAuth 2. 

We also want to move away from the facebook clone type consumer social networks and customize Anahita for knowledge sharing and open science applications. Therefore, we want to add support for additional providers such as Google, GitHub, and GitLab. The development will take some time, but it will be perfect for Anahita. 

Ideally, we would want to have the Anahita Connect app to be both a consumer and provider of OAuth service. We can not only authenticate Anahita users against external services such as Google or Github but also turn Anahita itself into an OAuth provider. 

We may decide to remove support for Facebook for several reasons. For example, Facebook is very much a consumer service and not being used professionally in the science and education world. They also have a poor track record in terms of privacy and data collection. 

#AnahitaConnect #OAuth

Scaling Up Anahita

Scaling Up Anahita

People have asked us about how to scale up Anahita for hundreds of thousands or more users, also about a micro-services version of Anahita. No cloud application can by default scale up to a large number of users. Traditionally, Software-as-a-service or SAAS projects achieved this by throwing hardware and computing power at their production server. Today they use a dev-ops and release engineering infrastructure.  

Reimagining Anahita as a microservices architecture

Two common technologies that we can use today are Docker and Kubernetes. Docker allows us to run Anahita, MySql Database, and other parts of a setup in individual containers. A group of Docker containers that communicate with each other is a cluster of containers. At the moment, Anahita is a monolith application. We want to move towards a micro-services architecture. In this article, I want to outline the first few changes that could make this leap happen.

A Client-Server Architecture

Moving towards a client-services archite...

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
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

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

Where Is Anahita Heading To?

Where is Anahita heading to?

It's been a while since I've written about the direction to which the Anahita project is heading towards. A lot of research and silent development has been happening during the last year with a focus on maintaining the existing codebase while planning the upcoming releases.

The idea of Anahita came to me over a decade ago when I was working as the lead architect of a software project to develop a Learning Management System for K12. The system we built closely resembled the traditional education model. After we launched and used the system for a while with a large number of schools in the US and Canada, I went through the survey results. The responses indicated that we've been enforcing an archaic education model via technologically challenged administrators and teachers to students who had the least power and most technical aptitude within that environment. During the same time, I was involved with an open source project called Joomla. Collaboration with other open source developers ...

Unknown Person liked this
Rastin Mehr

Rastin Mehr

Material UI Dashboard Examples

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

Anahita 4.3.14 Birth Release is out

This is a maintenance release that fixes the issue with video player styling and comes with some refactored code as well. 

Change Log

  • fixed: plyr styling
  • changed: KException to AnException

to get the update run the following command in the root of your Anahita directory:

$ composer update

If you had any questions, please start a topic in the Tribe Support group:

#BirthRelease #MaintenanceRelease #Anahita #plyr 

Rastin Mehr

Rastin Mehr

Anahita 4.3.13 Birth Release is out

This is a maintenance release that addresses a number of issues in php 7.2.8 and MySql 5.7. You will also notice a slight speed boost and new video player in the posts. To update, simply run the following command in the root of your Anahita installation:

$ composer update

If you have experienced any issues, please start a topic in the Anahita Tribe Support group:

My special thanks to Nick Swinford @nicholasjohn16 for testing, reporting, and providing patches.

#Anahita #BirthRelease #php7 #mysql

Anahita 4.3.12 Birth Release Is Out

Anahita 4.3.12 Birth Release is out

This is a maintenance release with a number of fixes in RESTful APIs, OAuth for Twitter and facebook, and a number of improvements and cleanups in the core library. The only new features that we've added is in the Articles app. You can now upload a cover for a published article. You can see the change log for more details:

How To Upgrade

IMPORTANT NOTE: make a backup of your database before upgrading so if things went wrong, you would be able to recover. 

Now run the following command in the root of your Anahita installation:

$ composer update

then run the database migration:

$ php anahita db:migrate:up

that should do it.  

If you are using the master branch, you need to pull the code and then run the database migration. 

Need Help?

Please post your questions in the Support Group and we'll be happy to help you:


Special thanks to @nicholasjohn16 @scott @robsaric ...
Using Articles For Blogging

Using Articles for blogging

We've decided to start using the articles in the Atrium group as our blog and retire our Worldpress blog.
4 people liked this

Happy GDPR day

Happy GDPR day! Here are some notes about how we treat your data.
Rastin Mehr

Rastin Mehr

Terms Of Service

Anahitapolis Terms Of Service
Rastin Mehr

Rastin Mehr

Privacy Policy

Anahita website privacy policy

Powered by Anahita