![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.
A declarative, HTML-based language that makes building web apps fun 🔥
Docs ∙ Try Online ∙ Contribute ∙ Get Support
Marko is HTML re-imagined as a language for building dynamic and reactive user interfaces. Just about any valid HTML is valid Marko, but Marko extends the HTML language to allow building modern applications in a declarative way.
Among these extensions are conditionals, lists, state, and components. Marko supports both single-file components and components broken into separate files.
The following single-file component renders a button and a counter with the number of times the button has been clicked.
click-count.marko
class {
onCreate() {
this.state = { count:0 };
}
increment() {
this.state.count++;
}
}
style {
.count {
color:#09c;
font-size:3em;
}
.example-button {
font-size:1em;
padding:0.5em;
}
}
<div.count>
${state.count}
</div>
<button.example-button on-click('increment')>
Click me!
</button>
The same component as above split into an index.marko
template file,
component.js
containing your component logic, and style.css
containing your
component style:
index.marko
<div.count>
${state.count}
</div>
<button.example-button on-click('increment')>
Click me!
</button>
component.js
module.exports = {
onCreate() {
this.state = { count: 0 };
},
increment() {
this.state.count++;
}
};
style.css
.count {
color: #09c;
font-size: 3em;
}
.example-button {
font-size: 1em;
padding: 0.5em;
}
Marko also supports a beautifully concise syntax as an alternative to its HTML syntax. Find out more about the concise syntax here.
<!-- Marko HTML syntax -->
<ul class="example-list">
<for|color| of=['a', 'b', 'c']>
<li>${color}</li>
</for>
</ul>
// Marko concise syntax
ul.example-list
for|color| of=['a', 'b', 'c']
li -- ${color}
npm install marko
![]() | ![]() | ![]() |
---|---|---|
Ask and answer StackOverflow questions with the marko tag | Come hang out in our Gitter chat room, ask questions, and discuss project direction | Tweet to @MarkoDevTeam or with the #markojs hashtag |
Marko would not be what it is without all those who have contributed ✨
CONTRIBUTING.md
and check out our bite-sized and help-wanted issuesMIT
FAQs
UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.
We found that markojs demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.