DEV Community

Cover image for LangSteps v1.2.0: TypeScript-Powered Learning, Better Offline Support, and 10 Free Programming Paths
Sanskar
Sanskar

Posted on

LangSteps v1.2.0: TypeScript-Powered Learning, Better Offline Support, and 10 Free Programming Paths

LangSteps v1.2.0: TypeScript-Powered Learning, Better Offline Support, and 10 Free Programming Paths

I'm excited to share LangSteps v1.2.0, the latest release of my free, open-source programming education platform.

LangSteps is designed to make programming education more accessible through structured learning paths, practical examples, interactive learning tools, and browser-based progress tracking.

The complete platform is now publicly available online:

Live website: https://sanskarin.github.io/LangSteps/

GitHub repository: https://github.com/sanskarIN/LangSteps

10 Programming Learning Paths

LangSteps currently includes:

  • HTML — Semantic markup, forms, accessibility, and web fundamentals
  • CSS — Layouts, responsive design, Flexbox, Grid, and animations
  • JavaScript — Modern syntax, DOM, asynchronous programming, and more
  • React — Components, hooks, and state management
  • Python — Fundamentals, functions, OOP, and advanced topics
  • TypeScript — Static types, generics, and type-safe programming
  • Rust — Ownership, lifetimes, traits, and systems programming
  • Go — Interfaces, concurrency, testing, and HTTP services
  • SQL — Joins, transactions, queries, and database fundamentals
  • C# & .NET — Language foundations, APIs, and ASP.NET Core

All learning paths can be accessed without creating an account.

What's New in v1.2.0?

1. A Stronger TypeScript Foundation

One of the major improvements in this release is the move toward more maintainable TypeScript-powered browser functionality.

The Go, SQL, and C# learning paths now benefit from a shared, typed lesson viewer.

This helps keep navigation, searching, and lesson completion behavior more consistent.

2. Improved Lesson Navigation

The learning experience now includes refinements to:

  • Previous and Next lesson navigation
  • Browser history integration
  • Lesson deep links
  • Keyboard focus behavior
  • Lesson searching
  • Completion tracking

Existing progress records remain compatible, so learners can continue without migrating their saved progress.

3. Expanded Web API Learning Resources

The Web API guide has been improved with 15 searchable APIs.

It includes practical examples, notes about browser permissions, and references to official MDN documentation.

This makes it easier to explore browser capabilities and understand how modern web APIs work.

4. Better Offline Support

LangSteps remains a static, client-first platform.

This release improves the TypeScript-authored service worker and its versioned caching behavior.

Previously cached lessons and supported resources can remain available offline. A first visit still requires an internet connection, and not every external resource is guaranteed to work offline.

5. Better Mobile Experience

Long code examples should not make a learning page unnecessarily difficult to navigate.

v1.2.0 includes fixes for horizontal overflow and improves the usability of learning content on smaller displays.

6. Reliability, Safety, and Accessibility

This release also includes:

  • Fixes for homepage JavaScript functionality
  • An isolated, sandboxed code preview
  • Improved donation dialog accessibility
  • Stronger curriculum validation
  • Automated regression testing
  • Cross-browser smoke testing

The focus is not simply adding more features. It's also about making existing functionality more predictable and maintainable.

How Does LangSteps Work?

LangSteps is hosted publicly through GitHub Pages.

The frontend uses static web technologies with TypeScript compiled into JavaScript.

No login is required for public lessons, and supported learning progress is saved locally in the browser.

The repository also includes optional ASP.NET Core functionality that requires separate hosting; it is not part of the public GitHub Pages deployment.

Why I'm Building LangSteps

I believe high-quality programming education should be available without unnecessary financial or technical barriers.

LangSteps is an attempt to bring multiple programming technologies, practical learning resources, and helpful developer tools into one accessible platform.

It's still evolving, and community feedback is an important part of improving it.

Try LangSteps Today

Start learning: https://sanskarin.github.io/LangSteps/

Read the release notes: https://github.com/sanskarIN/LangSteps/releases/tag/v1.2.0

Explore the source: https://github.com/sanskarIN/LangSteps

If you're interested in programming education, TypeScript, accessibility, or open-source web development, I'd love to hear your feedback.

You can also support the project by starring the repository, reporting issues, suggesting improvements, or contributing code.

LangSteps — Learn programming, one step at a time.

Built with dedication to free and open-source education.

Top comments (5)

Collapse
 
alexcodebytes profile image
Oleksandr •

"The complete platform is now publicly available online" is the sentence that makes this different from most "learn to code" projects.

Most educational platforms are behind a login wall, a paywall, or a "free trial". You can click the link and start learning immediately, with no account, no email, no credit card. That's a much lower barrier to entry, and it's rare.

Curious how the offline support works. Does the service worker cache the entire curriculum, or does it cache lessons on demand?

Collapse
 
sanskarcodes profile image
Sanskar •

Thank you so much for the thoughtful feedback! I really appreciate you recognizing the importance of making programming education accessible without accounts, paywalls, or unnecessary barriers.

Regarding offline support, LangSteps v1.2.0 currently uses a selective precaching approach rather than downloading the entire curriculum.

The TypeScript-based service worker precaches essential application assets, shared learning resources, and the Go, SQL, and C# course data. This allows those supported resources to remain accessible after the initial online visit.

However, it doesn't yet automatically cache every lesson across all 10 learning paths on demand, so complete offline availability isn't guaranteed.

I'm interested in improving this further, potentially with on-demand lesson caching and an option to download entire learning paths for offline use.

Thanks again for asking such a great technical question! Feedback like this genuinely helps shape the future of LangSteps. 🚀

Collapse
 
alexcodebytes profile image
Oleksandr •

Selective precaching is definitely the right call for v1. Browser storage limits—especially on mobile Safari—are unforgiving, and trying to force-download all 10 learning paths on the first visit would likely blow the quota and break the service worker entirely. Caching the core Go, SQL, and C# assets is a smart MVP compromise.

For the on-demand lesson caching you're planning, I'd look into a Stale-While-Revalidate strategy. That way, if a user opens a lesson they haven't visited before, the service worker can fetch it, cache it, and serve it immediately. But if they're offline and open a previously visited lesson, it serves the cached version instantly while silently updating it in the background once they reconnect.

Really appreciate the transparency about the current limitations. It's rare to see a solo dev actually explain how the offline mode works under the hood instead of just slapping an "offline ready" badge on the UI. Looking forward to seeing the full offline mode in a future update!

Thread Thread
 
sanskarcodes profile image
Sanskar •

Thank you again for such a thoughtful and technically valuable response! I really appreciate you taking the time to share these suggestions.

I completely agree that browser storage limitations, especially on mobile devices, need to be considered carefully. My goal with LangSteps is to make programming education as accessible as possible while keeping the platform lightweight, reliable, and genuinely useful offline.

Stale-While-Revalidate is an excellent suggestion, and it's definitely something I want to explore for a future update. I like the idea of automatically caching lessons as users access them, serving previously visited content immediately, and refreshing cached resources when connectivity is available.

I'm also considering a few additional improvements:

  • On-demand lesson caching so previously visited lessons remain accessible offline.
  • Downloadable learning paths so users can intentionally save entire courses for offline study.
  • Smarter cache management to respect browser storage quotas and avoid unnecessary resource consumption.
  • Offline availability indicators so learners know exactly which lessons are accessible without an internet connection.

Of course, these are planned improvements rather than features I'm claiming are already implemented. I want to test them carefully across browsers and devices before introducing them.

One of my long-term goals is to make LangSteps a genuinely offline-friendly learning platform without sacrificing performance or accessibility.

I really appreciate your encouragement and constructive feedback. Discussions like this are incredibly valuable because they help identify practical improvements that can make an open-source project better for everyone.

Thanks again for supporting LangSteps and sharing your expertise! 🚀

Thread Thread
 
alexcodebytes profile image
Oleksandr •

The planned roadmap sounds exactly right, especially the downloadable learning paths—that's a huge win for commuters. For the "smarter cache management" part, navigator.storage.estimate() is a lifesaver for checking quotas before triggering a large download. Can't wait to see the offline indicators in action. Keep up the great work!