= Best-of-Breed Web Development Tools = This is a list of tools, modules and libraries that I consider to be 'best-of-breed' for web development. This is heavily geared toward the areas and platforms that I use regularly; esp. Mac OS X, CentOS, FreeBSD, PHP, Javascript/CSS/HTML and Postgres/MySQL. ==== Architecture/Planning ===== * [[http://www.omnigroup.com/products/omnigraffle/|Omnigraffle]] is the go-to program for designers and UX people to do wireframes & sitemaps. There are a number of excellent stencils, such as the [[http://konigi.com/tools/omnigraffle-wireframe-stencils|Konigi Wireframe Stencils]] * For technical/database planning, I like [[http://wb.mysql.com/|MySQLWorkbench]]. It's finally fairly stable, and can export MySQL code directly. ==== Web Development Tools ==== * Text Editor: [[http://www.panic.com/coda/|Coda]] (Mac OS X) is my current favorite. [[http://macromates.com/|TextMate]] (Mac OS X) or [[http://www.barebones.com/|BBEdit]] (Mac OS X) are also good. * WYSIWYG Editor: [[http://www.adobe.com/products/dreamweaver/|Adobe Dreamweaver]] * MySQL/PostgreSQL Admin: [[http://www.navicat.com/|Navicat Lite]] - The latest version integrates MySQL and PostgreSQL management into one app. The Lite Version is free for non-commercial use. Also, [[http://www.pgadmin.org/|PgAdmin]] is a free, powerful PostgreSQL administration tool. [[http://www.sequelpro.com/|SequelPro]] is a new MySQL admin tool based off the excellent CocoaMySQL. * Firefox Add-Ons: * [[http://getfirebug.com/|FireBug]] - The DOM/Javascript Debugging Tool * [[http://chrispederick.com/work/web-developer/|Web Developer Toolbar]] * [[http://livehttpheaders.mozdev.org/|Live HTTP Headers]] * IE Add-Ons: * [[http://www.microsoft.com/downloadS/details.aspx?familyid=E59C3964-672D-4511-BB3E-2D5E1DB91038&displaylang=en|Internet Explorer Developer Toolbar]] - Perhaps best called a poor imitation of FireBug, but still useful for debugging in IE * Safari Add-Ons: * [[http://www.skyhorse.org/2008/05/firebug-for-safari|Web Inspector Tool]]: Not an add-on per se, but still a useful Firebug-like tool to enable. * Broken Link Checker: [[http://peacockmedia.co.uk/integrity/|Integrity]] is a free, fast broken link checker. ==== PHP Modules ===== * Mailing Class: [[http://phpmailer.codeworxtech.com/|PHPMailer]] * Documentation: [[http://www.phpdoc.org/|PHPDoc]] * Template Engine: Either [[http://www.smarty.net/|Smarty]] or [[http://fry.sourceforge.net/|Fry Template]]. Smarty is much more popular, and is much heavier (read: slower), but is more capable. Fry is new, object oriented, and lightweight. * Image Manipulation: [[http://phpthumb.sourceforge.net/|PHPThumb]] ==== HTML/CSS/JavaScript ==== * JavaScript Library - Lightweight: [[http://jquery.com/|jQuery]] - For simple, easy DOM manipulation, you really can't beat jQuery. It's fast, lightweight, very easy to use, and has broad developer support. It doesn't do as much as YUI (see below), but what it does do it does better. * JavaScript Library - Full Featured: [[http://developer.yahoo.com/yui/|Yahoo! User Interface Library]] - This library, which is currently (Summer 08) under heavy development at Yahoo, handles a lot of the nitty-gritty DOM manipulation that you'd otherwise have to do yourself. It lets you easily create animations, put up popovers, deal with JSON objects, make AJAX requests and the like. * Analytics/Traffic Reporting: [[http://analytics.google.com/|Google Analytics]] - Google Analytics is hands down the best free website analytics package out there. * Share System: [[http://sharethis.com/|ShareThis]] - great tool for sharing pages via email, with Digg, etc. * In-Page WYSIWYG Editor: [[http://www.fckeditor.net/|FCKEditor]] is probably the best stand-alone WYSIWYG HTML editor. If you're using the rest of the YUI framework, [[http://developer.yahoo.com/yui/editor/|YUI's Rich Text Editor]] bears looking at. You should consider using either in conjunction with [[http://htmlpurifier.org/|HTML Purifier]] * Standalone Lightbox/Popover: I really like [[http://www.orangoo.com/labs/GreyBox/|GreyBox]] and [[http://www.lokeshdhakar.com/projects/lightbox2/|Lightbox]] * Video Player: [[http://flowplayer.org|FlowPlayer]] is the way to go. Both free and paid versions. * PNGFix: [[http://www.dillerdesign.com/experiment/DD_belatedPNG/|Drew Diller's PNG Fix]] is a good one. So is the [[http://www.campbellsdigitalsoup.co.uk/about/png-fix/|jQuery PNGFix]], although it is older. ===== JQuery Plugins ===== * Lightbox: [[http://jquery.com/demo/thickbox/|Thickbox]] - simple, flexible lightbox built on jQuery. Also good is [[http://fancy.klade.lv/|FancyBox]] * The [[http://flowplayer.org/tools/index.html|jQuery Tools Package]] is fantastic...Tabs, Tooltips, Overlay, Expose, Scrollable & FlashEmbed. It's stable, well documented and well supported by the community. Great, flexible APIs too. * Slider: [[http://css-tricks.com/anythingslider-jquery-plugin/|Anything Slider]] is pretty good. Also check out the [[http://jqueryfordesigners.com/coda-slider-effect/|Coda Slider Effect]] * Accordian: Jquery's built-in ''accordian()'' function is pretty good. * Cookie: The standard [[http://plugins.jquery.com/project/cookie|cookie plugin]] is as decent as any. ==== Backend Tools ==== * Database: [[http://mysql.com/|MySQL]] is the usual standard for web development, but [[http://www.postgresql.org/|PostgreSQL]] is a **very** solid choice. Harder to learn, but much more powerful once you're there. * Caching Layer: [[http://www.danga.com/memcached/|memcached]] ==== Web Site Apps ==== * Wiki: [[http://wiki.splitbrain.org/wiki:dokuwiki|Dokuwiki]] - great, standards compliant, full featured wiki software * Shopping Cart: [[http://www.x-cart.com/|XCart]] - the best PHP shopping cart I've found, but it isn't great. Perhaps there are better options? * CMS: [[http://drupal.org/|Drupal]] - top notch, flexible CMS software * Mailing Lists: [[http://octeth.com/products/oempro/|oemPro]] - best PHP mailing list software I've found. N.B. I generally [[marketing-tech:html-email:best-practices|recommend outsourcing email to a service]] (and not using oemPro or any other software), as there are too many things to deal with when sending it yourself. * Message Board: [[http://www.phpbb.com/|PHPBB]] or [[http://www.vbulletin.com/|VBulletin]]