-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
333 lines (311 loc) · 15.8 KB
/
Copy pathindex.html
File metadata and controls
333 lines (311 loc) · 15.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta charset="UTF-8">
<script>
(function(){try{var k='meru-theme',t=localStorage.getItem(k);if(t!=='light'&&t!=='dark'){t=window.matchMedia('(prefers-color-scheme: light)').matches?'light':'dark';}document.documentElement.setAttribute('data-theme',t);}catch(e){document.documentElement.setAttribute('data-theme','dark');}})();
</script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Project Meru: open-source software across categories</title>
<meta name="description" content="Project Meru is an open-source initiative building software across categories. First up: Sumeru, a modular ERP framework in Go.">
<link rel="canonical" href="https://projectmeru.github.io/">
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large">
<meta name="author" content="Project Meru">
<meta name="theme-color" content="#050505">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Project Meru">
<meta property="og:url" content="https://projectmeru.github.io/">
<meta property="og:title" content="Project Meru: open-source software across categories">
<meta property="og:description" content="An open-source initiative building software across categories. First up: Sumeru, a modular ERP framework in Go.">
<meta property="og:image" content="https://projectmeru.github.io/og.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:type" content="image/png">
<meta property="og:image:alt" content="Project Meru: open-source software across categories">
<meta property="og:locale" content="en_GB">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Project Meru: open-source software across categories">
<meta name="twitter:description" content="An open-source initiative building software across categories. First up: Sumeru, a modular ERP framework in Go.">
<meta name="twitter:image" content="https://projectmeru.github.io/og.png">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/meru.css">
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><rect width='100' height='100' rx='22' fill='%235b8def'/><path d='M22 74V26l28 26 28-26v48' fill='none' stroke='%23fff' stroke-width='11' stroke-linejoin='round' stroke-linecap='round'/></svg>">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://projectmeru.github.io/#org",
"name": "Project Meru",
"alternateName": "Meru",
"url": "https://projectmeru.github.io/",
"description": "Project Meru is an open-source initiative that builds software across categories, starting with Sumeru, a modular ERP framework written in Go.",
"sameAs": ["https://github.com/ProjectMeru"]
},
{
"@type": "WebSite",
"@id": "https://projectmeru.github.io/#website",
"url": "https://projectmeru.github.io/",
"name": "Project Meru",
"inLanguage": "en-GB",
"publisher": { "@id": "https://projectmeru.github.io/#org" }
},
{
"@type": "WebPage",
"@id": "https://projectmeru.github.io/#webpage",
"url": "https://projectmeru.github.io/",
"name": "Project Meru: open-source software across categories",
"description": "Home of Project Meru: an open-source initiative and catalogue of projects, starting with Sumeru ERP.",
"isPartOf": { "@id": "https://projectmeru.github.io/#website" },
"about": { "@id": "https://projectmeru.github.io/#org" },
"inLanguage": "en-GB",
"dateModified": "2026-08-10"
}
]
}
</script>
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<div class="site-chrome">
<div class="card-nav-container">
<nav class="card-nav" id="cardNav" aria-label="Project Meru">
<div class="card-nav-top">
<a class="card-nav-logo" href="index.html">
<span class="brand-mark" aria-hidden="true">
<img src="logo.png" alt="" width="28" height="28" decoding="async">
</span>
<span>Project Meru</span>
</a>
<div class="card-nav-links">
<button class="card-nav-trigger" type="button" data-panel="projects">Projects <span class="card-nav-trigger-caret" aria-hidden="true"></span></button>
<button class="card-nav-trigger" type="button" data-panel="org">About <span class="card-nav-trigger-caret" aria-hidden="true"></span></button>
</div>
<a class="card-nav-cta" href="sumeru/">Explore Sumeru</a>
<div class="card-nav-actions">
<a class="card-nav-icon-link" href="https://github.com/ProjectMeru" target="_blank" rel="noopener" aria-label="GitHub">
<svg viewBox="0 0 16 16" width="16" height="16" aria-hidden="true"><path fill="currentColor" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
</a>
<button type="button" class="theme-toggle" aria-label="Toggle color theme" title="Toggle color theme">
<svg class="icon-sun" viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"/></svg>
<svg class="icon-moon" viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 14.5A8.5 8.5 0 1 1 9.5 3a7 7 0 0 0 11.5 11.5z"/></svg>
</button>
</div>
</div>
<div class="card-nav-panel" data-panel="projects">
<div class="card-nav-boxes">
<a class="nav-box nav-box-featured" href="sumeru/">
<div class="nav-box-head"><span class="nav-box-tile">S</span><span class="nav-box-arrow">↗</span></div>
<span class="nav-box-label">Sumeru</span>
<span class="nav-box-description">Modular ERP framework in Go</span>
</a>
<a class="nav-box" href="#projects">
<div class="nav-box-head"><span class="nav-box-tile">☰</span><span class="nav-box-arrow">↗</span></div>
<span class="nav-box-label">Catalogue</span>
<span class="nav-box-description">All projects by category</span>
</a>
<a class="nav-box" href="https://github.com/ProjectMeru" target="_blank" rel="noopener">
<div class="nav-box-head"><span class="nav-box-tile">⌘</span><span class="nav-box-arrow">↗</span></div>
<span class="nav-box-label">GitHub</span>
<span class="nav-box-description">Source and issues</span>
</a>
</div>
</div>
<div class="card-nav-panel" data-panel="org">
<div class="card-nav-boxes">
<a class="nav-box" href="about.html">
<div class="nav-box-head"><span class="nav-box-tile">※</span><span class="nav-box-arrow">↗</span></div>
<span class="nav-box-label">About Meru</span>
<span class="nav-box-description">The initiative and how we ship</span>
</a>
<a class="nav-box" href="#why">
<div class="nav-box-head"><span class="nav-box-tile">01</span><span class="nav-box-arrow">↗</span></div>
<span class="nav-box-label">Why Meru</span>
<span class="nav-box-description">What the umbrella is for</span>
</a>
<a class="nav-box" href="#contribute">
<div class="nav-box-head"><span class="nav-box-tile">-></span><span class="nav-box-arrow">↗</span></div>
<span class="nav-box-label">Contribute</span>
<span class="nav-box-description">Feedback over code, for now</span>
</a>
</div>
</div>
</nav>
</div>
</div>
<main id="main">
<section class="hero" id="top">
<div class="wrap">
<div class="hero-inner">
<div class="hero-copy">
<p class="eyebrow"><span class="dot"></span> Open source · Multi-project · Apache-friendly</p>
<h1>Project Meru<span style="display:block;color:var(--color-muted);font-weight:400">Software across categories.</span></h1>
<p class="lede">
<strong>Project Meru</strong> is an open-source hub for multiple projects.
First up: <strong>Sumeru</strong>, a modular ERP framework in Go.
</p>
<div class="hero-actions">
<a class="btn btn-primary" href="sumeru/">Explore Sumeru</a>
<a class="btn btn-ghost" href="#projects">Browse projects</a>
</div>
</div>
<div class="terminal" aria-hidden="true">
<div class="terminal-bar">
<span class="terminal-dot"></span><span class="terminal-dot"></span><span class="terminal-dot"></span>
<span class="terminal-title">project meru</span>
</div>
<div class="terminal-body"><span class="t-cmd">$ ls projects/</span>
<span class="t-ok">sumeru/</span> erp · go · apache-2.0
<span class="t-dim">tooling/</span> coming soon
<span class="t-dim">infra/</span> coming soon
<span class="t-cmd">$ open sumeru/</span>
Modular ERP. One kernel. Addon contract.
</div>
</div>
</div>
</div>
</section>
<section class="section" id="projects">
<div class="wrap">
<p class="section-kicker">01 / Projects</p>
<h2>A catalogue, not a monolith.</h2>
<p class="section-lede">
Meru is the catalogue; each product keeps its own name, docs and roadmap.
</p>
<div class="grid grid-3">
<a class="card project-card" href="sumeru/">
<span class="badge badge-live">Live</span>
<h3>Sumeru</h3>
<p>Modular ERP framework in Go. Business functions are addons: manifest, models, XML views. PostgreSQL underneath, server-rendered UI, no front-end build step.</p>
<div class="project-meta">
<span>ERP</span>
<span>Go</span>
<span>Apache 2.0</span>
</div>
</a>
<div class="card project-card is-soon" aria-disabled="true">
<span class="badge badge-soon">Coming soon</span>
<h3>Tooling</h3>
<p>Small utilities: plain interfaces, easy to run.</p>
<div class="project-meta">
<span>Tooling</span>
<span>Planned</span>
</div>
</div>
<div class="card project-card is-soon" aria-disabled="true">
<span class="badge badge-soon">Coming soon</span>
<h3>Infra</h3>
<p>Infrastructure-oriented projects for teams that want fewer moving parts beside the database.</p>
<div class="project-meta">
<span>Infra</span>
<span>Planned</span>
</div>
</div>
</div>
</div>
</section>
<section class="section section-alt" id="why">
<div class="wrap">
<p class="section-kicker">02 / Why Meru</p>
<h2>One initiative.<br>Many sharp tools.</h2>
<div class="grid grid-3 mt-lg">
<div class="card">
<div class="card-num">01</div>
<h3>Clear names</h3>
<p>The organisation is Meru. Products keep their own names (Sumeru in the code, CLI and modules) so search, licences and docs stay clear.</p>
</div>
<div class="card">
<div class="card-num">02</div>
<h3>Category room</h3>
<p>ERP is first, not last. The hub is structured so tooling, infra and future categories can sit beside Sumeru without crowding its product site.</p>
</div>
<div class="card">
<div class="card-num">03</div>
<h3>Pre-alpha honesty</h3>
<p>We publish gaps instead of hiding them behind a feature matrix.</p>
</div>
</div>
</div>
</section>
<section class="section" id="featured">
<div class="wrap">
<p class="section-kicker">03 / Featured</p>
<h2>Sumeru, today.</h2>
<p class="section-lede">
An open-source modular ERP: addons for contacts, products, CRM, sales, invoicing and more,
on a Go kernel with plain PostgreSQL tables.
</p>
<div class="grid grid-2">
<div class="card">
<h3>For engineers</h3>
<p>Three Go modules, generated blank imports, XML views, event bus, JSON-RPC API. Get from empty database to setup wizard in minutes.</p>
<div class="hero-actions">
<a class="btn btn-primary" href="sumeru/docs/guides/start/installation.html">Installation</a>
</div>
</div>
<div class="card">
<h3>For the curious</h3>
<p>Read the architecture, scan the addon catalogue, and see what is intentionally missing before you depend on it.</p>
<div class="hero-actions">
<a class="btn btn-ghost" href="sumeru/architecture.html">Architecture</a>
<a class="btn btn-ghost" href="sumeru/addons.html">Addons</a>
</div>
</div>
</div>
</div>
</section>
<section class="section section-alt" id="contribute">
<div class="wrap wrap-narrow">
<p class="section-kicker">04 / Contribute</p>
<h2>Design feedback first.</h2>
<p class="section-lede">
If you have run production software in these categories, tell us where it failed.
That feedback shapes the contracts most.
</p>
<div class="hero-actions">
<a class="btn btn-primary" href="https://github.com/ProjectMeru" target="_blank" rel="noopener">GitHub</a>
<a class="btn btn-ghost" href="about.html">About the initiative</a>
</div>
</div>
</section>
<section class="cta">
<div class="wrap wrap-narrow">
<h2>Start with Sumeru.</h2>
<p>Pre-alpha product site for Sumeru.</p>
<div class="hero-actions">
<a class="btn btn-primary" href="sumeru/">Open Sumeru</a>
<a class="btn btn-ghost" href="https://github.com/ProjectMeru" target="_blank" rel="noopener">View on GitHub</a>
</div>
</div>
</section>
</main>
<footer class="site-footer">
<div class="wrap footer-inner">
<div class="footer-brand">
<span class="brand-mark" aria-hidden="true">
<img src="logo.png" alt="" width="28" height="28" decoding="async">
</span>
<div>
<strong>Project Meru</strong>
<p>Open-source software across categories. First product: <a href="sumeru/">Sumeru</a>.</p>
</div>
</div>
<nav class="footer-links" aria-label="Footer">
<a href="#projects">Projects</a>
<a href="about.html">About</a>
<a href="sumeru/">Sumeru</a>
<a href="sumeru/docs/guides/start/installation.html">Installation</a>
<a href="https://github.com/ProjectMeru" target="_blank" rel="noopener">GitHub ↗</a>
</nav>
</div>
<div class="wrap footer-bottom">
<p>© <span id="year"></span> Project Meru · Community software under open licences · See each project for details</p>
</div>
</footer>
<button class="to-top" id="toTop" aria-label="Back to top">↑</button>
<script src="js/meru.js"></script>
</body>
</html>