I've used Canvas for years, and I've spent a lot of that time trying to make it work better for both my students and me. I'm interested in what a learning management system can do beyond serving as a place to post assignments and record grades.
My approach to course design is pretty simple: protect the difficulty that matters and remove the difficulty that doesn't. Learning Spanish should be challenging. Finding an assignment, figuring out what to study, or navigating a course website shouldn't be.
Over time, I've developed a collection of templates, tools, and workflows that make my courses more consistent, accessible, and manageable. Some involve HTML and CSS, some involve external tools, and some are simply better ways of organizing information.
I shared several of these projects in my conference presentation, Building Systems for Sustainability. Below are examples of the systems I've developed and how I use them.
I've also shared some of these resources in Canvas Commons, where other teachers can import them directly into their own courses. To find them, open Canvas Commons and search for Anita Saalfeld.
A few years ago I started using tables to organize information in Canvas. They're an easy way to arrange content visually, but tables used for layout can create accessibility problems, particularly for students using screen readers or mobile devices.
I've been redesigning my Canvas pages to replace layout tables with more accessible HTML structures. This includes using headings, clearly organized sections, and collapsible content boxes.
Collapsible boxes are especially useful for longer pages. Students can find the section they need without scrolling through everything else, and I can organize related information without creating a separate Canvas page for every topic.
My goal isn't just to satisfy an accessibility checker. I want course materials that are easier for everyone to navigate and use.
Over the years, I've accumulated a ridiculous number of Quizlet sets for my Spanish courses. I wanted to move that content into Canvas so students could use it for self-grading vocabulary quizzes, but there was one problem: entering all those questions manually would have taken forever. I might have finished sometime before retirement.
Fortunately, I discovered GetMarked, which allows me to convert existing materials into quizzes that can be imported into Canvas. Instead of recreating hundreds of vocabulary questions by hand, I can use the content I've already developed.
I've since expanded that workflow to include grammar, reading comprehension, listening, and other assessments. I also use ChatGPT to help generate and format questions from materials I provide, which I then review and revise before importing.
The result is a much more efficient process for creating self-grading assessments. I still decide what students need to know and whether the questions are appropriate, but I no longer have to spend hours on the mechanical work of getting them into Canvas.
And I might actually get everything converted before I retire.
One of my ongoing projects has been developing a Study Hub for my Spanish courses.
Rather than making students search through multiple modules to find notes, vocabulary resources, explanations, and practice activities, I organize those materials in a central location.
The Study Hub gives students a place to review concepts, revisit explanations, and find additional practice when they need it.
This is particularly helpful for students who have been absent, need extra review, or want to work independently.
It also makes my own course maintenance easier. Instead of recreating or reposting the same resources, I can update the material in one location and direct students back to it.
I wanted students to be able to use our learning targets as a checklist, marking off the skills they felt confident about and identifying what they still needed to work on. A static list of learning targets wasn't particularly useful for that.
I found a paid service that would let me create interactive checklists and embed them in Canvas. It would have done what I wanted, but I wasn't thrilled about the idea of paying a subscription indefinitely for something that seemed like it should be relatively simple. So I started looking for another way.
I don't know how to write JavaScript, but I worked with ChatGPT to develop an interactive checklist that I could host for free using GitHub Pages and embed directly into Canvas (see an example here). Now students can check off learning targets as they master them, and I can organize the targets by unit without having to maintain another paid subscription.
It's a relatively small feature, but it's exactly the kind of problem I enjoy solving: I knew what I wanted students to be able to do, found that the available solution came with an ongoing cost, and figured out how to accomplish the same thing using tools I already had access to.
I use a consistent weekly structure in Canvas so students know where to find their work. Each week includes a Daily Activity List that outlines what we're doing in class and what students need to complete. I also organize recurring assignments, practice activities, and assessments in predictable locations.
This has been especially useful when students are absent. Rather than emailing me to ask what they missed, they can check Canvas and see what they need to do. The structure also makes it easier for me to manage multiple courses. I don't have to reinvent the organization of each module every week.
I like having navigation buttons on my Canvas homepages. They're easy for students to recognize, and they make it simple to get where they need to go without digging through menus.
My original solution used image-based buttons linked to individual course modules. They looked nice and worked well for students, but I eventually realized I'd created a ridiculous amount of work for myself. Every semester, I would have to update the module dates, download new button images, upload them to Canvas, and relink each button to the appropriate module. EVERY. SINGLE. SEMESTER.
That wasn't sustainable, obviously. I didn't want to give up the buttons, though, because I really do think they make Canvas easier for students to navigate. So I started looking for a way to get the same functionality without all the maintenance.
I ended up developing HTML/CSS-based homepage templates with buttons that can be edited directly in Canvas. Instead of relying on images, the buttons are part of the page itself, and I can update their text and links without recreating graphics. I've also moved toward linking to more stable course navigation destinations rather than individual modules that change from semester to semester. Now I make a course copy and Canvas links everything automatically so I just change the dates on the homepage (or copy the code, give the new dates to ChatGPT, and have ChatGPT update the dates and give me the edited code).
The result is a homepage that's still visually appealing and easy for students to use, but much easier for me to maintain. I've since developed versions that other teachers can import into their own Canvas courses and customize without needing Canva or any other design software. It's a good example of something I've learned through trial and error: a solution that looks great but creates hours of recurring work isn't really a solution.