Manifold v0.1.3 released to staging.manifoldapp.org

Version 0.1.3 of Manifold introduces support for logins using Facebook, Twitter, and Google OAuth services. This version also incorporates a refactored approach to managing application settings, which can now be set via the backend, or managed by way of the dotenv file, which tends to be a more appropriate solution for automated provisioning and deployment.

Fixed bugs:

  • Recent event CSS changes broke mobile event layout #241
  • Settings are loaded even when SSR is unavailable
  • Fix upload display in FF/Safari
  • Fix popup position in Firefox

Features:

  • Refactor integration setttings; move to DB
  • Add styled 50x error page
  • Refactor service port configuration for easier install

Closed issues:

  • Missing Favicon in production env. #242

Merged pull requests:

Reading with Matthew K. Gold

mkgold-gc-15Before the holidays, I had the chance to chat with Manifold Co-PI Matthew K. Gold, who is Associate Professor of English and Digital Humanities and Executive Officer of the M.A. Program in Liberal Studies at the Graduate Center, CUNY. I have been lucky to work with Matt for a couple of years now, through seminars on digital humanities praxis and textual studies, on DH tool-building projects like DH Box, on the editorial collective of the Journal of Interactive Technology and Pedagogy, and with the digital fellows of the GC Digital Initiatives. His widespread commitment to textual scholarship and digital innovation, his seemingly tireless support of his students and digital experimentation, and his humility (which he may not even let me mention) never cease to amaze me. I have spent a lot of time discussing Manifold with Matt, but I was glad to get the chance to ask him more specifically about his personal motivations for developing a hybrid publishing platform. 

What matters most to you about Manifold? I think it’s the overall excellence of the user experience. Our goal is to create a platform that will rival the reading experience of a commercial site like Medium but that is free and open-source. I’m excited to see how various people will use it — certainly our primary audience of university presses, but also a wider set of authors and publishers of all types.

Cool. That sounds like a pretty noble mission to me. I’m also excited about our team — we have the University of Minnesota Press, which is doing exciting experimentation on both its editorial and production sides —  it’s a Press that’s willing to take risks with the way it thinks about the future of publishing. Working with a partner like that — and with Doug Armato and his team in particular — is a lot of fun.. And then we are lucky to be collaborating with Cast Iron Coding– Zach Davis and his team are extremely talented and very much aware of the latest trends in web development. Manifold won’t feel like a typical piece of academic technology, thanks to the work of Zach and his team.

What’s your ideal reading experience? For me, print is still most important as a reading experience. But I’m never satisfied when I buy a printed book from a bookstore and then “that’s it.” I can’t carry all of my books with me when I go on a trip, so I really want both print and digital at the point of purchase. For me, if I’m going to read a book of theory or criticism, I’m going to be reading it in print, but I also want to be able to easily pull it up on my laptop or phone when I’m traveling or just happen to think of it during a meeting with a student, or I’m doing some writing and I want to refer to it. I want the materiality of the print book, but for access and reference, the online version.

And Manifold is precisely about achieving that hybrid experience. So we are producing print books, but we are also creating web-based interactive texts that open up new collective and social reading experiences.

What are you reading now? I am reading (and loving) Barbarian Days by William Finnegan. Somehow, reading about waves feels like the right thing in this post-election moment–an escape from politics but also a reminder of how to make our way among larger and sometimes brutal forces.

Who inspires your work? I tend to be inspired by my academic mentors. My first academic mentor was Robert D. Richardson, Jr., who is a biographer of Thoreau and Emerson (his biography of Emerson remains one of my favorite books). I’m still in awe of his erudition and research and writing skills. I’m also inspired on a daily level by my colleagues at the Graduate Center and across CUNY, especially by the students I work with.

After Matt answered all the questions, we had the chance to speak more broadly about Manifold and the features that specifically address readers’ needs. The design of the platform — from the icons, to commenting and annotation, to the reading interface — is the result of careful consideration by a team of careful readers. Moving forward, even as I share more about the creators of Manifold and the reading practices that influence its development, I will be adding a features series to outline the thinking that goes into the various components of Manifold.

This Week in Manifold: Team meeting, Numerous Fixes

This has been an exciting week for Manifold. The UMNP team—Terence, Dan, Susan, and Doug—and Matt all came out to Portland for one of our regular meetings. We met at the Cast Iron Coding office in the old Washington High School building and spent two days talking through issues, thinking about Manifold use cases, sorted through thorny metadata and DOI concerns, and generally reviewed how far we’ve come, where we’re at, and what’s left to do. I always find these meetings inspiring and invigorating, and am reminded of what a strong team we have in place for this project.

In the two weeks leading up to this meeting, the development and design team at Cast Iron has been working furiously to tighten up existing behavior and progress on the project resources. As a result, we don’t have a lot in the way of big new features to report for this sprint. We do, however, have a long list of fixes, small improvements, and tweaks, which I’m including below. Next week is a short week, and I likely won’t post an update until the following week. In the next sprint, we’ll be finalizing project resources, and then turning our attention back to the annotation user interface, and begin work on comment threads.

The release that went out to staging today includes the following revisions.

Backend

  • Add static markup/styles for backend text selector
  • Wire projects from API to backend views
  • Wire backend dashboard to project list
  • Add static upload form to backend
  • Add backend statics: maker select, textarea
  • Add radio group component to backend
  • Add static componet for backend panel/nav
  • Add static header to backend project detail
  • Add static component for backend activity
  • Add static for backend notifications
  • Add backend icons, secondary header style
  • Add static component for backend projects
  • Add placeholder avatar to makers

New Features

  • Add resource detail view
  • Slideshow loads resources one page at a time (batch loading)
  • Client can reduce one fetch to two locations in global state

UI Improvements

  • Close panels on click
  • Add graphic and messaging for users not following projects
  • Improve resource-related back links
  • Add marketing banner with signup button
  • Reduce input and button borders
  • Show actual annotation counts in text list
  • Refine resource handling on client
  • Animate project grid enter/leave (in some cases)
  • Improve following widget and project filtering
  • Mobilize mobile reader footer/appearance menu
  • Adjust reader header for mobile
  • Adjust positioning of user menu on mobile
  • Adjust resource collection icon on small sizes
  • Convert notification markup to use new styles
  • Add responsive font-styles to reader
  • Update twitter icon position on events

Bug fixes

  • Remove slide listeners on unmount
  • Correct resource detail link
  • Fix inconsistent text-header spacing
  • Adjust overlay header to match browse header
  • Fix svg grid padding on iOS
  • Prevent resource from showing blank slide
  • Fix resource link instances in card
  • Correct regression to collection detail
  • Remove underline from text title
  • Refactor resource scss files add dark overlay
  • Correct resource totals language
  • Show cards on collection resource list
  • Fix overlay on resource thumbnails
  • Fix slideshow transitions for demonstration
  • Prevent project subtitle wrapping on mobile
  • Fix text title weights on mobile
  • Restrict activity list on mobile
  • Fix sizing/wrapping on project metadata
  • Do not add resource to blank collection
  • Remove errant console.log message
  • Correct following transition style
  • Update user after edit profile
  • Correct home page header
  • Fix positioning and padding on header notifications
  • Scroll to top when changing sections
  • Correct annotation create
  • Adjust margin/positioning on thumbnails
  • Update primary nav for mobile
  • Fix duplicate project create events
  • Fix annotation popup position regression
  • Address improperly named project import method

API

  • Expose single collectionResource
  • Expose text age
  • Expose created month, day, and year on texts
  • Expose CollectionResources; add acts_as_list
  • Expose text annotation counts
  • Expose resource kinds on project
  • Move controllers to align with JSON API spec
  • Expose uncollected project resources in API
  • Expose user project favorites via API
  • Implement project subjects; adjust filtering
  • Ensure sources are associated with texts
  • Import resources when importing projects
  • Adjust resource serializers
  • Add collection controller to API
  • Generate resource thumbnail if it is an image
  • Expose date and kind data on collection
  • Expose project association counts
  • Add resource importer; build resource models
  • DRY up attachment validation; organize models

Misc

  • Refactor authentication; improve API actions
  • Refine frontend resource components
  • Correct resource and collection migrations
  • Clean up initializers