# Voboda
- I'm Salvor Voboda. I make things -- to help people communicate, and live freely.
- [💬 Matrix](https://matrix.to/#/@voboda:infinite.build)
- [📩 Email](mailto:voboda@voboda.com)
- [📨 Subscribe](https://tally.so/r/wvr558)
## Things
- ### Infinite Build
[Keep creating, and let the journey be the point.](https://infinite.build)
- ### zKal
[Privacy-respecting community calendar.](https://github.com/voboda/zKal)
[![](https://img.shields.io/badge/🥇-1st_Prize_ethBerlin-F4DF57?style=flat-square&logoColor=black)](https://ethberlin.org)
- ### Ephemerant
[Zero-knowledge swarm-based cohorts.](https://github.com/voboda/ephemerant)
[![](https://img.shields.io/badge/🥈-2nd_Prize_Mina-F3FEF1?style=flat-square&logoColor=black)](https://minaprotocol.com)
- ### 37C3 Treasure Hunt
[Navigate an AI-ruled dystopia as a gig worker.](https://37c3.dist0rtion.com/) With SDP for Chaos Congress.
- ### One Line For Your Mind
[Access your innate enlightenment.](https://onelineforyourmind.com)
## Words
- [Humanity’s Hidden Path](https://wiki.infinite.build/compendium)
Demystify cryptography's math and understand its effects on society.
Â
[Minacon: an Inflection Point](http://minaprotocol.com/blog/minacon-an-inflection-point)
A hacker-house unconference to tackle cross-discipline engineering challenges.
Â
[We are the preimage of a post-zk world.](https://notes.infinite.build/5EnkSX9jTQeuz42_JscxDA)
What can Group Theory in math teach us about community transformation?
Â
[Musters](https://notes.infinite.build/bLwmyb4kRvWmaIKSbeuolg)
An 'unconference' style that focuses on practical sessions.
Â
[Lost In Transaction](https://notes.infinite.build/s/ogCE9oFFR)
Do we give up on the dream?
## Communities
- [Infinite Build](https://infinite.build/)
[Mina Protocol](https://minaprotocol.com/zkapps)
[Social Distorti0n Protocol](https://x.com/dist0rtionproto)
[Department Of Decentralisation](https://dod.ngo/)
[Ethereum Magicians](https://ethereum-magicians.org/)
## Bio
- I'm a mixed-ethnicity, mixed-culture person, who's lived in diverse places across this little rock we share. In various languages, voboda means liberty, will, need, obvious, affirmative, fabric, and water. To me, it means something between all those: the source of intention.
I've traveled for love, curiosity, business, and of course, for fomo. Been homeless a few times, and worked my way to some upper echelons of our economy and society.
But does any of that matter? I was so busy figuring it out that I never really asked myself, *why this it*?
All I know is I want to help people communicate and learn from each other.
I like to keep my past life separate from my work now, because it lets the work stand on its own merit.
I just make things I wish existed, and leave the door open for others.
[📨 Get an email when I make something new](https://tally.so/r/wvr558)
<img src="https://voboda.goatcounter.com/count?p=/">
<style>
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
margin: 0 0 0.3em 0;
font-weight: normal;
line-height: 1.2;
font-size: 80%;
letter-spacing: 0.26em;
text-transform: uppercase;
margin-block-start: 0.83em;
margin-block-end: 0.83em;
margin-inline-start: 0px;
margin-inline-end: 0px;
unicode-bidi: isolate;
}
.markdown-body h1 {
display: none;
}
.markdown-body h2 {
margin-top: 4em !important;
font-weight: normal !important;
line-height: 1.2;
font-size: 80% !important;
letter-spacing: 0.26em;
text-transform: uppercase;
padding: 0.3em !important;
font-size: 1.5em;
border-bottom: none !important;
}
.markdown-body .buttons a {
color: #fff; /* Text color matches background color */
padding: 0.6em;
text-decoration-color: #29AF6A;
background-size: 100% 200%;
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.0) 50%, 50%);
transition: background-position .2s ease-in-out, color .2s ease-in-out;
display: block;
margin: 0px auto;
text-align: center;
border-radius: 10px; /* Rounded corners */
border: 1px solid #a94442; /* Fine border */
text-decoration: none;
line-height: 1.2;
position: relative;
}
.markdown-body .buttons a:hover,
.markdown-body .buttons a:focus {
background-position: 0 100%;
color: #fff;
}
.markdown-body .buttons a span {
font-size: 80%;
display: block;
text-align: center;
margin-top: 0.2em; /* Small margin between main text and span text */
display: inline-block;
vertical-align: middle;
}
.markdown-body .buttons a .win {
position: absolute;
display: inline-block;
vertical-align: middle;
top: 0.1em;
right: 0.1em;
font-size: 1.4em; /* Trophy icon size */
cursor: pointer;
padding: 0.2em; /* Padding around the emoji */
border-radius: 0.3em; /* Rounded corners for the emoji */
}
.markdown-body .buttons a .win:hover::after {
content: attr(data-tooltip); /* Popover text from data-tooltip attribute */
position: absolute;
display: inline-block;
vertical-align: middle;
top: -1.5em; /* Position the popover above the icon */
right: 0;
background: rgba(0, 0, 0, 0.8); /* Semi-transparent background color */
color: rgba(255, 255, 255, 0.9); /* Semi-transparent text color */
padding: 0.8em; /* Padding for the tooltip */
border-radius: 0.4em; /* Rounded corners for the tooltip */
white-space: nowrap;
z-index: 10; /* Ensure the popover is above other elements */
font-size: 14px; /* Smaller text font size */
}
.contact {
display: flex;
justify-content: center; /* Center horizontally */
align-items: center;
gap: 1em; /* Space between buttons */
margin: 2em;
}
.contact a {
position: relative;
display: flex;
justify-content: center;
align-items: center;
text-decoration: none;
color: inherit;
padding: 0.3em;
border-radius: 0.3em; /* Rounded corners */
background: rgba(0, 0, 0, 0.2); /* Slightly transparent background */
transition: background 0.2s ease-in-out;
}
.contact a .fa {
font-size: 2em; /* Adjust size as needed */
}
.contact a:hover {
background: rgba(0, 0, 0, 0.4); /* Slightly darker on hover */
}
.contact a span {
display: none; /* Hide text initially */
}
.contact a:hover span {
position: absolute;
background: rgba(0, 0, 0, 0.8); /* Semi-transparent background color */
color: rgba(255, 255, 255, 0.9); /* Semi-transparent text color */
padding: 0.8em; /* Padding for the tooltip */
border-radius: 0.4em; /* Rounded corners for the tooltip */
white-space: nowrap;
font-size: 14px; /* Smaller text font size */
display: block;
position: absolute;
top: -2.5em; /* Position the popover above the icon */
border-radius: 0.3em; /* Rounded corners for the tooltip */
white-space: nowrap;
font-size: 80%; /* Smaller text font size */
z-index: 10; /* Ensure the popover is above other elements */
transform: translateX(-50%); /* Center the popover horizontally */
left: 50%;
}
.markdown-body code {
font-family: menlo, inconsolata, monospace;
font-size: calc(1em - 2px);
background-color: #f0f0f0;
padding: 0.2em 0.4em;
border-radius: 2px;
}
.markdown-body p {
margin: 0 0 2rem 0;
}
.note {
font-size: 13px;
margin: 0px auto;
text-align: center;
}
</style>
<style>
body {
margin: 0;
font-family: Arial, sans-serif;
letter-spacing: 0.04em;
font-size: 16px;
line-height: 1.5;
margin: 0;
font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
letter-spacing: 0.02em;
font-size: 16px;
line-height: 1.5;
background: #180524;
color: #eaeaea;
background-image: radial-gradient( circle 1939px at 144.7% 100%, #031a27 10%, #180524);
min-height: 100vh;
background-attachment: fixed; /* Fix the background to prevent scrolling */
background-size: cover; /* Ensure the background covers the full height */
background-repeat: no-repeat; /* Prevent repetition */
}
#ui-toc-affix, .ui-infobar {
display: none !important;
}
::selection,
::-moz-selection {
background: #114283;
color: #fff;
}
.markdown-body {
font-family: Arial, sans-serif;
color: #333;
line-height: 1.5;
max-width: none;
color: #eaeaea;
}
.markdown-body>*:first-child {
margin-top: 120px !important;
}
.markdown-body > p > a > img {
width: 8em;
}
.markdown-body > p > a ,
.markdown-body li > p > a {
font-family: Monospace;
line-height: 0.8;
position: relative;
z-index: 1;
text-transform: uppercase;
letter-spacing: 2px;
display: block; /* gradient can be applied to text */
background: linear-gradient(120deg, #3c763d, #337ab7);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
display: block;
width: 100%;
border: 1px solid #337ab7;
padding: 15px 25px;
border-radius: 10px;
margin: 80px auto;
text-align: center;
}
.markdown-body > a {
font-family: Monospace;
font-size: calc(1vw);
margin: 120px auto 120px auto;
}
.markdown-body p {
text-align: left;
margin-bottom: 20px;
}
.markdown-body > h2 + p {
text-align: center;
}
.markdown-body > h3 {
margin-top: 80px;
text-align: center;
}
.markdown-body h2 {
border: none;
font-size: 36px;
text-align: center;
margin-top:120px;
font-weight: normal;
letter-spacing: 0.15em;
}
.markdown-body table {
border: none;
list-style: none;
padding: 0;
margin: 0;
width: 100%;
margin-bottom: 40px;
border-collapse: collapse;
}
.might .markdown-body table tr,
.night .markdown-body table tr:nth-child(2n),
.markdown-body table tr,
.markdown-body table tr:nth-child(2n) {
background: transparent !important;
}
.markdown-body table th, .markdown-body table td {
padding: 10px;
text-align: left;
border: none;
}
.markdown-body th {
text-align: left;
}
.markdown-body table td {
border: none;
}
.markdown-body table tr {
border: none;
}
.markdown-body > ul {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 20px;
list-style: none;
padding: 0;
margin: 0;
}
#Participants + ul > li{
font-size: 20px;
}
.markdown-body > ul > li {
background-color: rgba(255, 255, 255, 0.05);
color: #ccc;
text-align: center;
gap: 10px;
flex: 1 1 250px;
max-width: 450px;
min-width: 250px;
padding: 15px 25px;
border: 0px;
border-radius: 10px;
}
.markdown-body li+li {
margin-top: 0;
}
.markdown-body > ul > li > img {
width: 100%;
filter: grayscale(80%) sepia(10%) hue-rotate(170deg) saturate(150%) brightness(0.8);
object-fit: cover;
aspect-ratio: 1 / 1;
display: block;
margin-bottom: 10px;
}
.markdown-body > ul > li > ul {
text-decoration: none;
list-style: none;
margin: 20px 0px;
padding: 0px;
display: flex;
}
.markdown-body > ul > li > ul > li {
flex-grow: 1;
text-decoration: none;
flex-direction: column;
justify-content: space-between;
}
.markdown-body > ul > li > h3 {
margin-bottom: 5px;
text-align: center;
}
.markdown-body > ul > li > li a {
margin-top: auto; /* Pushes buttons to the bottom */
}
.markdown-body > ul > li > ul >li > a{
color: #cce;
padding: 10px 15px;
border: 1px solid #ccc3;
border-radius: 10px;
text-decoration: none;
font-weight: bold;
flex-shrink: 1;
text-align: center;
display: inline-block;
margin: 3px;
}
}
.markdown-body > ul > li > li > a:hover {
background-color: #e0e0e0;
color: #180524;
}
.markdown-body > p > a:hover {
rgba(255, 0, 150, 1);
}
.markdown-body hr {
height: 0.05em;
padding: 0;
margin: 24px 0;
background-color: #e7e7e7;
border: 0;
}
.markdown-body a {color: #5fa1dd;}
/* Override background color added to tables */
body.night table {
background-color: transparent !important;
border: none !important;
}
.markdown-body img[src*="shields.io/"] {
filter: saturate(0.3) contrast(0.7);
}
/* Override other night mode elements */
body.night .ui-view-area,
body.night .ui-edit-area,
body.night .modal-content,
body.night .panel,
body.night .panel-heading {
background-color: transparent !important;
color: #eaeaea !important;
}
/* Override CodeMirror's night mode background */
body.night .CodeMirror {
background-color: #2d2d2d !important;
color: #eaeaea !important;
}
/* Preserve your custom link and selection styles */
body.night a {
color: #5EB7E0 !important; /* Custom link color */
}
body.night ::selection,
body.night ::-moz-selection {
background: #114283 !important;
color: #fff !important;
}
</style>