There's a technology event for everyone this week in Washington, DC with a HacDC meetup on tech revamping, an Enyo.JS demo for developers, an outdoor Drone event, and more. Go out and take advantage of everything DC has to offer by being productive and learning something new. Check back weekly for our roundup of local technology events.Tuesday, May 14
HacDC: Join DC Hackers as they find new ways to tinker with technology. Help them improve the world by breaking down and rebuilding technology, all while in the pursuit of finding new uses for it. For more information visit them at hacdc.org.Wednesday, May 15
8:30 pm - 1:30 am
DC Nightowls: The DC Nightowls move back to the AOL Fishbowl Labs for their productivity and coworking session. Satisfy your urge to work into the early hours of the morning in NoVa with your fellow Nightowls.Saturday, May 18
Drone User Group: Join the Drone User Group this week as artist and developer Terry Kilby leads an aerial photography demonstration using a drone. He'll discuss how to select the best equipment and how to compose your shots to capture the highest quality images. Come learn about Kilby's work and techniques, contribute your own knowledge, and have fun flying drones at this week's DC Drone User Group.
We're thrilled to release a new version of Prose, adding in new features like a metadata editor, Jekyll layout previews, a markdown toolbar, temporary caching of in-progress edits, and more, all wrapped in a redesigned user friendly interface.
Just seven weeks ago, Tristen laid out ambitious plans to redesign and refocus Prose to make it a beautifully simple content authoring environment for CMS-free websites. Since then, and as part of our work on the next version of healthcare.gov, we've been sprinting to redesign, resolve bugs, and add new features. You can start using Prose v1 now at Prose.io, or check out the source on GitHub. Here's a look at what's new.Simple, flat user interface
The new user interface for Prose is all about editing content. We've removed the distractions and focused on creating a simple environment for writing content and managing websites in GitHub.
The layout scales much better to include new feature like a markdown formatting toolbar in the file editor, and paves the way for a responsive layout, which we hope to implement soon.Metadata editor for Jekyll posts
When using Prose with a Jekyll site, we've made it simpler to manage the yaml front matter for posts. By implementing a form-based editor, developers can set default metadata values and let content editors edit them without typing any yaml.
The metadata editor is completely configurable to match the metadata values required for custom Jekyll sites. Developers should check out the Prose configuration documentation for a look at what's possible.Jekyll layout previews
Now Prose previews Jekyll posts in their full layout so you can get an accurate picture of what posts will look like before you publish them.
To use the layout previews with a Jekyll site, just add a line to your _config.yml file to tell Prose where your published site is hosted.Performance, refactoring, and more
There are dozens of bug fixes and smaller new features in Prose. By focusing on page load performance, we shaved off about a second from each editor page load. We've also refactored a lot of the codebase to follow more standard conventions, and documented guidelines for developing on GitHub.
For a full list of everything new, check out the closed pull requests on GitHub.Next up
We're jumping right into a new sprint to add a few more features that we think will really enhance the content editing experience in Prose. Over the next few weeks, we'll be adapting to a responsive layout and testing Prose on tablets and smart phones — great for making quick edits to content on the go. We're also working on a image / file upload feature, so you can easily add inline images or attached files in your posts. And we're sketching out how we can improve linking to posts within a site instead of needing to past URLs to published posts.
There are some interesting technology events taking place in and around the District this week on topics like Perl, drones, and more. Check out a new meetup group or revisit one you know and learn something awesome this week.Tuesday, May 7
9:00 am - 2:00 pm
DC Area Drone User Group: Drones are a hot button issue whether talking about their use in modern warfare to privacy concerns around recreational use. At this meetup, come learn more about drones, the controversy and concerns around their use, and the technology that powers them.
On the first Tuesday of the month, folks with a passion for Perl based programming and open source tech get together to discuss new tricks of the trade. This month they will be talking about contributing to The Comprehensive Perl Archive Network (CPAN).Saturday, May 11
2:30 pm - 7:30 pm
DC Nightowls in Baltimore: The DC Nightowls are taking off to Baltimore this weekend and pairing up with Emerging Technology Center! Bring Your Own Project and be productive with your peers at the Beehive in Baltimore. This meetup is taking place outside of their usual hours of operation, so get there early and contribute often.
Nerd Nite DC: Join your fellow nerds for a night of drinking and learning at DC9 in the U street corridor. This month's Nerd Night will feature talks about Material Science and how it's changing the way we eat chocolate, how art can be saved by science, and all you ever wanted to know about the "fat innkeeper worm". Join the party and learn something new this week.
This Thursday, May 9 at 6:00pm we're hosting this month's meeting of the DC Web API User Group at the Development Seed office. Each month the Meetup focuses on web API development and technologies, and is a new group for sharing the latest developments in web API's in the area. Speakers include our own Dave Cole, who will present the latest work on the new healthcare.gov content API, and how we're using it to add dynamic features to a CMS-free website.
As a part of the upcoming relaunch of the new healthcare.gov, all content will be made available through a JSON API. This opens up the ability for other government agencies or private sector websites to pull in up-to-date official content. Dave will run through how we're using a custom Jekyll plugin to generate the API, how the site consumes this API itself to generate dynamic features, and how offering a content API will help extend the reach of official content to other websites.
There is a full evening of great speakers. Marina Martin from the White House Office of Science and Technology Policy, Transportation Security Administration's Neil Bonner, and Barg Upender from Mobomo will all be presenting their latest work.
- 6:00 - 6:30 Food, drinks and networking
- 6:30 - 6:45 Introductions & Community Announcements
- 6:45 - 8:00 Presentations
- Dave Cole, Development Seed
- Marina Martin, OSTP
- Neil Bonner, Transportation Security Administration
- Barg Upender, Mobomo
- 8:00 - 9:00 Panel + Q&A
Development Seed's office is at 1714 14th St NW. The entrance is off the alley behind the west side of 14th Street.
Few services have altered the way we build websites like GitHub Pages. The free hosting service that updates websites every time you commit changes to GitHub runs nearly all of our projects over the last two years, including some really big ones, like the United Nations Development Programme's open data portal. It is fast, reliable, and has an incredibly easy workflow for development.
For those cases where we need the simplicity of GitHub Pages' workflow but have to host on our own infrastructure, we built Jekyll-hook. It's an extensible server that builds Jekyll sites on each commit to a GitHub repository, just like GitHub Pages. It provides a ton of additional flexibility, while preserving the benefits of static site generation, like needing no server-side processing to serve webpages.
Jekyll-hook is a Node.js server that receives web hook requests from GitHub.com, or a GitHub Enterprise server, generates a Jekyll site, and publishes it. The generation and publication processes are configurable with simple bash scripts. Get the full details at the Jekyll-hook project readme.Why use Jekyll-hook?
For the majority of our projects, GitHub Pages works well. But there are some cases where additional needs drive us to build our own hosting environment:
- Use Jekyll plugins
- Publish directly to a CDN
- Host content behind authentication
With GitHub Pages, Jekyll runs in safe mode, which means no third-party plugins will run. On a project like healthcare.gov, we encounter several simple problems that can be solved with small plugins that alter the way Jekyll builds the website. For instance, we just released the Jekyll Google Analytics plugin we're using to download Google Analytics data and sort posts by popularity each time the new healthcare.gov website is rebuilt.
Using Jekyll-hook, you set up the Jekyll server, so you can run whatever plugins you want. Jekyll plugins introduce much lower risk than traditional CMS modules, because they run when the site is built, not when it is served. You can verify the plugin does what it should before your publish the website and not have to worry about plugins slowing down page load time.
In addition to Jekyll-ga, the new healthcare.gov uses plugins to generate a JSON-based content API, provide greater control to content administrators over post ordering and curation, and generate landing pages for blog post topics.Publish directly to a CDN
For those cases where you need to be 100% certain of your website's availability and responsiveness, we recommend using a content distribution network. For MapBox, we use Cloudfront, which is part of Amazon Web Services. For healthcare.gov, we're planning to use Akamai. Both replicate content across a globally distributed network of servers to provide fast, reliable content delivery.
With Jekyll-hook, you write simple bash scripts to customize how your website is built where it is published. For the absolute best performance from your site, you would write a script that directly published your website to a cloud-based hosting environment like Amazon S3 or Akamai Net Storage and serve it through a CDN.
We've included a sample script that publishes Jekyll sites to Amazon S3. It works in the same way that GitHub Pages works, where repositories named *.github.com or *.github.io are hosted at the root of the S3 bucket, and other repositories for an owner or organization are hosted in subdirectories. If you use Jekyll-hook on new infrastructure, please contribute your publish scripts so we make it easy to people to use this server in a variety of hosting environments. We'll be working on an Akamai Net Storage script next.Host content behind authentication
Occasionally, we'll work on a project that needs to be protected by authentication, either because the data is private or during development of a yet-to-be released website. To make this easier, we've included a sample NGINX configuration and publish script so that Jekyll-hook can build sites to a simple web server with basic authentication. For the new healthcare.gov build, we're using this on a micro EC2 server for a free / cheap development server that we can use to test and share the progress of our development.Growing the CMS-free website stack
Just about nine months ago, we published our thoughts on building better websites by using Jekyll to generate static sites from content files and templates. By pairing this approach with APIs and embeds from services like Twitter, Disqus, Flickr, and Vimeo, we can build full-featured websites with absolutely no server-side processing when pages are viewed. It's an incredibly scalable and versatile approach that we're learning a lot about and expanding through our work with HHS on healthcare.gov.
About a year ago, to make editing static website simple for content writers, we built and released Prose — an open source web-based editor for Jekyll sites hosted on GitHub Pages. It's a writers' window into the powerful version control and collaboration features of GitHub. We're just a few days away from releasing the first major version of Prose, which focuses on improving the usability and simplicity of editing content with a refreshed interface, metadata editor, and support for full in-layout previews.
Now we're pushing the stack even further. In addition to the major upgrades to Prose, we recently shared how we're providing multi-lingual translations for Jekyll sites, our approach to accessibility testing, and released the Jekyll Google Analytics plugin, bringing a whole new level of advanced features to Jekyll sites that previously required clunky content management systems.
Jekyll-hook is the latest piece of the puzzle. By removing the dependency on GitHub Pages for hosting, the CMS-free stack is becoming one of the most open and flexible way to build websites.
Cover photo by sbisson, CC BY-NC-ND 2.0.