Event Horizon Labs LLP

Modern web applications.

What are the key elements needed to create a great web application?

This is how we work.

Knowledge of technology


Programming

PHP
"PHP is a server-side scripting language designed primarily for web development but also used as a general-purpose programming language."
HTML
"HyperText Markup Language (HTML) is the standard markup language for creating web pages and web applications. With Cascading Style Sheets (CSS), and JavaScript, it forms a triad of cornerstone technologies for the World Wide Web."
CSS
"Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language. Although most often used to set the visual style of web pages and user interfaces written in HTML and XHTML, the language can be applied to any XML document, including plain XML, SVG and XUL, and is applicable to rendering in speech, or on other media. Along with HTML and JavaScript, CSS is a cornerstone technology used by most websites to create visually engaging webpages, user interfaces for web applications, and user interfaces for many mobile applications."
XML
"In computing, Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable."
JavaScript
"JavaScript is a high-level, dynamic, untyped, and interpreted programming language. Alongside HTML and CSS, JavaScript is one of the three core technologies of World Wide Web content production; the majority of websites employ it, and all modern Web browsers support it without the need for plug-ins."
Design patterns
"A design patterns is the re-usable form of a solution to a design problem. The idea was introduced by the architect Christopher Alexander and has been adapted for various other disciplines, most notably computer science."
REST API Development
"Representational state transfer (REST) or RESTful Web services are one way of providing interoperability between computer systems on the Internet. REST-compliant Web services allow requesting systems to access and manipulate textual representations of Web resources using a uniform and predefined set of stateless operations."
HHVM
"HipHop Virtual Machine (HHVM) is an open-source virtual machine based on just-in-time (JIT) compilation that serves as an execution engine for the PHP and Hack programming languages."

Frameworks/ORMs

Symfony
"Symfony is a PHP web application framework and a set of reusable PHP components/librariesSymfony is a PHP web application framework and a set of reusable PHP components/libraries. Symfony aims to speed up the creation and maintenance of web applications and to replace repetitive coding tasks. Symfony has a low performance overhead used with a bytecode cache."
Doctrine ORM/ODM
"The Doctrine Project (or Doctrine) is a set of PHP libraries primarily focused on providing persistence services and related functionality. Its prize projects are an object-relational mapper (ORM) and the database abstraction layer it is built on top of."
Silex microframework
"Silex is a micro web framework written in PHP and based on Symfony, Twig (template engine) and Doctrine (database abstraction)."
Laravel
"Laravel is a free, open-source PHP web framework, created by Taylor Otwell and intended for the development of web applications following the model–view–controller (MVC) architectural pattern."
AngularJS
"AngularJS is a complete JavaScript-based open-source front-end web application framework mainly maintained by Google and by a community of individuals and corporations to address many of the challenges encountered in developing single-page applications."
Angular-Meteor
"Angular-Meteor is completely Open Source. It brings the responsive power of Angular to the powerful and flexible Meteor stack."
Meteor
"Meteor, or MeteorJS, is a free and open-source JavaScript web framework written using Node.js. Meteor allows for rapid prototyping and produces cross-platform (Android, iOS, Web) code. It integrates with MongoDB and uses the Distributed Data Protocol and a publish–subscribe pattern to automatically propagate data changes to clients without requiring the developer to write any synchronization code. On the client, Meteor depends on jQuery and can be used with any JavaScript UI widget library."
Propel
"Propel is a free, open-source (MIT) object-relational mapping toolkit written in PHP. It is also an integral part of the PHP framework Symfony and was the default ORM up to, and including version 1.2."

Databases

PostgreSQL
"PostgreSQL, often simply Postgres, is an object-relational database (ORDBMS) – i.e. a RDBMS, with additional (optional use) object features – with an emphasis on extensibility and standards compliance."
MySQL
"MySQL is an open-source relational database management system (RDBMS)."
Memcached
"Memcached is a general-purpose distributed memory caching system. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source (such as a database or API) must be read."
MongoDB
"MongoDB is a free and open-source cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with schemas."
commercetools
"commercetools is a cloud-based commerce platform."
Redis
"Redis is a software project that implements data structure servers. It is open-source, networked, in-memory, and stores keys with optional durability."

Other technologies

Yahoo performance rules
"Best Practices for Speeding Up Your Web Site."
Web scraping
"Web scraping (web harvesting or web data extraction) is data scraping used for extracting data from websites. Web scraping software may access the World Wide Web directly using the Hypertext Transfer Protocol, or through a web browser."
git
"Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency."
Atom (RFC 4287)
"The name Atom applies to a pair of related Web standards. The Atom Syndication Format is an XML language used for web feeds, while the Atom Publishing Protocol (AtomPub or APP) is a simple HTTP-based protocol for creating and updating web resources."
HTTP 1.1 (RFC 2616)
"The Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, and hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web."
EDI - X12
"Electronic data interchange (EDI) is an electronic communication method that provides standards for exchanging data via any electronic means. By adhering to the same standard, two different companies or organizations, even in two different countries, can electronically exchange documents (such as purchase orders, invoices, shipping notices, and many others)."
Microformats
"A microformats (sometimes abbreviated μF) is a World Wide Web-based approach to semantic markup which uses HTML/XHTML tags supported for other purposes to convey additional metadata and other attributes in web pages and other contexts that support (X)HTML, such as RSS."

Full-text search

Apache Lucene
"Apache Lucene is a free and open-source information retrieval software library, originally written in 100% pure Java by Doug Cutting."
ElasticSearch
"ElasticSearch is a search engine based on Lucene. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents."
Solr
"Solr is an open source enterprise search platform, written in Java, from the Apache Lucene project. Its major features include full-text search, hit highlighting, faceted search, real-time indexing, dynamic clustering, database integration, NoSQL features and rich document (e.g., Word, PDF) handling. Providing distributed search and index replication, Solr is designed for scalability and fault tolerance."
Sphinx
"Sphinx is a free software/open source fulltext search engine designed to provide text search functionality to client applications."

Testing

Behat
"Behat is a test framework for behavior-driven development written in the PHP programming language."
PHPUnit
"PHPUnit is a unit testing framework for the PHP programming language. It is an instance of the xUnit architecture for unit testing frameworks that originated with SUnit and became popular with JUnit."
Selenium
"Selenium is a portable software-testing framework for web applications."
lime
"lime is a unit testing and functional testing framework built specifically for the Symfony web application framework based on the Test::More Perl library."

HTTPD

Apache HTTPD
"The Apache HTTP Server, colloquially called Apache, is the world's most used web server software."
Cherokee
"Cherokee is an open-source cross-platform web server that runs on Linux, BSD variants, Solaris, OS X, and Windows. It is a lightweight, high-performance web server/reverse proxy."
nginx
"Nginx, stylized as (NGINX or nginx), is a web server, which can also be used as a reverse proxy, load balancer and HTTP cache."
Varnish Cache
"Varnish is an HTTP accelerator designed for content-heavy dynamic web sites as well as heavily consumed APIs."