Tuesday, December 1, 2015

Leveraged Evernote in my personal site http://www.JoymonOnline.in

What we need in personal sites

If we look at any personal profile sites, we can see, its bunch of information about a person or group. Information like what they like, what they do? what is their recent advancements etc...

Problems with HTML / ASP.Net only sites

In the first glance we may think that it can be done via simple HTML pages. That is OK for the first release. Once its released there will be changes requests. It seems human nature that they always want to improve. If the change request is too low, it can be managed by manually editing HTML. But if its more manual editing is not a good option. 

Obviously the option is to build dynamic pages and serve. It brings non functional requirements as below
  • A database and its maintenance.
  • Need to get a good web based HTML editor. 
  • Need to implement security
    • May be a hidden login page as I don't want my viewers to see the login option in my personal site.
Or better use a CMS already available and customize it to suit to me.

Problems 

Maintaining database

Database creation and maintenance seems simple in the beginning. But once we do 10-15 releases, it will be nightmare. Mostly we will end up in so any schema modifications and data upgrades.

Making sure there are periodic backups is again a headache. Another thing is if we want to buy decent database hosting space its not cheap.

HTML Editor

There are good web based ie Javascript based HTML editors available in free. But still I need to spend some time selecting which is the best suited for me and integrate the same.

Security

ASP.Net has good security framework. Without coding much we will get a basic site with login page. But we need to always make sure its secure by applying patches. Sometimes we won't have access to the servers especially in shared hosting.

CMS and customization

I first used still using "Personal Web Site template" from Microsoft which is ASP.Net Web Forms. At that time I felt that is simple and will help me to launch site easier. 

Now No way I can easily upgrade to MVC. Slowly I am removing the framework features and making it simple web form application. There is nobody creating free themes for it now.

If I had chosen Joomla or other heavy CMS, I can get free templates now also.

If we consolidate all of the above what I want is
  • A web site. 
    • Design changes less frequently.
  • Should be cheap to host.
  • Sections are pretty static but content changes are frequent.
  • There should be easy way to edit without worrying about HTML syntax

Solution - Outsourcing content for easy editing

The solution which I feel best suited is 
  • Outsource content management.

  • Pull that content to our site and display it.
    • Need to make sure there is API which gives content in HTML.
  • Login to third party portal to change content
The one I found suitable is Evernote. I can keep my site content (text,list,table) in Evernote and they have API to pull the data.

Like any other solution there are pros and cons.

Pros

  • Its free.
  • No need to worry about database maintenance.
  • No worries about security.(Need to remember the Evernote password :))
    • This is trust/belief based. They can secure the contents than I can.
  • Site contents can be simply edited from mobile on the fly.

Cons

  • If Evernote stops free account, need to migrate all the contents to the web site.
    • Need to properly abstract (class EvernoteContentProvider:IContentProvider {})
  • There is monthly quota for free Evernote account. Need to cache the data in site.
    • If the site has huge hits don't go this route.

Updates

2020-06-17 
After using some time JoymonOnline.in stopped using Evernote as Evernote made collaboration in premium paid tier. Currently it stores the data along with the source code in GitHub

No comments: