Startup Search credits
Powered by many electrons and data sources
Startup Search takes advantage of many open-source projects, third-party tools, and data APIs to deliver an engaging site rich in data goodness. These pages document some of the tools we use to product this site.
LAMP stack
Startup Search is powered by Linux, Apache HTTPd, MySQL, and Python (LAMP). More specifically, the site uses Red Hat Enterprise Linux, Apache 2.2 and above, MySQL 5.0 and above, and Python 2.5 and above.
Programming language
Startup Search and all its back-end tools are written in the Python programming language. The site takes advantage of the latest Python features present in version 2.5 and above such as fast XML processing, HTML parsing, decorators, and more. Startup Search takes advantage of external libraries such as html5lib, PIL, Universal Feed Parser, and modwsgi to accomplish specific tasks.
The Python programming language is used by Google, NASA, and other large data processors for its fast text processing and analysis capabilities.
Web Framework
The Startup Search front-end uses the Django web framework to collect and serve data to the Internets. Django provides an object-relational mapper, pre-built administration tools, caching hooks, user and session management, cross site request forgery protection, locale-specific data validation, and much more.
The Django web framework is actively used by The Washington Post, E.W. Scripps, AOL, Google, Free Software Foundation and other large news and journalism sites around the world.
Dynamic Servers
Media Temple hosts Startup Search within its virtual dedicated server product. Startup Search runs on HP hardware within a Virtuozzo container.
Caching Layer
Startup Search uses memcached to reduce page generation requests using an in-memory copy of frequently accessed data.
Static Servers
Startup Search serves static files such as CSS, JavaScript, images, and widgets from the Panther Express Content Delivery Network using Amazon's Simple Storage Service (S3) as an origin server.
Splitting our resources helps us serve data faster and optimizes page load times with parallel HTTP 1.1 downloads in modern browsers. Our content delivery network pushes static files to the edge of the network, conquering speed of light and server response issues with a quick download from local servers all over the world.
Groupware
Google manages our e-mail, calendar, chat, and online document sharing through Google Apps Premier Edition. We enjoy API access to Google's backend infrastructure for reliable distributed storage and resource management. It's one less thing to host ourselves, and we know Google already has highly optimized systems for such tasks.
News
The Startup Search Weekly Wrap-up is hosted on Google's servers through the Blogger publishing tool, Blog*Spot custom domain mapping, and our own custom templates and template expressions. Google's FeedBurner service distributes and measures the latest Startup Search news around the world in web feed format.
Campaign Monitor delivers the Weekly Web Wrap-up in HTML and plain-text formats using all the correct e-mail headers and other best practices for distributing mass e-mails to subscriber inboxes. They host our newsletter markup and images to minimize domain requests and load your e-mail content quickly and easily with the least amount of warning messages.
Startup Search uses the Yahoo! User Interface Library (YUI) to enhance on-site user experience through the use of JavaScript and asynchronous data retrieval. All YUI files are served by Yahoo! over Akamai and their internal content delivery network (CDN), which helps us defeat speed of light issues when delivering content to site visitors. Our visitors in India might receive their files from a data center in Malaysia, while a visitor from Maine receives the same files served from Boston.
YUI offers a collection of utilities and controls developed and tested on a Yahoo! community numbering in the hundreds of millions. Startup Search uses the same libraries used on the Yahoo! homepage, My! Yahoo, the Wall Street Journal, and many others. Our site uses a few specific YUI libraries to accomplish specific tasks.
Yahoo-DOM-Event
The Yahoo! global object, DOM collection, and event utility form a base layer of JavaScript tool functionality with abstracted A-grade browser support. JavaScript methods, parameters, and functionality varies by browser and browser version and it is very helpful to have a well-maintained base library tested on many more browser environments than I have on my development machine.
TabView
Startup Search loads dynamic tabs on each product page displaying a product's basic information, buzz metrics, and traffic metrics. We use TabView to create a tabbed navigation system based on existing page contents with the help of the Element utility. The YUI Connection Manager loads each tab's xHTML content asynchronously when clicked. A site visitor can navigate directly to any tab on the page and even hit the "Back" button thanks to the Browser History Manager.
DataTable
Startup Search enhances data sorting and pagination with the DataTable control. DataTable builds its data source from existing on-page markup, creating an enhanced data view for web browsers capable of JavaScript execution. Browsers with JavaScript turned off, such as mobile phones or a search engine crawler, will still see the full page content in its default layout. Both Startup Search data and the YUI transformation are screen-reader accessible tabular data sets.
Startup Search is a very heavy data-driven web application. We take advantage of the best data tools currently available for corporate data, website, and online brand measurement. You may read more about directory data sources such as the SEC and state-specific corporate databases in the Startup Search directory data about page.
Google Maps
Geocoder
Every address in our directory is verified against the Google Maps API's geocoding service, corrected where necessary, and associated with a unique point on the Earth's surface. We return the favor by outputting company and investor listings as KML files.
Map visualization
Startup Search creates map views for every object in our directory using the latest version of Google Maps display API. Every webpage utilizing the Google Maps display API calls the appropriate unload methods to clean up any outstanding objects or event listeners to reduce memory bloat once you are finished viewing our pages. Our site code disables info windows inside our directory listings (GMap2.disableInfoWindow) and manages the many markers in our browse by location views using Google's marker manager code (GMarkerManager) to reduce memory load and provide a faster user experience.
Google Reader JavaScript API
Startup Search directory listing pages display the most recent five entries for every feed we track. This feed data is served directly from Google Reader data store and its FeedFetcher notification and retrieval service via the Google JavaScript Feed API.
Yahoo! Pipes
Startup Search uses Yahoo! Pipes to create more specific web feeds for a generalist source. We create product-specific feeds for companies who produce multiple products but only maintain one blog and one web feed. We also create author-specific feeds to track an individual contribution to a company or other group blog source. Public URLs produced by Yahoo! help us publicize each custom feed source for fans of each product or service.
Flickr Photos
Each page in the Startup Search directory includes up to six photographs provided by Yahoo!'s Flickr photo hosting service. Photographs are dynamically loaded using the flickr.photos.search API method for a given tag.
Website thumbnails
Product competitor listings are enhanced using Snap PreviewShot webpage thumbnails.
Yahoo! Search Site Explorer
Startup Search tracks the total number of inbound web links to a product domain, exclusive of links within the same domain, using Yahoo! Search Site Explorer and its inlinkCount API.
Technorati search
Startup Search tracks a product citations and mentions using Technorati's cosmos and search API methods respectively. We display daily observations of product mentions over the last 180 days plotted by Technorati.
Google Trends
Startup Search displays brand search activity for every product and its competitors through the Google Trends service. Google Trends provides estimations of search activity observed by Google since 2004.
Alexa Web Information Service
Startup Search collects daily traffic information for each product URL from the Alexa Web Information Service. Products with insufficient traffic data may not appear in Alexa measurements. We display Alexa data inside a custom Flex charting application. You may read more about Alexa traffic data on our Alexa traffic collection page.
Compete
Startup Search uses Compete Site Analytics and its monthly observed traffic data available through the Compete API. Traffic graphs for each product and its competitors are served directly from Compete image servers. You may read more about Compete traffic data on our Compete traffic collection page.
Quantcast
Startup Search tracks unique users per domain (and subdomain) using Quantcast's traffic measurement and audience profiling services. Traffic graphs for each product and its competitors are served directly from Quantcast's image servers. You may read more about Quantcast traffic data on our Quantcast traffic collection page.