How to get interest in my CMS including Dev/design team to improve and make a living

I’m skint all the time, but I spend hours every day developing a CMS written in both ASP and PHP. I want to upgrade the asp one to .NET but I also have loads of ideas for features that work in the same way.

I can’t afford any help. I’m lucky if I get 1 website every couple of months at the moment. I think because I’m trying to be a jack of all trades, master of none.

I would really love to open source my work so far, but as I’m the only person to be making a live CMS I feel I have a large benefit over others if I can get them finished in time. I’ve got poor man’s copyright, which is legal in the UK.

If I open source it I feel I’m never going to improve my financial position, but neither will I if I continue to work on it alone.

Any suggestions?

The benefit of open-sourcing it … would be that if it catches on and gains a lot of popularity, then you would be known as the “founder.”

This means that you can hold training sessions, which you can charge for. You can write books for it and hopefully make a few bucks that way. And of course there’s the obligatory conferences. Once you get in to holding your own conferences, you can take a cut on the admission price, and just start adding up all the money for each attendee. Then, of course, if other user-groups emerge and start their own conferences and seminars, they can pay you $100K a pop for you to be the keynote speaker.

And finally, if a large (or even semi-large) company decides to adopt your CMS and they run in to troubles with it or need training, etc. … Then you would be the best person for them to contact for the job. Who better than the founder, right?

Lots of ways you can parlay the popularity of an open-source product in to a lucrative opportunity. The key is to make sure your name becomes ubiquitous with the product, and that you are well-established as it’s founder.

What do you mean by poor man’s copyright?

Thanks CMS Dude, a great inspirational piece :slight_smile:

“Use of this method may not hold up in a court as it is simple for individuals to pre-send envelopes which can then be used later by placing the materials inside.”

To help this, take your work to the post-office and use one of the more expensive plastic envelopes they give you for recorded delivery. These cannot be opened without affecting the seal, and they send it datestamped.

It’s what musicians were taught in a class I took (I was there as I wanted to create musical websites)

Every developer I know (self included) has come up with an amazing CMS at some point. Most are similar but the term “Live CMS” caught my eye. Can you elaborate on what that means and what sort of benefits it may have.

  • I had/have a CMS some that’s somewhat platform agnostic because it’s built on an XML backbone. I have flavors in PHP, ASP, C#.NET. The database can be MySQL, Access, MS SQL Server or with a little work (that I never completed) it can be full XML. I had considered building/converting in to the DocBook schema and then doing away with the database entirely but other than a few experimental drafts, I didn’t pursue it any further. [/I]

A long time ago (2003) I created a script that reads js files from the server to the current page just by changing the src of a script element. That progressed to using the DOM, which worked on more browsers. Which progressed to reading js files saved by a Perl script so more dynamic, and then to what I use now, a script that outputs either javascript or HTML depending on how it is requested. Finally I progressed to the page being run by the same method but using a timer to check the the updated time in the database and if the updated time was within 11 seconds the results were pushed to the current page. This now runs my whole site and every site I create including some of the CMS controls that have no database updating ability. Using SSL, which I haven’t been able to justify to outlay yet, would make this possible too although the sites I could offer would of had to be more expensive. I converted my whole site to it some time between April and August 2005 (just above Total Hits at the bottom of the page) (From this archived page I guess it was about May) For the UnitingRhythms website I had to go through numerous resellers and in doing so it forced me to learn both asp and php, so it’s written in both.

I’ve been constantly updating both the front-end and back, and have a good permissions sql script which I wrote for PHP/mySQL and asp/access allowing user/group read, user/group write, user/group blocked from reading, user/group blocked from writing. It allows for multiple combinations of each too which is handy. I think this sql may be the most powerful thing I’ve written, taking me a couple of weeks for one line (it does a lot of other things too, all with one query)
I have an asp upload progress bar using ASPupload that’s embedded in the same page. This is from their 3.0 version, which was made to pop up in a small window but using my livescript functions and XMLhttpResponse managed to hack it to work in the current page without the pop up or frames, or the bloated HTML tables with inline css.

The editable area only worked in IE though, and when I upgraded to 9 it stopped working. Before then my only script copied from online was for md5 encryption for asp. A little beyond my league I think. I recently downloaded rangy.js though as the problem I had was with the ranges when selecting content from the editable area. That was difficult to include into my method as well but managed to get that working again within the last couple of weeks. I’m just updating the editable area now (if I could stop procrastinating at sitepoint :slight_smile: )
I wrote a small example of the live method here : including other benefits.

But there are more…
It is possible with my method to allow websites running livescript to interact with each other as well. So I could, in my stats page, have a list of links to other livescript websites’ statistic pages and import them to my site to compare server speeds, rather than go to the other site. I don’t need extra scripting on either site either. I have a text file that holds myLiveFriends list of url’s. Rather than change all the links to add ?live=1 the links are checked with this text file first, if the url is in the myLiveFriends list it’s converted to a live link automatically. I use text files as they are faster to read and the data isn’t changed very often. You can see this in action by going to any site, adding /?live=1 to the url and viewing the javascript output. It’s the first bit of javascript executed, and people who do it from an unauthorised site will get an alert.
Also, what I’ve been thinking about lately is shopping carts. As I don’t need cookies to remember data between page changes, and I can import others’ live data to my page, I can add items to a cart from multiple domains.

There are loads of other ideas too, the more I work on it the more I realise what it can do.

If you go to my site, click a few pages and then get the value of page_history from the address bar you’ll see an array. (javascript:alert(page_history)) and page_index holds the current item in the array. This will allow me to create a back button within the page. I could use hashes but I hate sites that do. With this method I can choose what goes in the array, or even let the users choose :slight_smile:

Anyway, that’ll do for now, I’ve still got to update the PHP version as a friend requested a site and I want it done by the end of the week as I’m skint!

Ok, so what’s the key benefit of the system; is it that you change pages without a refresh and just refresh the content thereby reducing the server load and speed up page views or is it that the page automatically updates the page in view if it has been updated during the visitors visit to that page?

I had a look at that example that you posted over in the PHP side and I think logic_earth has a very good point about the code being too procedurally driven and that the code should be refactored to make it more modular. I built the bulk of my CMS in late 2003/2004 and things have changed immensely. Where I used to use document.getElementById(‘some-element’).innerHTML=‘something’; or xmlhttp = new XMLHttpRequest(); I now use a jQuery, where I used to use my own rich text editor, I’ll use TinyMCE or CKEditor. It’s modular and the code is somewhat self documented.

If I do anything with my CMS, I’ll release it as an Open Source project but I think before I would do that I would refactor my code to make it more OOP or MVC. My ASP and PHP versions are also very procedural but the C# version is OOP. The reason I would release it as an open source project and the reason I would release any project as Open Source is to get more people involved. When I first built my system I thought it was pure genius because it’s super light weight and responsive and it was much better than the DotNukes and PHPNukes of the day however as I got my hand into more advanced CMS projects with big communities behind them I realized no matter how clever my CMS was it paled in comparison to how fully featured and extensible these others were. This isn’t to put you off but to illustrate the power of a community driven project as opposed to a single developer’s system. If you want to compete with the Drupal’s, Joomla’s and Wordpress’s of the day, you’ll need to get a community to help you do so.



It is a phase…

Thanks Andrew

Both really, but more

I used the long version as a function can be changed, but after my last post in the js forum I guess a lot more than I thought about can. Thanks to Jeff who pointed it out that predefined functions doesn’t really mean that. Also,I tried to stay away from libraries for two reasons. I didn’t want to learn something different, I wanted to be creative with the things I had. Also, if I wanted other sites use the info from mine (I couldn’t stop it if I tried) They could use it without themselves needing libraries.

I couldn’t use an existing rich text editor because they weren’t live, eg

<a href="/cms/cmds/table.asp" title="Open Table Options"><img src="/cms/images/table.gif" alt="table" /></a>

Which leads to the file and folder structure. I have tried to make that as modular as possible. (/cms/cmds/ + command) Table.asp, which only outputs javascript as it can only be opened with

<a href=""" & page & "?edit=" & part & """ title=""Edit Part" & part & """><img src="/cms/images/edit.gif" alt="edit" /></a>

which is a link which opens the current page (in the minimalist of the sence with live script) with edit functions that only appear if the user has write permission on the page or is in a group that does, or is not a blocked user or not in a group containing blocked users. The cms does not have read or write permissions set, neither does it do anything server-side. It just creates the options for the table and embeds it in to the current page (div id=“cms_extras”). #cms_extras appears differently depending on what #cms_extras.addtable had in it (which is now brought in dynamically rather than whole files in one and fits in with the modular file structure). table.asp can be added to the permissions structure by adding it to the database and including a certain header file.

Another thing is security. I know what live javascript can do server > client > server > client. For instance, you can send back the details of mouse positions, buttons clicked so much more at regular intervals. I see sites with all these external javascript libraries and I think to myself if the owners know what that external javascript can do. “It’s just client side!” Think again.

I hate to burst your bubble, this sounds awfully like the Page Editor functionality with large-scale CMS’s like Sitecore.

The reason I suggest you use a library is because most developers who do “live” things on the internet are already familiar with jQuery, Node.js or one of the other well known libraries and it opens the doors to developers to better understand and adopt your system. Like you said, you don’t want to learn another system… Neither do they.

  • I initially balked at AJAX libraries because I knew how to manipulate things using XMLHttpRequest(), bla, bla, bla… Then I started using Node & jQuery and I haven’t looked back. All the boilerplate code is done, I just have to write some tight syntax and can get the job done.

Regarding using a rich text editor plugin, I’m sure they can be used “live” as well because they are obviously using DHTML techniques to do what they do in the first place. It’s just a matter of figuring out the hooks.

That doesn’t burst my bubble at all. Saying something like mine is similar to a large-scale CMS to me is something of a compliment. Thanks.

Thanks awasson. The asp templeate is more-or-less finished, and the PHP is close behind. Looking forward to when they are working as I can get in to spending more time learning OOP, both server and client side, and look in to existing libraries. I can also get back in to developing more “fun” projects like my guitar and CSS3 maze. At the moment though I’ll have to continue using the libraries I’ve created over the years as they already work the websites. Changing them now will put back the finishing of the php version. I need to get what’s done fully working again. I’ve managed to get a range to save, which was the main setback, but in doing so it’s made it work on all new browsers, it even works in my Blackberry :slight_smile:

Thanks for the chat. Inspirational.

As some of you have seen the sites, you’ve probably realised that the main content is about the same size. I have a bit of a dilema here. The idea is to have a button that when clicked publishes the current content view to my maze, for Safari and Chrome. there’s HTML content on [URL=“”] I have which is where it will go. The maze at its current size looks good in an iphone and I think it defaults to 1:1 ratio (I haven’t got an iphone so I have to keep annoying my friends, and when I tried emulators they didn’t have the CSS3 perspective).

As the content script is at /folder/file.php|asp, it’s live javascript is at /folder/file-onload.php|asp|js and it’s css is at /folder/page-css.php|asp|css I could load the content/css/js directly to the maze when a user is looking at the active wall, maybe replacing an image when the wall is stationary or a button is clicked. This will allow their interactive page work the same on the maze.

Do you think it would be better to increase the size of the maze panels or decrease the size of #main in the sites? Or think of another way so both can be different sizes?