Note: Alphabet is a set of frameworks: HarmonyS (Harmony JavaScript) (For JavaScript-based advanced framework), AlphabeTS (Alphabet TypeScript) (For TypeScript-based advanced framework), Great CSS (An utility-first CSS framework, better than Tailwind and optimized for Alphabet Frameworks)
A lightweight, simple, and complete JavaScript/TypeScript framework with reactive DOM and utility-first CSS.
Important: We currently don't have @alphabet/cli published. You need to build everything from source yourself!
# 1. Clone the repository
git clone https://github.com/OverLab-Group/alphabet.git
cd alphabet
# 2. Install dependencies
npm install
# 3. Build the framework (this uses Rollup)
npm run build
# 4. Build TypeScript definitions
npm run build:ts
# Optional: Build the CSS framework separately
npm run build:greatThe Virtual DOM Problem: Frameworks like React and Vue use Virtual DOM - a lightweight copy of the real DOM that must:
- Rebuild the entire Virtual DOM on every change
- Calculate differences (diffing)
- Apply only changes to the real DOM
Alphabet's Solution: We use Proxy-based Reactivity:
// Under the hoodconstdata=newProxy({count: 0},{set(target,property,value){// When data changes...target[property]=value;// Only related DOM elements updateupdateRelatedDOMElements(property,value);returntrue;}});Benefits:
- ✅ Faster: No Virtual DOM overhead
- ✅ Efficient: Only changed elements update
- ✅ Less Memory: No need to maintain DOM copy
- ✅ Better Load Time: Faster parse and hydration
Pure SPA Problem:
- 🤖 Poor SEO: Search engines struggle with JavaScript
- ⏳ Long Load Time: Users wait for JS download/execution
- 📱 Poor UX: White screen until full load
Alphabet's Solution:
// Server: Renders complete HTMLconsthtml=awaitssr.render(app,'/page',{user: data});// Client: Only adds event listenersssr.hydrate(app,'#app');Why It's Critical:
- Excellent SEO: Search engines see complete HTML
- Instant Loading: Users see content immediately
- Better Experience: Works even with JavaScript disabled
- Better Sharing: Correct preview when sharing links
Three Different Usage Methods:
<divdata-alphabet-cmp="UserCard" data-alphabet-prop-name="John"
data-alphabet-prop-avatar="/img/john.jpg"></div><divclass="alphabet-user-card" data-name="John"
data-avatar="/img/john.jpg"></div><divclass="user-profile"><h2>{{ user.name }}</h2><p>{{ user.bio }}</p><button@click="followUser">Follow</button></div>Tailwind Problems:
- 📏 Long Classes:
class="p-4 m-2 bg-red-500 text-white ..." - 🔧 Complex Configuration: Large, complex
tailwind.config.js - 🎨 Design Limitations: Only basic utility classes
Great CSS Solution:
// Easy theminggreat.updateTheme({colors: {'brand': {50: '#f0f9ff',500: '#0ea5e9',900: '#0c4a6e'}}});// Pre-built components<divclass="btn btn-primary btn-lg">Beautiful Button</div>Additional Features:
- 🎭 Automatic Dark Mode
- 🎨 Advanced Gradients
- 📱 Ready-made Responsive Components
- 🎯 Built-in Animations
Why Plugins?
// State management pluginconststatePlugin={name: 'state-manager',install(app){app.state=createStore();app.provide('store',app.state);}};// Routing pluginconstrouterPlugin={name: 'router',install(app){app.router=createRouter();app.component('RouterView',RouterView);}};// Usageapp.use(statePlugin);app.use(routerPlugin);Benefits:
- 🧩 Modular: Install only what you need
- 📦 Lightweight: Smaller bundle size
- 🔧 Extensible: Custom plugins
- ⚡ Tree-shaking: Unused code eliminated
| Metric | Alphabet | React 18 | Vue 3 | Angular 16 | Explanation |
|---|---|---|---|---|---|
| Bundle Size (gzipped) | 15KB | 42KB | 33KB | 65KB | Core framework only |
| Startup Time | 45ms | 120ms | 85ms | 150ms | To first render |
| Memory Usage | 12MB | 25MB | 18MB | 35MB | Basic app |
| DOM Update Speed | ⚡⚡⚡⚡ | ⚡⚡⚡ | ⚡⚡⚡ | ⚡⚡ | No Virtual DOM |
| SSR Overhead | 8ms | 22ms | 15ms | 30ms | Server render time |
| Compile Time | 1.2s | 3.5s | 2.8s | 6.2s | Medium project |
Alphabet: 12.4ms (Direct to DOM)
React: 45.2ms (Virtual DOM diff + update)
Vue: 38.7ms (Virtual DOM diff + update)
Angular: 62.1ms (Change detection + update)
// 1000 consecutive updatesfor(leti=0;i<1000;i++){data.count=i;}// Results:
Alphabet: Batchupdate(25ms)// All in one frame
React: Re-renderx1000(320ms)
Vue: Re-renderx1000(280ms)Alphabet: 380ms (SSR + fast hydration)
React: 850ms (SSR + slower hydration)
Vue: 720ms (SSR + medium hydration)
Pure SPA: 1400ms (Download + parse + execute)
Alphabet:
Data change → Identify elements → Direct DOM update
React/Vue:
Data change → Rebuild Virtual DOM → Calculate diff → Apply to DOM
(extra overhead)
// Alphabet: Fast hydrationssr.hydrate('#app',{onlyEvents: true// Only event listeners added});// Other frameworks: Full hydration// Must rebuild entire component treeAlphabet Architecture:
┌─────────────┐
│ Core (6KB) │
├─────────────┤
│ Reactivity │← Proxy-based
├─────────────┤
│ SSR │← Partial hydration
└─────────────┘
React Architecture:
┌────────────────┐
│ React (42KB) │
├────────────────┤
│ Virtual DOM │← Diffing overhead
├────────────────┤
│ Scheduler │← Complexity
├────────────────┤
│ Reconciler etc │← More overhead
└────────────────┘
// Alphabet: Only what you useimport{component,reactive}from'alphabet-core';// Final bundle: ~8KB// React: Everything togetherimportReact,{useState,useEffect, ... }from'react';// Final bundle: ~40KB (even if you don't use everything)To reproduce tests:
# 1. Clone repository
git clone https://github.com/OverLab-Group/alphabet.git
# 2. Run performance testscd alphabet
npm run test:benchmark
# 3. Stress test
npm run test:stress
# 4. Chaos test (simulating real conditions)
npm run test:chaosTests Include:
- 📊 Benchmark: Comparison with other frameworks
- 💥 Stress Test: 10,000 simultaneous components
- 🌪️ Chaos Test: Random state changes
- 📱 Mobile Test: Simulating weak devices
- 🌐 Network Test: Poor network conditions
🎯 Precision Updates
- Only changed elements update
- No unnecessary diffing
⚡ Superior Performance
- 2-3x faster than React in consecutive updates
- 40% faster in initial load time
📦 Lightweight
- 70% smaller than React
- 55% smaller than Vue
🔧 Extensible
- Plugin-based architecture
- Advanced tree-shaking
🌐 Production Ready
- Built-in SSR
- PWA support
- SEO-friendly
✅ Ideal for:
- High-interaction applications
- Projects requiring SEO
- Small teams with limited resources
- Projects where performance is priority
- Systems requiring low memory
- Projects with existing React/Vue ecosystem
- Very large teams with strict standards
- When dependent on specific libraries
If you contribute, others will also contribute, and we can make a culture, that will be a standard, not a framework/library only for small teams, even enterprise projects can use it, if yo contribute!
We truly need your help! This is an open-source project developed by the community.
How to contribute:
- Report bugs
- Request features
- Submit pull requests
- Improve documentation
- Write tests
Areas needing help:
- More performance tests
- Additional plugins
- Better documentation
- More examples
- Making comments english (70% is english, but others is in foreign language)
Apache License 2.0 - Full text at LICENSE
- GitHub Repository: https://github.com/OverLab-Group/alphabet
- Issue Tracker: https://github.com/OverLab-Group/alphabet/issues
- License: Apache 2.0
Built with ❤️ by the open-source community. This framework is maintained by developers who believe in making web development simpler, faster, and more enjoyable.
Remember: This is a community-driven project. Your contributions shape its future! Whether it's fixing a typo, adding a feature, or reporting a bug - every contribution matters.
Last updated: December 31, 2025