SalsaScript

SalsaScript is a programming language that can be deployed and executed on Salsa servers. It can be used to build customizations on top of the existing Salsa system, to build custom websites, or even completely custom tools that you can make available for lots of companies and organizations.

What does the language look like?

SalsaScript is a standard implementation of Javascript with methods for database access, emailing, user information, and web page creation. While it uses the Javascript language (more technically, ECMAScript), this is Javascript that is NOT run in the web browser. It is more similar to PHP or Python, in that it is executed prior to being delivered to a browser.

How is it deployed?

SalsaScript is written in files with a ".sjs" postfix, for Salsa Javascript, or Serverside Javascript. These files are created and developed locally, in whatever development environment you like (vim, TextWrangler, Eclipse, etc), and then copied up to the Salsa repository to be run. To speed development, you can mount the Salsa repository locally, or access it via Subversion.

What is a SalsaScript package?

A 'package' is a directory of SalsaScript files, images, CSS, Javascript files, etc. that comprise a single set of functions. A single website is a good example of a package, as is an online Petition tool. When you create a package, you have the option of deploying that package on SalsaCommons for organizations, individuals, and companies to purchase and deploy. Packages can also be integrated into the Salsa Headquarters.

Can multiple groups use the same package?

The Salsa infrastructure is designed to execute SalsaScript within the scope of an organization.

Why would you use SalsaScript instead of PHP/Perl/Java/etc?

  • Write once, deploy once, to thousands of organizations - The biggest benefit of SalsaScript over standard languages is the ability to write and deploy code once, and have it operate for hundreds of organizations, inside of their own data sets. For example, if you write a Petition tool in SalsaScript, thousands of organizations can immediately use it on their sites, with each organization using its own data and web templates around the tool.

  • The Salsa environment Salsa provides a management img (the Headquarters), and dozens of integrated tools (emailers, report builders, importers, exporters, etc) that can be used with your package. No need to build all the reports you need, or build an exporter for data, or build an API -- Salsa provides common tools for all that, to extend your code well beyond what you write.

  • The Salsa Network Thousands of campaign managers log into Salsa Headquarters every day, and work with hundreds of packages and tools provided by many vendors. Through the Salsa network of organizations, millions of people receive email, and check websites of organizations, political campaigns, and companies every day. Building a package with SalsaScript gives you access to sell, deploy, and maintain code for this network through SalsaCommons.

  • Because you're lazy Building and deploying code on Salsa means you don't have to manage your own web servers and databases. No more late night wake up calls, no more arcane patching of code you never wrote, etc. If you really feel the burn to run your own servers, the Salsa API is for you. We know it's cheap to do so, but we also think that the advantages above outweigh the benefits of hosting your own systems.

What's a 'Node'?

Salsa is a network of organizations structured through Nodes, which are sets of companies and organizations with common attributes or missions. SalsaScript code is deployed across the whole network, not to any given node. To access or login as an organization to use the code, you must login specifically to the node that organization is on.

What can be built with SalsaScript?

SalsaScript is a full programming language built for the web. As such, it is good for building websites, web tools, CRM's, Content Management Systems, custom API's, RSS feeds, etc.

Is SalsaScript a CMS?

SalsaScript maps closer to PHP, or Python, than to a predefined way of putting content up by non-techies. There are, however, many CMS's that are built on top of SalsaScript, including Website in a Box (designed for political candidates), and others.

Is SalsaScript a CRM?

SalsaScript was built to expand and enhance the Salsa platform, which has been called a CRM. Salsa is primarily an efficient and effective way of organizing online, and SalsaScript is the language it's built on.