Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/hmnurl/hmnurl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ func TestStaticPages(t *testing.T) {
AssertRegexMatch(t, BuildManifesto(), RegexManifesto, nil)
AssertRegexMatch(t, BuildValues(), RegexValues, nil)
AssertRegexMatch(t, BuildAbout(), RegexAbout, nil)
AssertRegexMatch(t, BuildCommunicationGuidelines(), RegexCommunicationGuidelines, nil)
AssertRegexMatch(t, BuildCommunicationGuidelines(), RegexOldCommunicationGuidelines, nil)
AssertRegexMatch(t, BuildContactPage(), RegexContactPage, nil)
}

Expand Down
20 changes: 19 additions & 1 deletion src/hmnurl/urls.go
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,25 @@ func BuildAbout() string {
return Url("/about", nil)
}

var RegexCommunicationGuidelines = regexp.MustCompile("^/communication-guidelines$")
var RegexRules = regexp.MustCompile("^/rules$")

func BuildRules() string {
return Url("/rules", nil)
}

var RegexPrivacyPolicy = regexp.MustCompile("^/privacy$")

func BuildPrivacyPolicy() string {
return Url("/privacy", nil)
}

var RegexAIPolicy = regexp.MustCompile("^/ai-policy$")

func BuildAIPolicy() string {
return Url("/ai-policy", nil)
}

var RegexOldCommunicationGuidelines = regexp.MustCompile("^/communication-guidelines$")

func BuildCommunicationGuidelines() string {
return Url("/communication-guidelines", nil)
Expand Down
4 changes: 2 additions & 2 deletions src/templates/src/about.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ <h2>
The Handmade Network was founded by Abner Coimbre as a community for fans of <a href="https://handmadehero.org/">Handmade Hero</a>, a Twitch series where games industry veteran Casey Muratori teaches you how to make a game and engine from scratch. Since then, the community has grown massively, launched many careers, and spawned amazing projects that thousands of people use every day. Handmade Hero is no longer active, but Casey is still producing high-quality programming education through <a href="https://www.computerenhance.com/">Computer, Enhance!</a>
</p>
<p>
The Handmade Network is an initiative of the <a href="https://handmade.foundation/">Handmade Software Foundation</a>, a (soon-to-be) 501(c)(6) nonprofit corporation.
The Handmade Network is an initiative of the <a href="https://handmade.foundation/">Handmade Software Foundation</a>, a 501(c)(6) nonprofit corporation.
</p>
</div>

Expand All @@ -30,7 +30,7 @@ <h4>Lead, Foundation President</h4>
As lead and foundation president, Ben sets the vision and direction for the Handmade community and writes a lot of web pages like this one. His goal is to foster the development of Handmade software and Handmade programmers, and to move the software industry toward a new future where our "high-level" tools are built on solid low-level foundations.
</p>
<p>
On the professional side, Ben works on WebAssembly at Mozilla within the <a href="https://spidermonkey.dev/">SpiderMonkey</a> team. Before this, he spent many years as a web developer building apps and backend services, with a focus on performance. He also acts as lead mentor of a <a href="https://www.msarobotics.org/"><i>FIRST</i> Robotics team</a>.
On the professional side, Ben works on WebAssembly at Mozilla within the <a href="https://spidermonkey.dev/">SpiderMonkey</a> team. Before this, he spent many years as a web developer building apps and backend services. He also mentors a <a href="https://www.msarobotics.org/"><i>FIRST</i> Robotics team</a>.
</p>
<!-- <p>
Twitter: <a target="_blank" href="https://twitter.com/its_bvisness">its_bvisness</a>
Expand Down
96 changes: 96 additions & 0 deletions src/templates/src/ai_policy.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
{{ template "base-2024.html" . }}

{{ define "extrahead" }}
<script type="module" src="{{ static "js/hilbert.js" }}"></script>
{{ end }}

{{ define "content" }}
<div class="h3 hilbert hilbert-color" style="--hue: 340deg"></div>
<div class="flex justify-center tc">
<div class="w-100 mw-site-narrow">
<h1 class="pv4 pv5-ns f3 f2-ns">AI Policy</h1>
</div>
</div>
<div class="mw-site-narrow ph3 post-content center">
<hr class="mb4">

<p>The Handmade Network exists to promote the development of high-quality software and foster a community of programmers who enjoy and deeply understand programming. We recognize that AI tools are powerful, but because they make it easy to produce code without understanding, AI tends to go against the values of this community in practice.</p>

<p>Our goal with this policy is not to forbid the responsible use of AI. Instead, our AI policy is designed to put boundaries on AI use that preserve the community’s values and provide guidance on how to use AI in ways we consider responsible.</p>

<p><b>Please remember:</b> We do NOT believe that it is impossible to create useful (or even high-quality) software using the tools and practices forbidden here. If we forbid a practice, that ONLY means that it goes against our community values.</p>


<h3>No vibe-coding</h3>

<p>We are firmly against “vibe-coding”, by which we mean “producing software without looking at the code”. Vibe-coded projects are not allowed to be shared under any circumstances. For discussion purposes, vibe-coding should be considered off-topic for the community.</p>

<p>The Handmade community has always encouraged its members to build things for themselves, whether for self-sufficiency, education, or simply the joy of programming. We care about what the computer is actually doing, and the best way to understand this will always be to write the code yourself, but reading the code is the bare minimum.</p>


<h3>No AI prose</h3>

<p>It is never acceptable for any of your communication within the community to be generated by AI. This includes messages on the website and Discord, blog posts, READMEs, and any other text authored by you and intended to be read by members of the community.</p>

<p>It is rude to expect others to put more effort into reading than you put into writing. Furthermore, in an online community, you <em>are</em> the words you write. Your words reveal your personality, your background, your experience, and your understanding. Writing is also thinking; by writing about a subject, you clarify your own understanding of it, and become a better community member and a better engineer.</p>

<p>We would always rather read broken English or a half-finished blog post instead of sanitized AI prose.</p>


<h3>All projects require AI disclosure</h3>

<p>All projects on the website must disclose how they use generative AI, including for prototypes, secondary artifacts like tests and build scripts, and purposes other than code generation. This gives the community and its leadership the information they need to judge whether a project is a good fit for Handmade values.</p>

<p>We understand that many community members are using AI in ways they feel are responsible and in line with the Handmade ethos, and we wish to respect that, while recognizing that opinions vary widely within the community on which kinds of AI use are acceptable. Disclosure is the most practical way for us to navigate this tension.</p>


<h3>Restrictions on Discord</h3>

<p>Some channels on the Handmade Network Discord server have additional restrictions on AI content:</p>

<ul>
<li><b>Discussion of generative AI is forbidden in #general.</b> This ensures that community members always have a space they can visit for AI-free programming discussion. General discussion of generative AI is permitted in other channels such as #undefined-behavior.</li>
<li><b>All #project-showcase posts must be Zero AI<sup>*</sup>.</b> The showcase channel is our community’s greatest source of inspiration, and should be the clearest expression of our values. Projects that use some amount of AI may still be discussed in other channels like #workspace.</li>
</ul>

<p>By “Zero AI<sup>*</sup>” we mean that the material being showcased has zero AI generated code, in all respects (including build scripts and tests, if applicable), with two exceptions:</p>

<ol>
<li>Using AI as a search tool is acceptable. For the purposes of this policy, we do not consider copy-paste of AI search results to be “AI codegen”, although you really ought to read and understand it carefully.</li>
<li>Using AI for entirely mechanical and deterministic purposes is acceptable, e.g. generating bindings or data tables. In such cases, the end result is indistinguishable from handwritten code.</li>
</ol>

<p>The #project-showcase restriction applies only to the material being showcased, not the entire project. The author of a project that has disclosed AI use may therefore still share updates in #project-showcase as long as AI was not involved in the material being showcased.</p>


<h3>FAQ</h3>

<h4>Can I use AI to find bugs or do security analysis?</h4>

<p>Yes. Just don’t be too eager to apply an AI-suggested fix :)</p>

<h4>I have no sense of aesthetics. Can I use AI to help my projects look more appealing?</h4>

<p>We do not draw a distinction between AI-generated styles and AI-generated code. As with prose, we would rather see programmer UI than artificially polished UI. If you want to make your project look better, the community is full of people who would be happy to help!</p>

<p>As for assets, while we have no specific rules against AI-generated media, you are strongly discouraged from using AI assets in your projects. We like programmer art!</p>

<h4>I am a beginner. Is it ok to use AI to find my way around?</h4>

<p>We understand that AI can be very helpful as a beginner tool, but please don’t take shortcuts! We pride ourselves on being welcoming to beginners and willing to answer stupid questions, and are happy to provide guidance. We also love when beginners share their work, so don’t be afraid to engage with the community. We were all once beginners.</p>

<h4>What’s wrong with using AI for tests?</h4>

<p>Testing is a serious and important skill in programming that needs to be developed like any other. Programmers who are good at testing their code have developed their instincts through experience, and often employ a variety of techniques to make their tests more coherent, maintainable, and effective.</p>

<h4>What’s wrong with using AI for build scripts?</h4>

<p>Your build script is a critical part of your project that also deserves care and attention. If your build script is so complicated that you need an AI to write it for you, perhaps you just need to simplify your builds. Your future self, and future coworkers, will thank you for taking your build seriously!</p>


<hr>


<p><i>Last updated on September 6, 2026.</i></p>
</div>
{{ end }}
54 changes: 0 additions & 54 deletions src/templates/src/communication_guidelines.html

This file was deleted.

3 changes: 2 additions & 1 deletion src/templates/src/include/header-2024.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@
</a>
<div class="submenu" id="about-submenu">
<a href="{{ .Header.ManifestoUrl }}">Manifesto</a>
<a href="{{ .Header.ValuesUrl }}">Our values</a>
<a href="{{ .Header.ValuesUrl }}">Our Values</a>
<a href="{{ .Header.RulesUrl }}">Rules &amp; Policies</a>
<a href="{{ .Header.AboutUrl }}">About</a>
</div>
</div>
Expand Down
31 changes: 22 additions & 9 deletions src/templates/src/manifesto.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,37 @@ <h1 class="pv4 pv5-ns f3 f2-ns">The Handmade Manifesto</h1>
<div class="mw-site-narrow ph3 post-content center">
<hr class="mv4">

<div class="serif tc i flex justify-center mv4 mv5-ns">
<div>
<div class="f4">
“What I cannot create,<span class="dn-ns"><br>&nbsp;</span> I do not understand.”
</div>
<div class="tr">
- Richard Feynman
</div>
</div>
</div>

<hr class="mv4">

<h3>Computers are amazing.</h3>
<p>Computing has changed our lives for the better. Computers allow us to learn, connect with each other, and express ourselves in amazing new ways. And every year our devices get more powerful, less expensive, and more accessible - computers today can do things we hardly dreamed of twenty years ago.</p>
<p>Computing has changed our lives for the better. Computers allow us to learn, connect with each other, and express ourselves in amazing new ways. And every year our devices get more powerful, less expensive, and more accessible – computers today can do things we hardly dreamed of just twenty years ago.</p>

<h3>So why is software so terrible?</h3>
<p>Why do high-end gaming PCs struggle to browse the web at 60 frames per second? Why does a simple calculator need a splash screen? Why does your phone's battery still die so quickly? And why does each update make the problem worse?</p>
<p>And why do we all use huge frameworks that no one understands? Why do our projects take minutes to compile? Why do we have to restart our language servers every twenty minutes? And why does everyone think this is fine?</p>
<p>Why do high-end gaming PCs struggle to browse the web at 60 frames per second? Why do simple applications need splash screens? Why does your phone's battery still die so quickly? And why does each update make the problem worse?</p>
<p>And why do we all use huge frameworks that no one understands? Why do our projects still take minutes to compile? Why do we have to restart our language servers every twenty minutes? And why does everyone think this is fine?</p>

<h3>We made it terrible.</h3>
<p>We, programmers, have made it terrible through our thoughtless behavior. We rewrite our apps in new languages, and rather than measure anything, we just assume it will be better. We ship thousands of dependencies to our users to save ourselves a few minutes of effort. We build towers of abstractions, forget how they work, and then build new ones on top.</p>
<p>This isn't engineering. We're building Rube Goldberg machines, and users are paying the cost.</p>
<p>You may have learned that programming is about classes, monads, or type systems. You may have been taught to make your code clean, abstract, and future-proof. None of that matters when the end result is garbage.</p>
<p>We, programmers, have made it terrible through our thoughtless behavior. We rewrite our apps in new languages without measuring a thing. We buy faster computers rather than make our software faster. We ship thousands of dependencies to our users to save a few minutes of effort. We build towers of abstractions, forget how they work, and then build new ones on top.</p>
<p>This isn't engineering. We're building Rube Goldberg machines, and everyone else is paying the cost.</p>
<p>You may have learned that programming is about classes, monads, or type systems. You may have been taught to make your code clean, abstract, and future-proof. But none of that matters when the end result is garbage.</p>

<h3>But there is another way.</h3>
<p>You can break out of this cycle. You can learn how computers actually work, so you can unleash the full potential of modern systems. You can dig deep into the tech stack and learn what others take for granted. When you run into a wall, rather than stop, you can dig under it.</p>
<p>This is our mission. You don't have to be a genius to make your software better - you just have to be willing to learn and willing to go against conventions. We're here to teach you, to inspire you, to help you break free from the mess of modern software development and make software the Handmade way.</p>
<p>You can fight the trends of laziness and slop. You can learn how computers actually work, so you can unleash the full potential of modern systems. You can dig deep into the tech stack and learn what others take for granted. When you run into a wall, rather than stop, you can climb over it – or dig under it.</p>
<p>This is our mission. You don't have to be a genius to make your software better – you just have to be willing to learn and willing to go against conventions. You don't have to depend on libraries, StackOverflow, or AI – computers are not magic, and you can learn how they work. We're here to teach you, to inspire you, to help you break free from the mess of modern software development and make software the Handmade way.</p>

<h3>So join us.</h3>
<p>We <em>know</em> how much better software can be. The industry needs to change, and we're going to lead the way. Join us, and learn to build software by hand.</p>
<p>We <em>know</em> how much better software can be. Join us, and learn to build software by hand.</p>

<hr class="mv4">

Expand Down
Loading
Loading