├── .gitignore ├── culture ├── how-we-play │ └── README.md ├── food-and-drink │ └── README.md ├── our-space │ └── README.md ├── knowledge-sharing │ └── README.md ├── our-foundation │ └── README.md ├── README.md └── remote │ └── README.md ├── almanac ├── README.md ├── IE9.md ├── IE11.md ├── Safari.md └── general.md ├── code-style ├── git │ ├── merge.png │ ├── rebase.png │ ├── ISSUE_TEMPLATE.md │ ├── .gitmessage │ └── PULL_REQUEST_TEMPLATE.md ├── php │ ├── php-logo.png │ └── README.md ├── authentication │ ├── password_strength.png │ └── README.md ├── README.md ├── ruby │ └── README.md ├── all_code │ └── README.md ├── markdown │ └── README.md ├── rails │ └── README.md ├── code_reviews │ └── README.md ├── javascript │ ├── js.svg │ └── README.md ├── readme │ └── README.md └── pattern_libraries │ └── README.md ├── interviews ├── fail-icon.png ├── pass-icon.png ├── feedback-link.gif └── technical-exercises.md ├── services ├── alfred │ ├── alfred.png │ └── README.md ├── jira │ ├── jira-logo.png │ └── README.MD ├── codepen │ ├── codepen.png │ └── README.md ├── 1password │ ├── 1Password.png │ └── README.md ├── mailchimp │ ├── mailchimp.png │ └── README.md ├── invision │ ├── invision-logo.png │ └── README.md ├── browserstack │ ├── browserstack.png │ ├── browserstack_testing.png │ └── README.md ├── slack │ ├── slack-notifications.png │ └── README.md ├── circleci │ └── README.md ├── code_climate │ └── README.md ├── README.md ├── zenhub │ └── README.md ├── dropbox │ └── README.md ├── sendgrid │ └── README.md └── harvest │ └── README.md ├── foundry ├── README.md ├── Foundry-composition.md └── foundry_governance.md ├── security ├── security_policy_compliance │ ├── filevault.png │ ├── keydetails.png │ ├── pinentry.png │ ├── verified.png │ ├── macos-updates-mas.png │ ├── 1password-otp-select.png │ ├── 1password-qr-reader.png │ ├── ios-passcode-status.png │ ├── macos-updates-system.png │ ├── android-passcode-status1.png │ ├── android-passcode-status2.png │ ├── time-machine-disk-status.png │ ├── README.md │ ├── filevault.md │ ├── mac-updates.md │ ├── timemachine.md │ ├── windows-policy-checks.ps1 │ ├── linux-policy-check.sh │ ├── two-factor-authentication.md │ ├── devices.md │ ├── policy-checks.sh │ └── verified-commits.md ├── README.md └── security_principles │ └── README.md ├── software ├── sublime │ └── README.md ├── README.md ├── vim │ └── README.md ├── cms │ └── README.md ├── ssh │ └── README.md └── apache │ └── README.md ├── design ├── README.md ├── design-fed_core_values.md ├── design-design_reviews.md ├── design-design_tools.md └── design-file_organization.md ├── office ├── printer.md └── email-signature.md ├── labs_process.md ├── platforms ├── cms.md ├── drupal.md ├── craftcms.md └── hosting.md ├── web-fundamentals ├── README.md ├── build-tools-and-project-setup │ └── README.md └── html-css │ └── README.md ├── abstract-tips.md ├── README.md ├── meetups └── README.md ├── naming_conventions └── servers.md ├── SUMMARY.md ├── project_management ├── base-hub.md ├── kickoff_example.md ├── site_completeness_checklist.md └── README.md ├── laptop └── README.md ├── apprenticeship └── README.md ├── career ├── README.md └── tech-lead-role.md ├── development_process └── README.md └── accessibility ├── keyboard-accessibility └── keyboard-accessibility.md └── introduction └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | _book 2 | .DS_Store -------------------------------------------------------------------------------- /culture/how-we-play/README.md: -------------------------------------------------------------------------------- 1 | # How We Play 2 | 3 | - **Volley Pong** 4 | - **Parties** 5 | -------------------------------------------------------------------------------- /almanac/README.md: -------------------------------------------------------------------------------- 1 | # Sparkbox Almanac 2 | 3 | Our evolving list of browser bugs and quirks. 4 | -------------------------------------------------------------------------------- /code-style/git/merge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/code-style/git/merge.png -------------------------------------------------------------------------------- /code-style/git/rebase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/code-style/git/rebase.png -------------------------------------------------------------------------------- /interviews/fail-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/interviews/fail-icon.png -------------------------------------------------------------------------------- /interviews/pass-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/interviews/pass-icon.png -------------------------------------------------------------------------------- /code-style/php/php-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/code-style/php/php-logo.png -------------------------------------------------------------------------------- /services/alfred/alfred.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/services/alfred/alfred.png -------------------------------------------------------------------------------- /services/jira/jira-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/services/jira/jira-logo.png -------------------------------------------------------------------------------- /interviews/feedback-link.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/interviews/feedback-link.gif -------------------------------------------------------------------------------- /services/codepen/codepen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/services/codepen/codepen.png -------------------------------------------------------------------------------- /culture/food-and-drink/README.md: -------------------------------------------------------------------------------- 1 | # Food & Drink 2 | 3 | - **Friday Lunches** 4 | - **Snacks** 5 | - **Coffee** 6 | -------------------------------------------------------------------------------- /services/1password/1Password.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/services/1password/1Password.png -------------------------------------------------------------------------------- /services/mailchimp/mailchimp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/services/mailchimp/mailchimp.png -------------------------------------------------------------------------------- /services/invision/invision-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/services/invision/invision-logo.png -------------------------------------------------------------------------------- /culture/our-space/README.md: -------------------------------------------------------------------------------- 1 | # Our Space 2 | 3 | - **Device Wall** 4 | - **Makerbox** 5 | - **Our Tools** 6 | - **Wardrobe Wall** 7 | -------------------------------------------------------------------------------- /services/browserstack/browserstack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/services/browserstack/browserstack.png -------------------------------------------------------------------------------- /services/slack/slack-notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/services/slack/slack-notifications.png -------------------------------------------------------------------------------- /code-style/authentication/password_strength.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/code-style/authentication/password_strength.png -------------------------------------------------------------------------------- /foundry/README.md: -------------------------------------------------------------------------------- 1 | # Foundry 2 | 3 | - **[Foundry Governance](foundry_governance.md)** 4 | - **[Foundry Composition](Foundry-composition.md)** 5 | -------------------------------------------------------------------------------- /services/browserstack/browserstack_testing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/services/browserstack/browserstack_testing.png -------------------------------------------------------------------------------- /security/security_policy_compliance/filevault.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/security/security_policy_compliance/filevault.png -------------------------------------------------------------------------------- /security/security_policy_compliance/keydetails.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/security/security_policy_compliance/keydetails.png -------------------------------------------------------------------------------- /security/security_policy_compliance/pinentry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/security/security_policy_compliance/pinentry.png -------------------------------------------------------------------------------- /security/security_policy_compliance/verified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/security/security_policy_compliance/verified.png -------------------------------------------------------------------------------- /software/sublime/README.md: -------------------------------------------------------------------------------- 1 | # Sublime 2 | 3 | ![Sublime in Action](http://i.imgur.com/45niD1Y.jpg) 4 | 5 | A cross-platform text editor. It's OK. 6 | -------------------------------------------------------------------------------- /security/security_policy_compliance/macos-updates-mas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/security/security_policy_compliance/macos-updates-mas.png -------------------------------------------------------------------------------- /security/security_policy_compliance/1password-otp-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/security/security_policy_compliance/1password-otp-select.png -------------------------------------------------------------------------------- /security/security_policy_compliance/1password-qr-reader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/security/security_policy_compliance/1password-qr-reader.png -------------------------------------------------------------------------------- /security/security_policy_compliance/ios-passcode-status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/security/security_policy_compliance/ios-passcode-status.png -------------------------------------------------------------------------------- /security/security_policy_compliance/macos-updates-system.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/security/security_policy_compliance/macos-updates-system.png -------------------------------------------------------------------------------- /security/security_policy_compliance/android-passcode-status1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/security/security_policy_compliance/android-passcode-status1.png -------------------------------------------------------------------------------- /security/security_policy_compliance/android-passcode-status2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/security/security_policy_compliance/android-passcode-status2.png -------------------------------------------------------------------------------- /security/security_policy_compliance/time-machine-disk-status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkbox/standard/HEAD/security/security_policy_compliance/time-machine-disk-status.png -------------------------------------------------------------------------------- /services/circleci/README.md: -------------------------------------------------------------------------------- 1 | # CircleCI 2 | 3 | [![Image of CircleCI][producti]][product] 4 | 5 | Our continuous integration provider of choice. 6 | 7 | [product]: https://circleci.com/ 8 | [producti]: http://i.imgur.com/YJnCbbe.png 9 | -------------------------------------------------------------------------------- /services/code_climate/README.md: -------------------------------------------------------------------------------- 1 | # Code Climate 2 | 3 | [![Code Climate's Logo][producti]][product] 4 | 5 | Grades the quality and security of our code. 6 | 7 | [product]: https://codeclimate.com/ 8 | [producti]: http://i.imgur.com/se3QGh0.png 9 | -------------------------------------------------------------------------------- /software/README.md: -------------------------------------------------------------------------------- 1 | # Software 2 | 3 | Software [we](https://sparkbox.com) prefer to use when the need arises. 4 | 5 | * **[Apache](apache)** 6 | * **[SSH](ssh)** 7 | * **[Vim](vim)** 8 | * **[Sublime](sublime)** 9 | * **[CMS Platforms](cms)** 10 | -------------------------------------------------------------------------------- /services/codepen/README.md: -------------------------------------------------------------------------------- 1 | # Codepen 2 | 3 | [![Image of CodePen][codepen_logo]][codepen] 4 | 5 | A place to play, inspire, educate and share our love of the front end side of the web. 6 | 7 | [codepen]: https://codepen.io 8 | [codepen_logo]: ./codepen.png 9 | -------------------------------------------------------------------------------- /services/invision/README.md: -------------------------------------------------------------------------------- 1 | # InVision 2 | 3 | [![Image of InVision][invision_image]][invision] 4 | 5 | InVision is a design prototyping, collaboration, and workflow platform. 6 | 7 | [invision]: https://www.invisionapp.com 8 | [invision_image]: ./invision-logo.png 9 | -------------------------------------------------------------------------------- /almanac/IE9.md: -------------------------------------------------------------------------------- 1 | # IE9 2 | 3 | ## Calc and background-position 4 | `calc` in a background-position will crash the browser. 5 | 6 | See [footnote on caniuse](http://caniuse.com/#search=calc). 7 | 8 | > Partial support in IE9 refers to the browser crashing when used as a background-position value. 9 | -------------------------------------------------------------------------------- /culture/knowledge-sharing/README.md: -------------------------------------------------------------------------------- 1 | # Knowledge Sharing 2 | 3 | - **[Foundry](../../foundry)** 4 | - **[Apprenticeships](../../apprenticeship)** 5 | - **Maker Series** 6 | - **Lunch and learn** 7 | - **Speaking** 8 | - **Workshops** 9 | - **The Shift** 10 | - **[Meetups](../../meetups)** 11 | -------------------------------------------------------------------------------- /design/README.md: -------------------------------------------------------------------------------- 1 | # Design 2 | 3 | - **[Design Reviews](design-design_reviews.md)** 4 | - **[Design Tools](design-design_tools.md)** 5 | - **[Frontend Designer Core Values](design-fed_core_values.md)** 6 | - **[File Organization](design-file_organization.md)** 7 | - **[Foundry Image Guidelines](design-foundry_image_guidelines.md)** 8 | -------------------------------------------------------------------------------- /office/printer.md: -------------------------------------------------------------------------------- 1 | # Printing 2 | 3 | [![Image of the Product][printeri]][instructions] 4 | 5 | [Need instructions for setting up the printer?][instructions] 6 | 7 | [instructions]: https://docs.google.com/document/d/1gE4gptrLNACO5SRj40MUNwyUaoSdfyRkinOXWjJo5LY 8 | [printeri]: http://www.copierguide.com/wp-content/uploads/2014/03/tosh-5540.jpg 9 | -------------------------------------------------------------------------------- /services/browserstack/README.md: -------------------------------------------------------------------------------- 1 | # BrowserStack 2 | 3 | [![Image of BrowserStack][browserstack_image]][browserstack] 4 | 5 | Live, web based browser testing. 6 | 7 | ![Image of testing screenshot][browserstack_testing] 8 | 9 | [browserstack]: https://www.browserstack.com 10 | [browserstack_image]: ./browserstack.png 11 | [browserstack_testing]: ./browserstack_testing.png 12 | -------------------------------------------------------------------------------- /culture/our-foundation/README.md: -------------------------------------------------------------------------------- 1 | # Our Foundation 2 | 3 | - **Values** 4 | - Fluency 5 | - Humility 6 | - Empathy 7 | - **Transparency** 8 | - Coffee Hour 9 | - Open Door 10 | - #Biz 11 | - **KYC** 12 | - **Inclusiveness** 13 | - What is acceptable behavior? 14 | - How can we make _everyone_ feel welcome? 15 | - Where to have sensitive conversations 16 | - **Benefits & Handbook** 17 | -------------------------------------------------------------------------------- /code-style/README.md: -------------------------------------------------------------------------------- 1 | # Code Style 2 | 3 | * **[All Code](all_code)** 4 | * **[Ruby](ruby)** 5 | * **[Rails](rails)** 6 | * **[Pattern Libraries](pattern_libraries)** 7 | * **[Markdown](markdown)** 8 | * **[PHP](php)** 9 | * **[JavaScript](javascript)** 10 | * **[SCSS](scss)** 11 | * **[Git](git)** 12 | * **[Code Reviews](code_reviews)** 13 | * **[Readme](readme)** 14 | * **[Authentication](authentication)** 15 | -------------------------------------------------------------------------------- /services/mailchimp/README.md: -------------------------------------------------------------------------------- 1 | # Mailchimp 2 | 3 | ![Image of Mailchimp](mailchimp.png) 4 | 5 | Our go-to choice for setting up basic email lists or newsletters for clients. Mailchimp allows them to manage email lists, templates, and more without needing to write code. 6 | 7 | If clients need transactional email, or marketing emails + transactional email, we may want to consider using [Sendgrid](../sendgrid) instead. 8 | -------------------------------------------------------------------------------- /software/vim/README.md: -------------------------------------------------------------------------------- 1 | # Vim 2 | 3 | ![Vim is Rad by Ethan Muller](http://i.imgur.com/afOyr6p.png) 4 | 5 | _Vim is Rad by Ethan Muller_ 6 | 7 | ## Sparkbox Configs 8 | 9 | Many Sparkbox employees have published their custom Vim configuration to 10 | GitHub. Here are a few for your edification. 11 | 12 | * Jeremy Mack's [Vim Configuration of Champions][jmack] 13 | 14 | [jmack]: https://github.com/mutewinter/dot_vim 15 | -------------------------------------------------------------------------------- /services/jira/README.MD: -------------------------------------------------------------------------------- 1 | # Jira 2 | 3 | [![Image of Jira logo][jira-logo]][jira] 4 | 5 | We use Jira to manage our software projects. It is a standalone application but 6 | includes [integrations][jira-github] to expose Github project data. 7 | 8 | [jira-logo]: ./jira-logo.png 9 | [jira]: https://www.atlassian.com/software/jira 10 | [jira-github]: https://confluence.atlassian.com/adminjiracloud/connect-jira-cloud-to-github-814188429.html 11 | -------------------------------------------------------------------------------- /services/README.md: -------------------------------------------------------------------------------- 1 | # Services 2 | 3 | The services we use. We love them all. 4 | 5 | * **[1Password](1password)** 6 | * **[Alfred](alfred)** 7 | * **[BrowserStack](browserstack)** 8 | * **[CircleCI](circleci)** 9 | * **[Code Climate](code_climate)** 10 | * **[Dropbox](dropbox)** 11 | * **[Harvest](harvest)** 12 | * **[InVision](invision)** 13 | * **[SendGrid](sendgrid)** 14 | * **[Slack](slack)** 15 | * **[Jira](jira)** 16 | * **[Mailchimp](mailchimp)** 17 | -------------------------------------------------------------------------------- /services/zenhub/README.md: -------------------------------------------------------------------------------- 1 | # Zenhub 2 | 3 | [![Image of Zenhub][zenhub_image]][zenhub] 4 | 5 | Zenhub is an agile project management tool that integrates seamlessly into GitHub. Browser [extensions] are available for Chrome and Firefox. 6 | 7 | ![Image of boards view][zenhub_boards] 8 | 9 | [zenhub]: https://www.zenhub.com/ 10 | [zenhub_image]: ./zenhub.png 11 | [extensions]: https://www.zenhub.com/extension 12 | [zenhub_boards]: ./zenhub__boards-view.jpg 13 | -------------------------------------------------------------------------------- /almanac/IE11.md: -------------------------------------------------------------------------------- 1 | # IE11 2 | 3 | ## Distorted image with Flexbox 4 | Using Flexbox for vertical-centering will distort the image. Better to use another vertical-centering technique like [the translate 5 | approach](https://css-tricks.com/centering-css-complete-guide/). 6 | 7 | See [codepen example](http://codepen.io/chriscoyier/pen/lpema). 8 | 9 | ## SVG stealing focus when used inside a button 10 | Adding `focusable="false"` to the `svg` will prevent the svg from receiving focus. 11 | -------------------------------------------------------------------------------- /code-style/ruby/README.md: -------------------------------------------------------------------------------- 1 | # Ruby 2 | 3 | [![The Ruby Gem][producti]][product] 4 | 5 | Ruby is often our back-end language of choice. We use [Ruby on Rails][rails] for the server side implementation on many of our custom applications. 6 | 7 | ## Style 8 | 9 | * Follow the [The Ruby Style Guide][ruby_style]. 10 | 11 | [product]: http://www.ruby-lang.org/en/ 12 | [producti]: http://i.imgur.com/EUW07BU.gif 13 | [rails]: ../rails/README.md 14 | [ruby_style]: https://github.com/bbatsov/ruby-style-guide 15 | -------------------------------------------------------------------------------- /labs_process.md: -------------------------------------------------------------------------------- 1 | # How to Get Something Added to Labs 2 | 3 | 1. Do something cool _outside of_ client work (Examples of work you could include are: Open-Source Projects, Cotton Bureau submissions, Slides/Speaker Deck links, Videos of a Talk, Podcasts, Hackday Results, Dribbble Stuff...). 4 | 2. Add details about this project to the Labs yml file - https://github.com/sparkbox/seesparkbox.com/blob/labs-addition/static/data/labs/page-data.yml 5 | 3. Put in a PR and holler at Emily. 6 | 4. Bask in your Labsy glory. 7 | -------------------------------------------------------------------------------- /office/email-signature.md: -------------------------------------------------------------------------------- 1 | # Non-code 2 | 3 | A spot to record non-code things, e.g. email signatures! 4 | 5 | ## Email Signature 6 | 7 | ``` 8 | Jeremy Loyd 9 | Sparkbox, Creative Director 10 | 123 Webster Street, Studio 2 11 | Dayton, OH 45402 12 | 937.401.0915 13 | www.sparkbox.com 14 | ``` 15 | 16 | - First line - `Arial, Bold, 16px, #33717a` 17 | - Second line - `Arial, Bold, 13px, #86cfdd` 18 | - Address lines - `Arial, Regular, 13px, #33717a` 19 | - Link at the bottom - `Arial, Regular, 13px` 20 | -------------------------------------------------------------------------------- /services/dropbox/README.md: -------------------------------------------------------------------------------- 1 | # Dropbox 2 | 3 | ![Dropbox Website](http://i.imgur.com/w4R4VZP.png) 4 | 5 | ## Folders we Share 6 | 7 | * **Sparbox Bookshelf** 8 | * **Developer Videos** 9 | * **SoftwareLicenses** 10 | * [**SparkboxVault**][sparkbox_1password] 1password vault for shared credentials, servers and identities. 11 | 12 | ## How to Get Invited 13 | 14 | The longer someone has been at the company the more of these folders they have 15 | access to. So far, Dropbox has no public listing of these directories. Maybe 16 | we could build something... 17 | 18 | [sparkbox_1password]: ../../software/1password 19 | -------------------------------------------------------------------------------- /services/1password/README.md: -------------------------------------------------------------------------------- 1 | # [1Password][1password] 2 | 3 | [![1password][1password_image]][1password] 4 | 5 | We use 1Password to keep our logins, passwords, notes, databases, and servers secure. New Sparkboxers will be invited to join Sparkbox 1Password for Teams during onboarding. Follow the steps provided in the Google document, Sparkbox 1Password Guide, to configure your account. 6 | 7 | > With great power comes great responsibility 8 | > ~ Uncle Ben 9 | 10 | Authenticated assets for Sparkbox and many of our clients are maintained in 1Password. Be mindful of this and use appropriately. 11 | 12 | [1password]: https://1password.com 13 | [1password_image]: ./1Password.png 14 | -------------------------------------------------------------------------------- /services/alfred/README.md: -------------------------------------------------------------------------------- 1 | # Alfred 2 | 3 | [![Image of Alfred][alfred_image]][alfred] 4 | 5 | Alfred is a productivity app for Max OS which boosts your efficiency. 6 | 7 | # Find apps & files 8 | Launch apps and find files without lifting your fingers from the keyboard. 9 | 10 | * Search the web 11 | * Calculate 12 | * Spell & define 13 | * System Commands 14 | * Quick look 15 | * Large type 16 | * Usage stats 17 | * Clipboard history 18 | * Snippet expansion 19 | * Workflows 20 | * Hotkeys 21 | * Navigation & actions 22 | * Control iTunes 23 | * Recent documents 24 | * Theming 25 | * Email 26 | * 1Password 27 | * Default searches 28 | * Sync settings 29 | * File buffer 30 | * Shell integration 31 | * View contacts 32 | 33 | [alfred]: https://www.alfredapp.com/ 34 | [alfred_image]: ./alfred.png 35 | -------------------------------------------------------------------------------- /almanac/Safari.md: -------------------------------------------------------------------------------- 1 | # Safari 2 | 3 | ## Persistent Scrollbar Quirk 4 | 5 | On macOS, the default display is to only display a scrollbar during the action of scrolling. The user can alternatively enable the scrollbar to always be visible. With this option enabled, the value of [`window.innerWidth`](https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth) does not equal the same as a CSS media query. The difference will be about 15 pixels, which is the width of the scrollbar on Safari. This can cause a perceived misfiring of events that should occur at a specific screen size in both the JS and CSS. 6 | 7 | The remedy to this problem is to instead use [`document.body.clientWidth`](https://developer.mozilla.org/en-US/docs/Web/API/Element/clientWidth) to capture the document width, which will get the width without the added scrollbar width. 8 | -------------------------------------------------------------------------------- /code-style/git/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | # IF THIS ISSUE IS A STORY 2 | ## [_Title relating to the story_] 3 | ### Description: 4 | [_Briefly explain the work to be done._] 5 | 6 | **Definition of Done:** This story can be closed when... [details]. 7 | 8 | ### Spec: 9 | #### Requirements: 10 | [_List the expected functionality of the new feature._] 11 | 12 | #### Design: 13 | [_Include relevant images or links_] 14 | 15 | --- 16 | # IF THIS ISSUE IS A BUG REPORT 17 | ## [_Title relating to where the bug is_] 18 | ### Description: 19 | [_Briefly explain what the bug is, and why it is a bug._] 20 | 21 | ### To Recreate: 22 | [_Helpful instructions about how to recreate a bug._] 23 | 24 | ### Meta Information: 25 | **Browser**: [_i.e. Chrome 66_] 26 | 27 | **Device**: [_i.e. macOS / Retina 13" & Thunderbolt 27"_] 28 | 29 | ### Screenshots: 30 | [_Attach any screenshots of the bug._] 31 | -------------------------------------------------------------------------------- /software/cms/README.md: -------------------------------------------------------------------------------- 1 | # Content Management Systems 2 | 3 | ## Drupal 4 | 5 | - Perfect for enterprise teams 6 | - Runs on PHP 7 | - Highly customizable 8 | - Requires a lot of backend customization 9 | 10 | ([website](https://www.drupal.org/)) 11 | 12 | ## Craft 13 | 14 | - Perfect for small teams & startups 15 | - Runs on PHP 16 | - Highly customizable 17 | - Requires little backend customization 18 | 19 | ([website](https://craftcms.com/)) 20 | 21 | ## Squarespace 22 | 23 | - Perfect for small teams & startups 24 | - Website builder with the option to customize some code 25 | - Moderately customizable 26 | - Requires no backend customization 27 | 28 | ([website](https://www.squarespace.com/)) 29 | 30 | ## Other CMSs 31 | 32 | Sparkbox also has extensive experience with: 33 | 34 | - ExpressionEngine ([website](https://expressionengine.com/)) 35 | - WordPress ([website](https://wordpress.org/)) 36 | -------------------------------------------------------------------------------- /code-style/all_code/README.md: -------------------------------------------------------------------------------- 1 | # All Code 2 | ## General Guidelines 3 | 4 | The following guidelines apply to all code. 5 | 6 | * Write your code in whichever editor you prefer 7 | * Use two spaces for indentation 8 | * Delete your [trailing whitespace][space] 9 | * Each file should have an empty line at the end 10 | * Leave comments when necessary that follow the comment style of the particular language 11 | * When naming things such as variables or classes, be descriptive. Using abbreviations, for example, may not be easy to understand for other developers. 12 | 13 | Need help? A lot of these things can be controlled within the settings of the particular editor you are using. There also extensions such as [Prettier][prettier] that can automatically format your code for you. 14 | 15 | ![Code Quality][xkcd] 16 | 17 | [space]: http://programmers.stackexchange.com/questions/121555/why-is-trailing-whitespace-a-big-deal 18 | [xkcd]: http://imgs.xkcd.com/comics/code_quality_2.png 19 | [prettier]: https://prettier.io/ 20 | -------------------------------------------------------------------------------- /services/sendgrid/README.md: -------------------------------------------------------------------------------- 1 | # SendGrid 2 | 3 | [![SendGrid Logo][producti]][product] 4 | 5 | Our SMTP provider of choice. 6 | 7 | ## Issues 8 | 9 | If emails look like they are being sent to SendGrid, but aren't being delivered and aren't showing in the logs, then they're probably being deferred. 10 | 11 | Click on `Email Activity` in the navbar, then under `Search Options` select `Deferred`. If the emails that are being lost show up here with: 12 | 13 | ``` 14 | Reason: 553 4.1.8 : Domain of sender address bounces+24253-e2e9-emailname=some_domain.com@email.seesparkbox.com does not resolve. 15 | ``` 16 | 17 | then there is most likely a DNS issue. 18 | 19 | _Solution:_ 20 | 21 | - Click on the `Developers` link in the navbar. 22 | - Click `Whitelabel Wizard` in the right side nav. 23 | - Walk through the steps and ensure that the DNS records have been added to [dnsimple][dnsimple]. 24 | 25 | [product]: https://sendgrid.com/ 26 | [producti]: https://keen.io/docs/_images/sendgrid_logo.png 27 | [dnsimple]: http://dnsimple.com 28 | -------------------------------------------------------------------------------- /platforms/cms.md: -------------------------------------------------------------------------------- 1 | # CMS Platforms 2 | 3 | For many years, Sparkbox has relied on and recommended [ExpressionEngine] as the CMS of choice. In fact, ExpressionEngine continues to power https://sparkbox.com. Today, we recommend one of two CMS platforms: 4 | 5 | ## [CraftCMS] 6 | 7 | "EE" proved flexible, extensible, customizable, and powerful for many years. As it's de-facto successor, [CraftCMS] builds on the strengths of ExpressionEngine, while making first class many of the features for which the [Pixel and Tonic plugins][pixelandtonic] were renowned. 8 | 9 | [Read about Sparkbox best practices and recommendations](./craftcms.md) 10 | 11 | ## [Drupal] 12 | 13 | Drupal provides a extremely extensible and robust CMS platform well suited for complex and enterprise scenarios. 14 | 15 | [Read about Sparkbox best practices and recommendations](./drupal.md) 16 | 17 | [CraftCMS]: https://craftcms.com 18 | [Drupal]: https://www.drupal.org/ 19 | [pixelandtonic]: https://pixelandtonic.com/blog/eeharbor-acquires-ee-addons 20 | [ExpressionEngine]: https://expressionengine.com 21 | -------------------------------------------------------------------------------- /code-style/markdown/README.md: -------------------------------------------------------------------------------- 1 | # Markdown 2 | 3 | [![The Markdown Mark][producti]][product] 4 | 5 | Markdown is a terse markup language that produces HTML. 6 | 7 | ## Style 8 | 9 | * Prefer footnotes to inline [links][links] 10 | 11 | ```markdown 12 | // bad 13 | Sweet [link](http://linkzilla.biz) coming. 14 | 15 | // good 16 | Sweet [link][link] coming. 17 | 18 | [link]: http://linkzilla.biz 19 | 20 | // also good 21 | Sweet [link][] coming. 22 | 23 | [link]: http://linkzilla.biz 24 | ``` 25 | 26 | * Use hash marks for consistent header markup 27 | 28 | ```markdown 29 | // bad 30 | This is an inconsistent H1 31 | ================= 32 | 33 | ## Check Out My H2 34 | 35 | ### Inconsistent H3 36 | 37 | // good 38 | 39 | # This is still a big, friendly H1 40 | 41 | ## Check Out My H2 42 | 43 | ### My H3 looks like everything else now 44 | ``` 45 | 46 | [product]: http://daringfireball.net/projects/markdown/ 47 | [producti]: http://i.imgur.com/TUYGZBI.png 48 | [links]: http://daringfireball.net/projects/markdown/syntax#link 49 | -------------------------------------------------------------------------------- /almanac/general.md: -------------------------------------------------------------------------------- 1 | # General issues 2 | 3 | ## Interplay between position fixed with transformed ancestors 4 | 5 | By default `position: fixed` elements are positioned relative to the viewport which is useful for creating "visually hidden" classes. However if a parent of a `position: fixed` element has a `transform` then that ancestor is the new context. The [spec][spec] states it this way: 6 | 7 | > When an ancestor has the transform property set to something different than none then this ancestor is used as container instead of the viewport 8 | 9 | ### Test case 10 | 11 |

See the Pen gLZmRq by Adam Simpson (@asimpson) on CodePen.

12 | 13 | 14 | [spec]: https://developer.mozilla.org/en-US/docs/Web/CSS/position 15 | -------------------------------------------------------------------------------- /foundry/Foundry-composition.md: -------------------------------------------------------------------------------- 1 | # Foundry Composition and Tips 2 | 3 | + **Headings help.** Include article headings so they can easily be incorporated into the "Quick Read" layout. Mark them with *Heading 2* style in the Google doc. 4 | + **Format for easy posting.** To help with efficiency when moving Google articles into EE, use a single return instead of a double return for paragraphs. It looks funny in Google doc, but is a great help when moving into EE. 5 | ![alt text](https://dl.dropboxusercontent.com/u/15801928/foundry-image.jpg "Example") 6 | + **Link, link, link.** Linking to articles shows the research process and thoughtful approach. Link to other Foundry articles and sources outside of the Foundry. 7 | * Hyperlink to words in the article 8 | * Use descriptive words when hyperlinking. Avoid "click here" or "this post" 9 | + **Double check images.** Proceed with caution when including images in articles. If unsure, check with a peer or [read more on copyright and image use]( https://www.upwork.com/blog/2010/02/what-every-freelance-writer-bloggershould-know-about-internet-copyright-and-libel-laws/). 10 | -------------------------------------------------------------------------------- /code-style/rails/README.md: -------------------------------------------------------------------------------- 1 | # Rails 2 | 3 | [![The Ruby on Rails Logo][producti]][product] 4 | 5 | We use Ruby on Rails as the back-end for many of our custom apps. 6 | 7 | ## Style 8 | 9 | * Follow the [The Rails Style Guide][rails_style]. 10 | 11 | ## Gems 12 | 13 | We often use these gems in our projects. 14 | 15 | * [Devise](https://github.com/plataformatec/devise) for authentication 16 | * [CanCan](https://github.com/ryanb/cancan) for authorization 17 | * [Capistrano](https://github.com/capistrano/capistrano) for deployment 18 | * [SASS](http://sass-lang.com/) for CSS 19 | * [Simple Form](https://github.com/plataformatec/simple_form) for forms 20 | 21 | ## Services 22 | 23 | We often use these services with our Rails projects. 24 | 25 | * [CircleCI](https://circleci.com/) for continuous integration 26 | * [Rollbar](https://rollbar.com/) for exception reporting 27 | * [Coveralls](https://coveralls.io/) for code coverage 28 | * [Code Climate](https://codeclimate.com/) for code quality and security 29 | 30 | [product]: http://rubyonrails.org/ 31 | [producti]: http://i.imgur.com/O26yFrb.png 32 | [rails_style]: https://github.com/bbatsov/rails-style-guide 33 | -------------------------------------------------------------------------------- /services/harvest/README.md: -------------------------------------------------------------------------------- 1 | # Harvest 2 | 3 | If you'd like to use the HH:MM format locally you can! 4 | 5 | ### Prior to the 2017 Update 6 | 7 | By default, Harvest's time format is in decimal. To change this (locally) enter the following command in terminal: 8 | ```defaults write com.getharvest.harvestxapp TimeFormat hours_minutes``` 9 | 10 | ### 2017 Update 11 | 12 | To read your settings, run: 13 | ``` 14 | defaults read ~/Library/Containers/com.getharvest.harvestxapp/Data/Library/Preferences/group.com.getharvest.Harvest.Documents.plist 15 | ``` 16 | 17 | To change the time format to HH:MM, run 18 | 19 | ``` 20 | defaults write ~/Library/Containers/com.getharvest.harvestxapp/Data/Library/Preferences/group.com.getharvest.Harvest.Documents.plist TimeFormat hours_minutes 21 | ``` 22 | 23 | Restart the Harvest App, and it should now display HH:MM (I tested this) 24 | 25 | To change back to decimal, run: 26 | ``` 27 | defaults write ~/Library/Containers/com.getharvest.harvestxapp/Data/Library/Preferences/group.com.getharvest.Harvest.Documents.plist TimeFormat decimal 28 | ``` 29 | 30 | Thanks to [this gist](https://gist.github.com/rcdilorenzo/ddee4da296e157e48b1efd0d1a193c3d) 31 | -------------------------------------------------------------------------------- /web-fundamentals/README.md: -------------------------------------------------------------------------------- 1 | # Sparkbox Web Fundamentals 2 | 3 | _At its core, Sparkbox is our people. We exist to inspire and empower a better Web. We do this through our work with customers—crafting beautiful web products that inspire others to build right._ 4 | 5 | The Sparkbox web fundamentals provide a guide to topics, skills, and capabilities we believe are essential for building at Sparkbox. We use this collection as a guide for onboarding, [career growth], and our [apprenticeship]. 6 | 7 | ## How to interpret Sparkbox Web Fundamentals 8 | There are a lot of topics and skills that go into building for the web. We recognize that there is more than any one person can be an expert in. We try to make it clear where a [Sparkbox Developer 1][career growth] should land between _fluence_ or _awareness_ in a topic. 9 | 10 | * [HTML & CSS][html-css] 11 | * [Build & Process Setup][build-tooling] 12 | 13 | 14 | [career growth]: https://www.figma.com/proto/0FdKsjKvwf2H6KQpgRvT9Q/Sparkbox-Developer-Career-Growth-Framework?scaling=scale-down-width&hide-ui=1 15 | [apprenticeship]: https://apprentices.sparkbox.com 16 | [html-css]: ./html-css/ 17 | [build-tooling]: ./build-tools-and-project-setup/ 18 | -------------------------------------------------------------------------------- /abstract-tips.md: -------------------------------------------------------------------------------- 1 | # Abstract Checklist: Tips for Writing a Good Session Abstract 2 | *Thoughts borrowed and condensed from Jim Holmes (frazzleddad.blogspot.com)* 3 | 4 | + **Communicate the value.** Does it explain the value of what folks will get from your session? 5 | + **Focus.** Is it overly broad? If so, focus on specifics. 6 | + **Titles matter.** Make sure it’s catchy and showcases what your session is about. 7 | + **Explain what attendees will get out of the session.** Make it clear what your attendees will learn during your session. “You’ll leave this session with a handle on ways to smooth out your project’s environment” or “This session will show you a great system for boosting customer collaboration and increasing your code’s quality” are good examples. 8 | + **Examples.** Include examples of what will be discussed. 9 | + **Format.** Introduction, body, conclusion. Hook in the opening. 10 | + **Include feedback.** Have you presented this topic before and received positive, meaningful feedback? If so, include. 11 | + **Keep it concise.** One to two paragraphs should be enough. 12 | + **Do you need a bio?** If you need to include a bio, make sure it’s not longer than your abstract. 13 | -------------------------------------------------------------------------------- /security/README.md: -------------------------------------------------------------------------------- 1 | # Security 2 | 3 | ## Principles 4 | 5 | - Sparkbox employees and clients should understand our philosophy on 6 | information security. 7 | - Sparkbox employees and clients should have confidence that their intellectual 8 | property and assets are reasonably safe when in our care. 9 | - Sparkbox would prefer not to be in the business of maintaining critical 10 | client resources where possible. 11 | - Sparkbox will act openly and dutifully with employees and clients to resolve 12 | security concerns. 13 | - We’ll use this to make smart decisions about security, data, and digital 14 | asset risk. 15 | 16 | ## General Policy 17 | 18 | No policy can set forth rules to cover every possible situation. Instead, 19 | Sparkbox Security Policies are designed to express our philosophy and set forth 20 | principles and guidelines for the intelligent use of resources. All such uses 21 | should demonstrate a sense of responsibility and respect for critical business 22 | assets of Sparkbox and its clients. When in doubt about any matter related to 23 | security, employees should communicate quickly and clearly in the #security 24 | Slack channel. 25 | 26 | ## Table of Contents 27 | 28 | - **[Security Principles for Developers](security_principles)** 29 | - **[Security Policy Compliance Instructions](security_policy_compliance)** 30 | -------------------------------------------------------------------------------- /security/security_policy_compliance/README.md: -------------------------------------------------------------------------------- 1 | # Security Policy Compliance 2 | 3 | ## Instructions 4 | 5 | The following guides provide instructions for checking the status of and 6 | implementing important aspects of the Sparkbox Security Policy. 7 | 8 | Screenshots can be captured using [macOS][macOS screenshots], [iOS][iOS 9 | screenshots], or Android. Reach out to the #security Slack channel with 10 | questions or challenges. 11 | 12 | 13 | - [Recommended Mac Updates] 14 | - [Time Machine Backup Disk Encryption] 15 | - [Filevault Full Disk Encryption] 16 | - [Device Security] 17 | - [Verified Git Commits] 18 | 19 | If you wish, you can run the following in a terminal to check for 20 | [Recommended Mac Updates], [Time Machine Backup Disk Encryption], and 21 | [FileVault Full Disk Encryption]. 22 | 23 | ``` 24 | curl -s https://raw.githubusercontent.com/sparkbox/standard/main/security/security_policy_compliance/policy-checks.sh | sh 25 | ``` 26 | 27 | 28 | [Recommended Mac Updates]: ./mac-updates.md 29 | [Device Security]: ./devices.md 30 | [Time Machine Backup Disk Encryption]: ./timemachine.md 31 | [Filevault Full Disk Encryption]: ./filevault.md 32 | [Verified Git Commits]: ./verified-commits.md 33 | [macOS screenshots]: https://support.apple.com/en-us/HT201361 34 | [iOS screenshots]: https://support.apple.com/en-us/HT200289 35 | -------------------------------------------------------------------------------- /security/security_policy_compliance/filevault.md: -------------------------------------------------------------------------------- 1 | # FileVault Full Disk Encryption 2 | 3 | FileVault is full-disk encryption for macOS and required for all Sparkbox laptops. If you setup your laptop with the [new laptop script][laptop] this has already been completed. This guide will help you determine if FileVault is enabled and, if necessary, how to enable it. 4 | 5 | ## Capturing Status on the Command Line 6 | 7 | macOS ships with a tool called `fdesetup` to manage FileVault from the command line. If you're comfortable with typing in commands, you can see if FileVault is already enabled by running: 8 | 9 | $ fdesetup status 10 | 11 | A message will print to the commnd line stating that FileVault is either `On` or `Off`. 12 | 13 | ## Capturing Status from System Preferences 14 | 15 | You can also check your system preferences to see the status of FileVault. From the Apple menu () click on `System Preferences...` and in the window that pops up choose `Security & Privacy` on the top row. Click `FileVault` near the top and you'll see a message indicating FileVault's status in the center of the window. 16 | 17 | ![FileVault in System Preferences](filevault.png) 18 | 19 | ## Setup 20 | 21 | If FileVault is off, then you need to complete this process using [Apple's FileVault setup instructions][apple]. 22 | 23 | [laptop]: https://github.com/sparkbox/laptop 24 | [apple]: https://support.apple.com/en-us/HT204837 25 | -------------------------------------------------------------------------------- /web-fundamentals/build-tools-and-project-setup/README.md: -------------------------------------------------------------------------------- 1 | # Sparkbox Web Fundamentals: Build Tools & Project Setup 2 | 3 | Turning raw code into a deployable site usually involves a build pipeline of 4 | some sort. 5 | 6 | Its essential that a [Sparkbox Developer 1][career growth] be able to... 7 | 8 | ## Bundlers 9 | ... explain the purpose of a JavaScript bundler like Webpack. They can identify the major sections of webpack.config.js. 10 | 11 | ## JavaScript Transpilers 12 | ... explain the role JavaScript transpilers such as Babel and TSC in our tool chain. 13 | 14 | ## Docker 15 | ... start up and use Docker containers for a project. 16 | 17 | ## Environment Variables 18 | ... show how environment variables are used to configure code for different environments. 19 | 20 | ## Deploying 21 | ... explain what it means to deploy code to various environments, and the implications. 22 | 23 | ## Deploy Targets 24 | ... name common deploy targets (test, staging, production), and knows how to specify the target for a deploy. 25 | 26 | ## Deploy Rollbacks 27 | ... describe what it means to rollback a deploy. 28 | 29 | ## Feature Flags 30 | ... explain _Feature Flags_ are and why we use them. They should be able to put new feature code (JS, CSS, & HTML) behind a flag to not effect other parts of the code. 31 | 32 | ## Continuous Integration 33 | ... describe how we use CircleCI, GitHub Actions, or another CI to run tests, build deploy artifacts, and other tasks. 34 | 35 | [career growth]: https://www.figma.com/proto/0FdKsjKvwf2H6KQpgRvT9Q/Sparkbox 36 | -------------------------------------------------------------------------------- /code-style/code_reviews/README.md: -------------------------------------------------------------------------------- 1 | # Code Review Process 2 | 3 | Code reviews should be happening at different stages in our development process. 4 | 5 | ## In the Flow 6 | 7 | Please utilize other Sparkboxers while you are working. Bounce ideas off of each other, get feedback, ask questions, debate different opinions. It's this level of care and detail about how the web should be built that has helped make us who we are. Debates on semantic class names, proper HTML elements, the right way to test something, etc. are always welcome and encouraged. Just keep it positive and friendly, and we will help to enrich and teach each other. 8 | 9 | ## Pull Requests 10 | 11 | PRs are the perfect place for code reviews to happen. Please use these as a place to ask questions about how/why things are done, make suggestions, give praise for an awesome solution to a problem, or use that new animated GIF that you've been dying to show off. Conversations here will only lead to better products in the end. 12 | 13 | ## The Lone Wolf 14 | 15 | Don't be a one person wolf pack. If for some reason we have a project with only one active team member, they should have PRs reviewed by another Sparkboxer. This gives that user someone else to bounce ideas off of and have some discussion about the project. It also keeps at least one other person up to speed on the project. 16 | 17 | ## Additional Reading 18 | 19 | - [Code Review](https://sparkbox.com/foundry/code_review) 20 | - [Stop Giving Depressing Code Reviews](https://sparkbox.com/foundry/stop_giving_depressing_code_reviews) 21 | -------------------------------------------------------------------------------- /foundry/foundry_governance.md: -------------------------------------------------------------------------------- 1 | # Roles 2 | 3 | ## Assistant Editor (Austin) 4 | - Monthly analysis of traffic for trends and other interesting notes 5 | - Plans out the pace of posting articles and promotes published pieces on Twitter 6 | - Typically does initial editing of articles for structure, flow, and content 7 | - Oversees making sure edits are being made and the article is progressing through the pipeline 8 | - Requests images from Designer 9 | 10 | ## Editor in Chief (Emily) 11 | - In charge of keeping the Foundry running healthily 12 | - Confronts any issues that would get in the way of having things run well 13 | - Occassionally does initial editing of articles for structure, flow, and content 14 | 15 | ## Authors 16 | - In charge of providing content, images, and any other needs for the post 17 | - Can get help from others as needed to accomplish that task 18 | - Enters the post in Expression Engine 19 | - Keep Assistant Editor informed and [update spreadsheet](https://docs.google.com/spreadsheets/d/1DQj8cepF4RCyXBPMuy8CjSIt3M4Cf7tzDl3X3GXwKhs/edit?pli=1#gid=0) to notify of progress 20 | - Need help thinking through your topic or post? Anyone involved in the Foundry would be happy to talk and listen. 21 | 22 | ## Designer(s) 23 | - Creates primary post image 24 | - Helps with other visual needs when requested (Jeremy assigns for each article) 25 | 26 | ## Peer Reviewer(s) 27 | - Checks for technical accuracy of content 28 | 29 | ## Copy Editor (Jody) 30 | - Final editor of articles. Ensures grammar, punctuation, spelling, etc. are correct 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Sparkbox Standard 2 | 3 | 4 | How [we][sparkbox] manage products. 5 | 6 | How we make things beautiful. 7 | 8 | How we write code. 9 | 10 | How we dance. 11 | 12 | * **[Almanac](/almanac)** _Our list of browser bugs and quirks._ 13 | * **[Apprenticeship](/apprenticeship)** _How we teach._ 14 | * **[Build Process](/build_process)** _How we build, deploy, and deliver._ 15 | * **[Career](./career)** _How career growth happens and descriptions of roles._ 16 | * **[Code Style](/code-style/README.md)** _The way we write documentation and code._ 17 | * **[Culture](/culture)** _How we Sparkbox._ 18 | * **[Design](/design)** _How we do design._ 19 | * **[Development Process](/development_process)** _How we develop._ 20 | * **[Foundry](/foundry)** _How we write on the Foundry._ 21 | * **[Platforms](/platforms)** _How we host applications and content._ 22 | * **[Meetups](/meetups)** _Our MO for preparing and facilitating meetups._ 23 | * **[Office](/office)** _How we interact with traditional office supplies and services._ 24 | * **[Project Management](/project_management/README.md)** _How we manage our projects._ 25 | * **[Security](/security)** _How we keep safe._ 26 | * **[Services we Use](/services)** _Dropbox, Skype, etc._ 27 | * **[Software](/software)** _Vim, Sublime, etc._ 28 | * **[Laptop Maintenance](/laptop/README.md)** _How we re-image machines and set new ones up._ 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | _Inspired by [Thoughtbot's Playbook][inspiration]_ 40 | 41 | [inspiration]: https://playbook.thoughtbot.com 42 | [sparkbox]: http://sparkbox.com 43 | -------------------------------------------------------------------------------- /meetups/README.md: -------------------------------------------------------------------------------- 1 | # Meetups 2 | 3 | How to run a meetup at Sparkbox. 4 | 5 | ## Website/Calendar 6 | 7 | - Parking - Someone needs to speak with the autobody shop next door to find out if they are ok with people parking there, and we should let them know the schedule. 8 | - Know/distribute Topic at least 3 weeks in advance (to have it before prior meetup would be ideal, so we can also announce at that) 9 | - Include the topics list 10 | - Backup topic 11 | 12 | ## Buildup 13 | 14 | **3 weeks before** 15 | 16 | - Email [Speaker Prep][speaker_prep] 17 | - Buffer tweets for next meetup (3wk topic, 1wk RSVP, day of feedback form) 18 | 19 | ## Day Of Meetup 20 | 21 | **9am** 22 | 23 | - [ ] Print this 24 | - [ ] Organize seats & food tables 25 | - [ ] Make sure we have drinks 26 | - [ ] Write upcoming events on the wall 27 | - [ ] Order food for 12pm 28 | 29 | **11am** 30 | 31 | - [ ] Signs on doors 32 | - [ ] Have a round-the-room question (best robot movie character, fav language, etc) 33 | 34 | **11:15am** 35 | 36 | - [ ] Ask round-the-room question 37 | 38 | **11:30am** 39 | 40 | - [ ] Announce upcoming events, meetups 41 | - [ ] Start video recording (as needed) 42 | - [ ] Start screen recording (as needed) 43 | - [ ] Introductions 44 | 45 | **12:00** 46 | 47 | - [ ] Food in building 48 | 49 | **1pm** 50 | 51 | - [ ] Cleanup (from all the food mess, etc) 52 | 53 | ## Food 54 | 55 | #### Pizza 56 | 57 | _Oregon Express (937-223-9205)_ 58 | 59 | - 2x Ranchero 60 | - 2x BLT 61 | - 1x Reuben 62 | - 1x Veggie 63 | 64 | _Wheat Penny (937.496.5268)_ 65 | 66 | - 1x Sicilian Gluten Free 67 | -------------------------------------------------------------------------------- /naming_conventions/servers.md: -------------------------------------------------------------------------------- 1 | # Server Naming Conventions 2 | 3 | Servers should be named consistently and in a manner in which they can be easily identifiable with regard to the client/property and purpose that they serve. We recommend the following naming conventions when creating/building new servers: 4 | 5 | ``` 6 | -- 7 | ``` 8 | 9 | - `domain-or-client-name`: this should be the name of the domain or client name the server will support, i.e. `sparkbox.com`, `merchantssecurity` or `dpandl` 10 | - `server-type`: this should be an acronym or short description of the type of server it is, which should typically be one of the following: 11 | - `web`: web server 12 | - `db`: database server 13 | - `lb`: load balancer 14 | - `app`: dedicated application server 15 | - `xx`: the two-digit server instance number, starting with `01` and increasing by 1 incrementally 16 | - `environment`: this should be the environment designation for the server, should typically be one of the following: 17 | - `prod`: production servers 18 | - `qa`: QA servers 19 | - `staging`: staging and client testing servers 20 | - `dev`: development and testing servers 21 | 22 | ### Examples 23 | 24 | - `sparkbox.com-lb01-prod` 25 | - `sparkbox.com-db01-prod` 26 | - `sparkbox.com-web01-prod` 27 | - `sparkbox.com-web02-prod` 28 | - `sparkbox.com-lb01-qa` 29 | - `sparkbox.com-db01-qa` 30 | - `sparkbox.com-web01-qa` 31 | - `sparkbox.com-web02-qa` 32 | - `merchantssecurity-lb01-prod` 33 | - `merchantssecurity-db01-prod` 34 | - `merchantssecurity-web01-prod` 35 | - `merchantssecurity-web02-prod` 36 | -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Summary 2 | 3 | * Community 4 | * [Meetups] 5 | * [Planning] 6 | * [Site Completeness Checklist] 7 | * Developing 8 | * [Style] 9 | * [Build & Deployment] 10 | * [Node & NPM] 11 | * [Drops Process] 12 | * [Almanac] 13 | * [General] 14 | * [IE9] 15 | * [IE11] 16 | * [Security] 17 | * [Principles] 18 | * [Two Factor Authentication] 19 | * [General Policy] 20 | * [Instructions] 21 | * [Recommended Mac Updates] 22 | * [Time Machine Backup Disk Encryption] 23 | * [Filevault Full Disk Encryption] 24 | * [Device Security] 25 | * [Verified Git Commits] 26 | 27 | [Meetups]: ./meetups/README.md 28 | [Planning]: ./project_management/README.md 29 | [Style]: ./style/README.md 30 | [Build & Deployment]: ./build_process/README.md 31 | [Node & NPM]: ./build_process/node.md 32 | [Security]: ./security/README.md 33 | [Almanac]: ./almanac/README.md 34 | [IE9]: ./almanac/IE9.md 35 | [IE11]: ./almanac/IE11.md 36 | [General]: ./almanac/general.md 37 | [Principles]: ./security/README.md#principles 38 | [Two Factor Authentication]: ./security/two-factor-authentication.md 39 | [General Policy]: ./security/README.md#general-policy 40 | [Instructions]: ./security/README.md#instructions 41 | [Recommended Mac Updates]: ./security/mac-updates.md 42 | [Time Machine Backup Disk Encryption]: ./security/timemachine.md 43 | [Filevault Full Disk Encryption]: ./security/filevault.md 44 | [Device Security]: ./security/devices.md 45 | [Verified Git Commits]: ./security/verified-commits.md 46 | [Drops Process]: ./build_process/drops.md 47 | [Site Completeness Checklist]: ./project_management/site_completeness_checklist.md 48 | -------------------------------------------------------------------------------- /project_management/base-hub.md: -------------------------------------------------------------------------------- 1 | This is an example of a centralized repository of project information. Having a clear, easy-to-use place that everyone can find what they need at any time is crucial, especially when handling large projects with lots of moving parts and teammembers. [Additional details on the Project Hub](http://sparkbox.com/foundry/project_hub). 2 | 3 | #Table of Contents 4 | - [Environments](#environments) 5 | - [Team & Roles](#team--roles) 6 | - [Content](#content) 7 | - [User Experience](#user-experience) 8 | - [Design](#design) 9 | - [Development & Technical](#development) 10 | - [Planning & Project Management](#planning--project-management) 11 | 12 | #Environments 13 | - [Pattern Library](#) 14 | - [QA Site](#) 15 | 16 | #Team & Roles 17 | - Pete Campbell - Accounts 18 | - Don Draper - Creative Director 19 | - Peggy Olsen - Content Strategist 20 | - Harry Crane - Media 21 | 22 | #Content 23 | 24 | ####[Sitemap & IA](#) 25 | Here is a description. 26 | 27 | ####[Content Audit](#) 28 | 29 | ####[Content Priority Guide](#) 30 | 31 | ####[Visual Assets Directory](#) 32 | 33 | 34 | #User Experience 35 | 36 | ####[User Research & Surveys](#) 37 | 38 | ####[Wireframes](#) 39 | 40 | ####[Prototypes](#) 41 | 42 | 43 | #Design 44 | 45 | ####[Element Collage](#) 46 | 47 | ####[Static Comps](#) 48 | 49 | 50 | #Development 51 | 52 | ####[Technical Strategy Document](#) 53 | 54 | ####[Drops Processes](#) 55 | 56 | ####[GitHub Repo](#) 57 | 58 | ####[Data Flow Diagrams](#) 59 | 60 | 61 | #Planning & Project Management 62 | ####[Project Manifesto](#) 63 | 64 | ####[Project Plan](#) 65 | 66 | ####[PM Tool](#) 67 | 68 | ####[Communication Schedule](#) 69 | -------------------------------------------------------------------------------- /culture/README.md: -------------------------------------------------------------------------------- 1 | # Culture 2 | 3 | At its core, Sparkbox is our people. We exist to inspire and build a better web. We do this through our work with customers—crafting beautiful web products that inspire others to build right. We do this by sharing what we know—on [the Foundry](../foundry), in our Build Right trainings and workshops, and by speaking at industry events and writing for industry publications. We also do this by running apprenticeships—finding people who share our desire but lack our experience and pouring into them for the first six months of each year. 4 | 5 | Every new initiative is considered through this lens: whether it will inspire and empower a better web. 6 | 7 | ## The Sparkbox Code of Conduct 8 | 9 | Sparkbox is dedicated to providing inclusive, harassment-free, work environment for everyone, regardless of gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, ethnicity, or religion or lack thereof. 10 | We expect everyone to fully comply with these ideals at Sparkbox whenever they are representing the company. This includes when you are at the office (or your primary place of work) or when you are traveling for Sparkbox. This also includes when you are participating in social media or other industry related activities (ex: Github). 11 | Don’t be nasty or mean—be considerate and respectful. 12 | 13 | * **[Our Foundation](our-foundation/README.md)** 14 | * **[Our Space](our-space/README.md)** 15 | * **[Working with our Remote Teammates](remote/README.md)** 16 | * **[Knowledge Sharing](knowledge-sharing/README.md)** 17 | * **[Food & Drink](food-and-drink/README.md)** 18 | * **[How we Play](how-we-play/README.md)** 19 | -------------------------------------------------------------------------------- /code-style/git/.gitmessage: -------------------------------------------------------------------------------- 1 | 2 | # (): 3 | # 4 | # 5 | # 6 | #