diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c75eecc --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/public diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..ee7bc06 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "themes/juice"] + path = themes/juice + url = https://github.com/lalanza808/juice diff --git a/README.md b/README.md index 9cfa633..93ee06e 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ # moneropunks.org -Static site for the Monero Punks Collective website. + +Static site for the Monero Punks Collective website. This static site is intended to be used with [Zola](https://www.getzola.org/) static site generator. diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..1a25d4c --- /dev/null +++ b/config.toml @@ -0,0 +1,25 @@ +# The URL the site will be built for +base_url = "https://moneropunks.org" + +# Whether to automatically compile all Sass files in the sass directory +compile_sass = false + +# Whether to build a search index to be used later on by a JavaScript library +build_search_index = false + +theme = "juice" + +[markdown] +# Whether to do syntax highlighting +# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola +highlight_code = true + +[extra] +juice_logo_name = "M.P.C." +juice_logo_path = "moneropunks.jpg" +juice_extra_menu = [ + { title = "Blog", link = "/blog/"}, + { title = "Forum", link = "https://forum.moneropunks.org", target = "_blank"}, + { title = "Chat", link = "https://web.libera.chat/?channel=#monero-punks", target = "_blank"} +] +repository_url = "https://github.com/lalanza808/moneropunks.org" diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..6125ea0 --- /dev/null +++ b/content/_index.md @@ -0,0 +1,6 @@ ++++ +title = "Monero Punks Collective" +description = "A collective of builders, developers, engineers, and entrepreneurs - cypher punks - interested in building a healthy ecosystem of tools and support. We design, develop, and implement solutions for the Monero ecosystem at large." ++++ + +Get in loser, we're going to the show. diff --git a/content/about.md b/content/about.md new file mode 100644 index 0000000..1517f7b --- /dev/null +++ b/content/about.md @@ -0,0 +1,37 @@ ++++ +title = "About" +description = "About the Monero Punks Collective workgroup" +weight = 3 ++++ + + +The Monero Punks workgroup was started as a way to rally the builders in the Monero community and provide an effort to truly showcase their work. + +There are many individuals and organizations out there building tools and services but their contributions get lost in the noise since the largest social gatherings (Reddit, Twitter) mostly discuss price, trading, marketing, art, and stickers (hype). Additionally, there aren't many good places where tools and services are being aggregated; [getmonero.org](https://getmonero.org) shows mostly merchants. There's not much detail around the general projects and tools being developed in the ecosystem for those with the inclination to tinker. + +For now, we can be found at the following places on the web: +* `#monero-punks` on [Libera Chat](https://libera.chat), IRC network +* `forum.moneropunks.org` - [Forum](https://forum.moneropunks.org) ([Onion Link](http://gay6icg34lq4jjzgjw2fof5gj3pqzvakniwbufk23vhq4fdof4r223qd.onion)) + +# Who We Are + +* tinkerers +* software developers and engineers +* system administrators +* enthusiasts +* entrepreneurs + +# What We Are About + +* useful technology +* full stack design and implementation +* modern frameworks +* security at all layers +* everything as code + +# What We Live By + +* KISS +* RTFM +* leave it in better shape than you found it +* fail fast diff --git a/content/blog/2021-june-update.md b/content/blog/2021-june-update.md new file mode 100644 index 0000000..6736bbf --- /dev/null +++ b/content/blog/2021-june-update.md @@ -0,0 +1,39 @@ ++++ +title = "2021 June Update" +date = 2021-06-28 14:52:01 +description = "First update since the launch of the Monero Punks workgroup" +author = "lza_menace" ++++ + +I made the decision to make this workgroup 6 days ago, bought the domain and created the forum 6 days ago, and posted about it on Reddit/Twitter 5 days ago. + +In that 5 days, here's what we've got cooking from the Monero Punks crew: + +# Light Wallets + +We don't talk about these enough. This could unlock a whole new world of UX for Monero. I'm not talking about a full local wallet with a remote node, I mean a wallet that talks to a server to retrieve updates about it's history on the chain. Rather than waiting for your local wallet to sync up with the chain when you open the app (or run in the background as a service) the premise is that a backend server maintains the wallet sync status and your wallet client just fetches it when you open it. It's much more lightweight and avoids much of the syncing involved with local full wallet implementations (Cake Wallet, Monerujo, Feather, Monero GUI, Monero CLI). + +The idea of a remote source being involved may cause concern for single point of failure, privacy, etc, but consider the possibility of a hybrid scenario in which your phone can do both; talk to a server for a periodic update, but also have the ability to switch to full node (no idea if this is possible with the cryptography, but spit-balling here). Also consider the fact that you could own and run your own backend server, no middle-men needed. + +Sounds awesome, right? + +Almost none of the wallets can do this natively as this capability is not in the current Monero codebase (`wallet2.cpp`) of which all the major wallets have used to transpile their mobile apps. There is one wallet that can do this which is [MyMonero](https://mymonero.com); that codebase has a bespoke implementation of the light wallet functionality. Unfortunately, the source code for the `mymonero.com` backend which does the syncing and interacting via REST API is not available, though there are alternatives. + +Through trial and error we were able to get select versions of `MyMonero` working with an open source backend, [monero-lws](https://github.com/vtnerd/monero-lws). The author of this backend is a long-time Monero code contributor and C++ developer, `vtnerd`. They would like to merge this code into the official Monero project eventually. + +In terms of this light wallet capability being utilized, it's just not ready enough for mass consumption yet, though power users will be able to set this up on their own with basic guidance. The `MyMonero` app has a lot of complexity which seems to manifest lots of bugs and inconsistencies between devices. A new wallet would feel better, but an existing one adding functionality would be nice, but it will take a while because the C++ Monero codebase would need this capability integrated into it; that is a whole other can of worms unfortunately. + +The fastest path to a usable light wallet solution is trimming the burs on `MyMonero` and streamlining the package and distribution of `monero-lws`. Some additional code may be needed to better fit some integrations for `monero-lws`, but otherwise a light wallet solutions is mostly working. + +If this is something the larger community may find useful we will need a joint collaboration between wallet developers, backend developers, C++ developers, and Monero cryptography subject matter experts. + +> The Monero Punks workgroup will plan to document the setup of a light wallet for power users and work to develop more of a turnkey implementation. If prototypes show some success perhaps a broader push can be mode to update the `wallet2.cpp` codebase to accomodate native light wallet support. + + +# XMR Patronage + +Not sure what to call this without saying "Patreon". A website for creators to share their content to a privacy conscious audience. We basically need to facilitate a way for people to maintain an account and upload/store text, photos, and videos but gated to only allow other registered users who have confirmed payments to view it. Patrons can support their favorite artists, journalists, bloggers, photographers, etc and pay completely anonymously. + +On the outset this sounds like a fairly basic CRUD app that has a lot of bells and whistles. However, there are a lot of architecture decisions to make here which can have impacts on the system down the line. Regardless, I've begun working on a prototype which I'm calling [XMR Backers](https://github.com/lalanza808/xmrbackers). I'm still in the process of thinking through potential workflows and schemas for managing funds, subscriptions, and validating payments, restricting access, etc. + +It is extremely rudimentary and essentially still a blueprint for a Python web service utilizing Quart (async Flask). diff --git a/content/blog/_index.md b/content/blog/_index.md new file mode 100644 index 0000000..b1e344a --- /dev/null +++ b/content/blog/_index.md @@ -0,0 +1,5 @@ ++++ +title = "Blog" +template = "blog.html" +permalink = "/blog" ++++ diff --git a/static/moneropunks.jpg b/static/moneropunks.jpg new file mode 100644 index 0000000..9a78e62 Binary files /dev/null and b/static/moneropunks.jpg differ diff --git a/templates/_macros.html b/templates/_macros.html new file mode 100644 index 0000000..f996dff --- /dev/null +++ b/templates/_macros.html @@ -0,0 +1,26 @@ +{% macro render_header() %} +{% set section = get_section(path="_index.md") %} + + + + + + + +{% endmacro render_header %} diff --git a/templates/_variables.html b/templates/_variables.html new file mode 100644 index 0000000..5a1d045 --- /dev/null +++ b/templates/_variables.html @@ -0,0 +1,15 @@ + diff --git a/templates/blog.html b/templates/blog.html new file mode 100644 index 0000000..b1fce81 --- /dev/null +++ b/templates/blog.html @@ -0,0 +1,56 @@ +{% extends "juice/templates/index.html" %} + +{% block header %} +
+ {{ macros::render_header() }} +
+{% endblock header %} + +{% block content %} +
+{% for page in section.pages %} +
+ +
+

{{ page.title }}

+

{{ page.date }}

+
+
+

{{ page.description }}

+
+
+
+{% endfor %} +
+ +{% endblock content %} + +{% block hero %}{% endblock hero %} +{% block toc %}{% endblock toc %} + +{% block footer %} + +{% endblock footer %} diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..8bf27a3 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,92 @@ +{% extends "juice/templates/index.html" %} + +{% block hero %} +
+

+ {{ section.title }} +

+

+ {{ section.description }} +

+
+ + + +{% endblock hero %} + +{% block content %} + +{% endblock content %} + +{% block toc %} +{% if section.toc %} +{% set toc = section.toc %} +{% elif page.toc %} +{% set toc = page.toc %} +{% endif %} +{% if toc %} +
+
+ {% for h in toc %} + + {% if h.children %} + {% for h2 in h.children %} +
+ - {{ h2.title }} + {% if h2.children %} + {% for h3 in h2.children %} + + {% endfor %} + {% endif %} +
+ {% endfor %} + {% endif %} + {% endfor %} +
+
+{% endif %} +{% endblock toc %} + +{% block footer %} + +{% endblock footer %} diff --git a/themes/juice b/themes/juice new file mode 160000 index 0000000..ac317ee --- /dev/null +++ b/themes/juice @@ -0,0 +1 @@ +Subproject commit ac317eef70361a08632f3f3d3b8b8ad022def45e