Skip to content

Instantly share code, notes, and snippets.

Web Design Contract

Based on Contract Killer, an open-source contract for web developers.

Summary:

I’ll always do my best to fulfill your needs and meet your expectations, but it’s important to have things written down so that we both know what’s what, who should do what and when, and what will happen if something goes wrong. In this contract you won’t find any complicated legal terms or long passages of unreadable text. I have no desire to trick you into signing something that you might later regret. What I do want is what’s best for both parties, now and in the future.

So in short;

You ([CLIENT COMPANY]), located at [CLIENT ADDRESS] are hiring me ([DEVELOPER]) located at [DEVELOPER ADDRESS] to design and develop a web site for the estimated total price of [QUOTE] as outlined in our previous correspondence.

@andyknapp
andyknapp / init.coffee
Last active December 17, 2017 21:57
atom-sync-settings
# Your init script
#
# Atom will evaluate this file each time a new window is opened. It is run
# after packages are loaded/activated and after the previous editor state
# has been restored.
#
# An example hack to log to the console when each text editor is saved.
#
# atom.workspace.observeTextEditors (editor) ->
# editor.onDidSave ->
@andyknapp
andyknapp / nav.js
Created December 19, 2013 22:06
responsive menu adapted from _s to be mobile first. bare bones
( function() {
var container, button, menu;
container = document.getElementById( 'site-navigation' );
if ( ! container )
return;
button = container.getElementsByTagName( 'h1' )[0];
if ( 'undefined' === typeof button )
return;
@andyknapp
andyknapp / remove-submenu.php
Created November 14, 2013 01:11
remove WP submenu pages from dashboard for gravity forms
function ak_remove_submenu_pages() {
if( !current_user_can('administrator') ) {
remove_submenu_page( 'gf_edit_forms', 'gf_edit_forms' );
remove_submenu_page( 'gf_edit_forms', 'gf_new_form' );
remove_submenu_page( 'gf_edit_forms', 'gf_new_formf_help' );
// remove_submenu_page( 'gf_edit_forms', 'gf_entries' );
remove_submenu_page( 'gf_edit_forms', 'gf_settings' );
remove_submenu_page( 'gf_edit_forms', 'gf_export' );
remove_submenu_page( 'gf_edit_forms', 'gf_update' );
remove_submenu_page( 'gf_edit_forms', 'gf_addons' );
@andyknapp
andyknapp / excerpt
Created November 7, 2013 19:05
Replace WP's default [...] after an excerpt to the permalink
function new_excerpt_more( $more ) {
return ' <a class="read-more" href="'. get_permalink( get_the_ID() ) . '">Read More</a>';
}
add_filter( 'excerpt_more', 'new_excerpt_more' );
@andyknapp
andyknapp / childpg-menu
Created October 31, 2013 18:16
Display a menu of child pgs on parent pg
<?php
$children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0&sort_column=menu_order');
if ($children) { ?>
<section class="child-menu parent-pg">
<ul>
<li class="icon-arrow"></li>
<?php echo $children; ?>
</ul>
</section>
@andyknapp
andyknapp / menu-class.js
Created October 10, 2013 16:35
add a class to menu item based on matching (absolute) urls.
jQuery(document).ready(function($){
// Get current url
// Select an a element that has the matching href and apply a class of 'active'. Also prepend a - to the content of the link
var url = window.location.href;
$('.menu a[href="'+url+'"]').addClass('current_menu_item');
});
@andyknapp
andyknapp / wp-breadcrumbs.php
Last active December 24, 2015 07:39
WordPress breadcrumbs
<?php
global $post; // first check if pg has parent
if ( is_page() && $post->post_parent ) { ?>
<section class="child-menu">
<?php
$parent_url = get_permalink($post->post_parent);
$parent_title = get_the_title($post->post_parent);
if ( $parent_url != the_title('', '', false) ) {
echo '<a class="sub-child" href='. $parent_url . '>' . $parent_title . '</a> <span>&raquo;</span> ';
@andyknapp
andyknapp / functions.php
Created August 22, 2013 15:43
expand editor role capabilities to include gravity forms
function add_grav_forms(){
$role = get_role('editor');
$role->add_cap('gform_full_access');
}
add_action('admin_init','add_grav_forms');
@andyknapp
andyknapp / functions.php
Created August 22, 2013 15:36
remove WP dashboard widgets
function ak_remove_dashboard_widgets() {
remove_meta_box( 'dashboard_quick_press', 'dashboard', 'side' );
remove_meta_box( 'dashboard_primary', 'dashboard', 'side' );
remove_meta_box( 'dashboard_secondary', 'dashboard', 'side' );
remove_meta_box( 'dashboard_incoming_links', 'dashboard', 'normal' );
remove_meta_box( 'dashboard_recent_comments', 'dashboard', 'normal');
}
add_action('wp_dashboard_setup', 'ak_remove_dashboard_widgets' );