Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have to develop a real estate marketing CRM software for my client - where the application is installed on desktop but can also be accessed from web.

2 reasons why they want the application to run from desktop :

  1. So that it can work with/without internet connection
  2. They don't want their complete data to be online

They want to access few of the data like property listing & inquiries (managed from desktop application) from their website through secure login & password.

The data that is entered in desktop application should be automatically synchronized with the website application. I was wondering if there is a way to develop this kind of software using PHP & MySQL. If yes, it will be great if anyone can provide me the referral link.Else please suggest, which language should I use.

share|improve this question
there is nothing to talk about, you can just develop a web application based on the same database.. –  Jaiwo99 Nov 23 '12 at 21:06
I've been working on PHP Desktop that embeds IE browser control and php webserver so you can create desktop application using the same php code, but this project is incomplete. I only know of one other solution, but it is a commercial application called Exe Output, allows you to embed IE or Chrome browser and a php server. –  Czarek Tomczak Nov 23 '12 at 21:19
The data that is entered in desktop application should be automatically synchronized with the website application. If it's offline then the "automatic synchronization" needs to have some window or times that it can occur, also if it's a 100% offline desktop application, how do you plan to handle the scenario where someone has no internet access ever? Also how do you plan to deal with the merging of changes from web and desktop which conflict during that synchronization? This is a complex problem and it sounds like you need to do a lot more study. Also there's no clear question here. –  Jimmy Hoffa Nov 23 '12 at 21:22
@JimmyHoffa if someone has no internet access ever they are effectively not using the same program as everyone else. –  Brad Apr 30 '13 at 20:28
TideSDK would be good option. They provide better support. –  Hardik Thaker Jun 11 '13 at 11:24

7 Answers 7

There is a way, yes, using something like PHP/Gtk. But I really dont advise that.

Use something like C#, VB.Net, or Delphi to create the desktop app. That is what they are designed for. The results will be far better, and you'll have a lot fewer headaches. Don't try to force the square PHP peg into the round desktop hole. There are even a few solutions that let you create desktop apps in html/js (Adobe Air, for ex), if you really want to resist using one of the more desktop specific solutions.

share|improve this answer
is PHP/GTK even still maintained / binary distributed? Also there is PHP/QT, but AFAIR it's quite unstable. –  ZJR Nov 24 '12 at 2:40

A possibility could be to develop the application as a web application and run your web server on your desktop. In this way you do not need a different technology.

EDIT: there exist portable web server solutions (for example, http://www.server2go-web.de/ or http://portableapps.com/apps/development/xampp), which make this approach work much more smooth.

share|improve this answer
This was my first thought, also. –  Carson63000 Nov 23 '12 at 22:46
Security issues in this setup will have to be considered, though probably this is an intranet and a limited scope application, so I bless the attempt, just take care. If targeting windows you may have also give a look to this obscure MS technology: .hta –  ZJR Nov 24 '12 at 1:47

When all you have is a hammer...

In theory, yes. In practice I wouldn't.

There is a PHP-GTK extension that allows you to build GUI applications on top of PHP (though I've never used it).

However, PHP is not intended for building GUI apps and its architecture isn't conducive to such projects. PHP is built to handle short-lived request/response application models and that's what it does best.

You should pick tools appropriate to the job you're doing rather than trying to force a given tool you're familiar with into a role it's not made for. The result will never be anywhere near optimal if you do.

There are plenty of other languages that provide the functionality you need to build a CRM application, java, C#, C++ and a whole slew of other tools. They're also better suited to building GUI applications than PHP is. I'd seriously consider looking at one of those instead.

share|improve this answer

Here are two possible approaches I would take:

  1. You could try Appcelerator Titanium for Desktop development with PHP.

  2. Alternatively, you could install a local web server, develop the application logic, create a web-service and develop the view logic in something like Java to interface with the web-service.

If you take the second approach, I'd recommend you to use REST as the type of web-service.

share|improve this answer

Yes its possible php gtk project is no longer active, with the power of php 5.4 there is a better platform called wxphp something based on popular wxWidget, give a try I think you'll not disappointed

Here's why:

  • Its build over most popular wxWidget
  • Compatible with Windows, Mac, Linux/Ubuntu GUI platforms
  • wxWidget Always use native GUI
  • wxWidget still under active development

For more about wxWidget visit here wxWidget

share|improve this answer

Nightrain - PHP Desktop Packager might be what you are looking for. Nightrain does not include MySQL but you can install it on the user's computer or you can just update your application to use SQLite Database. For your these particular requirements switching to SQLite database might be better.

Here's what you have to do:

  1. Download Nightrain from: http://www.nightrain.naetech.com/
  2. Copy your application to the /www folder
  3. Run the nightrain executable to launch your application, test it out or do whatever adjustments you have to
share|improve this answer

Sounds kind of crude, but just export your data as a Spreadsheet. And let them play with the spreadsheet on their desktops. You could go mad and have the web server upload a modified spreadsheet and apply any updates to the central DB.

Obviously this is very error prone and clunky, BUT, so is any other offline replication solution. At least the users will be aware of the obvious problems. Any other solution will have the same underlying problems but a slicker interface will give a false sense of security.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.