Blog Post

Articles
6 MIN READ

How I Built This: Cognito Blox โ€” Rise Custom Code Block Library

AkshayKdwl's avatar
AkshayKdwl
Community Member
2 months ago

When Articulate launched the Rise Custom Code Block, I had the same reaction that many eLearning developers did: excitement, followed immediately by a question: Okay, but how can my team use this without becoming developers overnight?

For most of us, the gap between "I know what I want learners to experience" and "I can write the HTML, CSS, and JavaScript to make it happen" is still pretty wide.

That's why I built Cognito Blox, a free, eLearning component library that lets you configure interactive learning blocks through simple forms, preview them in real-time, and copy a single file of code ready to paste straight into Rise.

Just pick a component, fill in your content, and go.

Try it here: cognitoblox.netlify.app

Why I Made This

I work in learning experience design, and I spend a lot of time thinking about how to make courses feel less like slides and more like experiences. Rise is great for that as it's fast, it's accessible, and learners love it. But every time I wanted something beyond the standard block library, I hit the same wall. I could either:

  • Simplify the interaction to fit what Rise already offers, or
  • Open a code editor and spend hours (sometimes days) building something from scratch, testing it, breaking it, fixing it, and hoping it still works on mobile.

Neither option felt good.

When the Custom Code block arrived, I started experimenting. I built a few interactions manually, then used AI tools to speed up the process. It worked, but I kept running into the same problem: every new project meant starting over. New code, new bugs, new accessibility checks.

I wanted something reusable. Something where the hard part (the structure, the logic, the responsive layout, the keyboard navigation) was already done, and all I had to do was plug in my content.

Cognito Blox is that thing. It's the tool I wished existed when I first opened a Custom Code block and stared at a blank editor.

How I Built It

This library wasn't a single weekend project. It grew in layers, with multiple late evenings, one component at a time, with plenty of "why won't this work?" moments along the way.

Here's the approach, broken down into the parts that actually matter if you want to build something similar or understand how Cognito Blox works under the hood.

Step 1: Start with one working component, not a platform

The first thing I built wasn't a library; it was a single scenario judgment block. I got it working inside Rise, tested it on desktop and mobile, checked accessibility, and made sure it didn't break when pasted into the Custom Code editor.

That one working block became the template for everything else. If you're thinking about building your own interactions, I'd strongly recommend starting here. One component, fully tested, before you try to scale.

Step 2: Separate the "what learners see" from the "how it's built"

Every component follows the same pattern:

  1. A form: Text fields, color pickers, image URLs, dropdowns. This is where you (the course developer) do your work.
  2. A transform function: This takes your form values and generates HTML, CSS, and JavaScript.
  3. A real-time preview: So you see exactly what learners will get before you copy anything.
  4. A single-file export: One self-contained HTML file with all styles and scripts inline, formatted specifically for Rise's Custom Code block.

You fill in the form. The tool handles the code. That separation is the whole idea.

Step 3: Build the generator app with AI-assisted development

The web app itself (the part with the forms, previews, and copy buttons) is built with Next.js, React, and TypeScript. I used AI tools (Claude & Qwen) throughout development to move faster on repetitive patterns: form validation, code generation templates, responsive layouts, and accessibility attributes. 

I'm not going to pretend every AI-generated snippet worked on the first try. It didn't. But starting from a working component and iterating with clear prompts got me to a full library much faster than writing every line by hand.

If you're using Cognito Blox, copy the block code and provide it to an AI tool of your choice, along with instructions on how you'd like to customize it. You'll get much better results by starting with a working example than by repeatedly prompting, testing, and tweaking from scratch.

๐Ÿ’กThink of it this way: vibe coding works best when AI starts with a complete block, not a blank canvas.

Step 4: Make the output Rise-ready by default

This was non-negotiable. Every generated component:

  • Ships as a single HTML file (Rise Custom Code blocks expect one paste, not three separate files)
  • Uses zero external dependencies:  no jQuery, no React CDN, no Bootstrap. Pure HTML, CSS, and vanilla JavaScript
  • Is responsive across desktop, tablet, and mobile
  • Includes accessibility basics

Step 5: Test inside Rise, not just in the browser

The preview in the tool is useful, but Rise is the real test environment. I built a demo course with every component embedded in actual Rise Custom Code blocks and published it so anyone can see how they behave in context.

That testing surface is what caught issues the standalone preview missed, such as container width quirks, scroll behavior, touch interactions on tablets, etc. If you're building custom code for Rise, always test in Rise.

Ideas for Using These Components

As I built the library, I focused on interaction patterns that solve common instructional design challenges. While each component has a specific purpose, most can be adapted across a wide range of learning experiences.

If you'd like to try them yourself, you can find the project, documentation, and setup guide on GitHub.

Flashcards
Reinforcing terminology, product knowledge, language learning, or quick knowledge refreshers
Chat Scenario
Customer service training, difficult conversations, sales objections, or clinical communication practice
Scenario Judgment Card
Ethics training, safety compliance, leadership decisions, or situations where learners need to weigh tradeoffs
Scenario Walkthrough
Scenarios that let learners explore the consequences of their decisions step by step
Sequencing Activity
Onboarding workflows, scientific procedures, software processes, recipes, or any task where order matters
Stepwise Process Flow
Exploring workflows, business processes, or complex procedures one step at a time
Quiz Block
Knowledge checks, certification prep, formative assessment, or spaced repetition
Reflective Journal
Coaching activities, action planning, pre/post-training reflection, or personal goal setting
Before/After Image Slider
Product redesigns, medical imaging, UI comparisons, environmental change, or visual analysis
Image Carousel
Product showcases, process galleries, field observations, or collections of related visuals
Concept Breakdown
Breaking down complex ideas, system architecture, policies, or organizational structures into manageable piece
Fill in the Blank
Practice activities, recall exercises, or reinforcing key terminology and concepts

Key Takeaways

  • Custom Code blocks don't require you to be a developer โ€” you just need the right starting point

  • Start with one working component and reuse its structure rather than building from scratch every time

  • Test in Rise, not just in a browser tab โ€” the preview environment and the published course behave differently

  • Keep output simple โ€” single file, no external dependencies, accessible by default

  • AI tools can accelerate the build, but you still own the instructional design decisions and the quality checks

  • The best custom interactions serve the learning objective โ€” flashcards for recall, scenarios for judgment, journals for reflection. Pick the interaction that matches what you want learners to do, not just what looks cool

What's Next

I'm actively working on new components (matching/sorting, a 3D explorer, and more) and refining existing ones based on community feedback. Looking ahead, I'm also exploring creating short video walkthroughs that cover the entire process (from choosing a component and configuring it to pasting it into Rise) to make it even easier for the community to get started.

If there's a specific interaction you'd want to see added, tell me in the comments. The library grows based on what L&D professionals and course developers actually need. 

If you build something inspired by these ideas, I'd love to see what you create. Feel free to share it in the comments or in the Share Examples Hub so others can learn from it too.

Ask Me Anything

I'd love to hear your feedback, answer questions about the build, or talk through how you'd use these components in your own projects. Drop your thoughts in the comments below. I'll be checking in and responding.

Updated 2 months ago
Version 1.0

25 Comments

  • LilOleID's avatar
    LilOleID
    Community Member

    "Walkthroughs" would be so extremely helpful as I learn best that way. Thank you for your dedication and sharing.

    • AkshayKdwl's avatar
      AkshayKdwl
      Community Member

      Of course! In the future, I plan to add a full walkthrough for most of these eLearning components. For now, hereโ€™s a quick How To Use video  that should help. Thanks!

  • mediknocx's avatar
    mediknocx
    Community Member

    This is a really useful approach. I especially like the idea of building reusable custom code blocks instead of recreating the same components for every project. The step-by-step explanation also makes the workflow much easier to understand. Definitely something Iโ€™d consider for keeping larger Rise projects more consistent and efficient.

  • AnaAsinas's avatar
    AnaAsinas
    Community Member

    OMG I love this and I love you! Thank you for sharing. ๐Ÿ’–

  • Darya's avatar
    Darya
    Community Member

    This is awesome! Thank you for this great solution!

    Could you please provide information about the copyright and terms of use? Are we authorized to use the blocks in our Rise trainings for commercial use? Do we need to add attributions? Etc. Thank you.

  • Thomas_Shayon's avatar
    Thomas_Shayon
    Community Member

    AkshayKdwlโ€‹ well done and bravo! ๐Ÿ‘๐Ÿพ๐Ÿ‘๐Ÿพ๐Ÿ‘๐Ÿพ

    I can tell this was a massive project. Kudos to you and thanks for sharing with the community.

    I'm curious, you've built components that already exist in Rise, e.g., Flash Cards, and Process Flow, etc.

    What was your thought process for creating them as custom code blocks, versus only building wholly new types of interactions?

  • Thomas_Shayon's avatar
    Thomas_Shayon
    Community Member

    AkshayKdwlโ€‹, THANKS AGAIN for your kindness and generosity in sharing the code blocks for FREE. I'm experimenting with some now! WOW! Huge time-saver starting from a pre-built block that you can modify from there (versus, vibe coding from scratch).
    ๐Ÿ‘๐Ÿพ๐Ÿ‘๐Ÿพ๐Ÿ‘๐Ÿพ