[
{
"attrs": {},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Neopoligen\u0027s Target Audience",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "title",
"template_list": [
"sections/title/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "I\u0027m designing Neopoligen for folks who want to make websites with as little friction as possible.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "tldr",
"template_list": [
"sections/tldr/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Introduction",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Neopoligen",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "1",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": " is a website builder. I\u0027ve been working on it for a few years and am getting closer to launching it publicly. During the development, I\u0027ve been struggling to articulate who it\u0027s designed for. There are two groups I always kept in mind:",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "h2",
"template_list": [
"sections/h2/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {},
"bound": "full",
"children": [
{
"bound": "full",
"children": [
{
"children": [],
"kind": "olist-item-paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Myself (a web veteran with decades of experience), and",
"type": "plain-text"
}
],
"template_list": [
"sections/olist-item-paragraph/default.neoj"
],
"type": "block"
}
],
"kind": "olist-item",
"template_list": [
"sections/olist-item/default.neoj"
],
"type": "olistitem"
},
{
"bound": "full",
"children": [
{
"children": [],
"kind": "olist-item-paragraph",
"spans": [
{
"kind": "plain-text",
"text": "My nieces and nephews (who\u0027ve never made websites before)",
"type": "plain-text"
}
],
"template_list": [
"sections/olist-item-paragraph/default.neoj"
],
"type": "block"
}
],
"kind": "olist-item",
"template_list": [
"sections/olist-item/default.neoj"
],
"type": "olistitem"
}
],
"end_section": null,
"flags": [],
"kind": "olist",
"template_list": [
"sections/olist/default.neoj"
],
"type": "olist"
},
{
"attrs": {},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "That\u0027s a pretty diverse set. Writing this post helped me realize I\u0027m after a specific overlap. Namely, folks who want to get something to show up on a web page with as little friction as possible.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "That goal works for newer folks because it reduces the overhead it takes to get started (e.g. not having to learn a programming language like JavaScript).",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "It also works for folks who have been making web pages for years but are tired of the constant cycling of frameworks",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "2",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": " (e.g. you can skip having to set up a JavaScript framework)",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "p",
"template_list": [
"sections/p/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Magic 101",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "I started college in 1993. One of the first folks I met in the dorm was a techie from California named Chris. I\u0027d played around with Computer Bulletin-Board Systems",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "3",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": " and had an America Online internet account",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "4",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": " in high school. When Chris showed me how to get files with over the internet with an app called Gopher",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "5",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": " it was cool, but didn\u0027t blow me away. Then, he showed me the web.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "We went down to the computer lab",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "6",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": " and he pulled up a web browser called Mosaic",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "7",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": " and started clicking around. Again, it was cool, but didn\u0027t look any more impressive than what I\u0027d seen on America Online. In fact, it didn\u0027t look as good.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Then, he clicked a button labeled \"View Source\"",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "8",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": " and suddenly we were looking at the code that made the page.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "I felt like Neo at the end of the Matrix",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "9",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": ". I could see the exact places in the code that were responsible for what I was seeing in the browser.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "h2",
"template_list": [
"sections/h2/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "TODO: Insert Neo GIF here",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "aside",
"template_list": [
"sections/aside/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "It looked so straight forward. I thought there had to be more to it. There wasn\u0027t. Everything that was on the page was right there in the code.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Chris then opened an app to edit text, and showed me how to ",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "strong-shorthand",
"text": "make",
"type": "strong-shorthand"
},
{
"kind": "plain-text",
"text": " a web page. All I did was copy the code from the page we had looked at into a new file and switch out the text for my own. But, when I opened the page in the browser and saw what I\u0027d written on the screen it felt like magic",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "10",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": ".",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "p",
"template_list": [
"sections/p/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "A Tale As Old As Epoch",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "This is not an original story. Variations of this post abound. Stories from folks in the early days of the web who stumbled across it, poked at it, and... it\u0027s hard to describe. That first feeling of power from being able to write words surrounded by some cryptic text and have them turn into something live on the screen.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "The closest thing I can think of is the first time I developed my own photos in a darkroom. This was back in the film days. You put a piece of paper under an enlarger and exposed it to light passed through your film. Then, you drop the paper into a tray of chemicals and your photo just... materializes in front of you.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "It\u0027s a visceral act of creation.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Changing the world from a place where your thing doesn\u0027t exist into one where it does.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "It\u0027s a rush.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "h2",
"template_list": [
"sections/h2/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Making Progress",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "In photography, we\u0027ve abstracted all that away. Some folks still use film but it\u0027s gotta be like a zillion to one against folks who take photos on their phones and digital cameras. That\u0027s great, actually. It means way more folks have access to photography in ways that were beyond reach just a few generations ago.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "With photography though, the thing you\u0027re after is the photo. The process can be fun, but the image is what matters. And, we have control over that. There\u0027s no lock-in on your phone that means you can only shoot photos in a specific way. Nothing limiting you so you can only take portraits at eye level with the subject looking directly into the camera.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "But, that\u0027s where we\u0027ve ended up on the web with our social networks. Rigid formats that are impossible to escape.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "We\u0027ve given everyone the chance to post on social networks but only in ways that the companies that run them allow",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "11",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": ". Allowances that are increasingly tight. After which, our works are buried under the crush of algorithms designed not for making our experience better, but for increasing profit margins",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "12",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": ".",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "That\u0027s where websites come in. When you make your own site, those constraints are gone. HTML, CSS, and JavaScript (the key programming languages of the web) can do incredible things. With your own site, you\u0027re free to explore, play with, and make use of every bit of power those languages offer.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "We\u0027ll get to all that in a moment, but first, we need to step back in time.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "h2",
"template_list": [
"sections/h2/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "The Ever-Changing Web",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Things were simpler in the early days of the web. Not in a nostalgic way, but a literal one. HTML, the base of all web pages, was in its first iteration. It\u0027s at version 5 now. JavaScript and CSS (the powerhouses that make webpages more than just the most basic text and images) hadn\u0027t been invented yet. Back then, with a few days of playing around, you could learn everything there was to know about making a website",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "13",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": ".",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Today\u0027s environment is different. It\u0027s overwhelming. JavaScript and CSS hit the scene in 1995 and 1996, respectively. They\u0027ve been growing and evolving along side HTML ever since. Those evolutions have resulted in an explosion of complexity. Entire libraries, frameworks, and even other programming languages",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "14",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": " have been created to help try to manage that complexity. Very few have managed to keep things as simple as just writing a single file that turns into a webpage.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "That\u0027s where we lost track of the magic. The connection simply opening a file, typing something into it, and having it show up on a web page.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "The magic is still there though. You can make a ",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "code-shorthand",
"text": ".html",
"type": "code-shorthand"
},
{
"kind": "plain-text",
"text": " file in a few seconds with some basic code, open it in a browser, and see your content. It\u0027ll be simple though. Black text on a white background. Our expectations these days are higher...",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "h2",
"template_list": [
"sections/h2/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Enter Neopoligen",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "...and that\u0027s where Neopoligen comes in. It\u0027s designed to combine simple files of content with templates to produce fully featured web pages.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "There are a few important points about the setup:",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "h2",
"template_list": [
"sections/h2/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {},
"bound": "full",
"children": [
{
"bound": "full",
"children": [
{
"children": [],
"kind": "olist-item-paragraph",
"spans": [
{
"kind": "plain-text",
"text": "The content files are written in a format called Neopolitan. It\u0027s designed to be fully featured but easier to work with than straight HTML. If you\u0027ve ever worked with Markdown, it\u0027s like that, but on steroids.",
"type": "plain-text"
}
],
"template_list": [
"sections/olist-item-paragraph/default.neoj"
],
"type": "block"
}
],
"kind": "olist-item",
"template_list": [
"sections/olist-item/default.neoj"
],
"type": "olistitem"
},
{
"bound": "full",
"children": [
{
"children": [],
"kind": "olist-item-paragraph",
"spans": [
{
"kind": "plain-text",
"text": "The templates are written in a format called Jinja. It provides a huge amount of flexibility without having to learn to a full programming language like JavaScript.",
"type": "plain-text"
}
],
"template_list": [
"sections/olist-item-paragraph/default.neoj"
],
"type": "block"
}
],
"kind": "olist-item",
"template_list": [
"sections/olist-item/default.neoj"
],
"type": "olistitem"
}
],
"end_section": null,
"flags": [],
"kind": "olist",
"template_list": [
"sections/olist/default.neoj"
],
"type": "olist"
},
{
"attrs": {},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Neopoligen comes with a basic set of templates built-in. If you\u0027re a beginner you can ignore them completely and just edit your content. The built-in templates will take care of building your site.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "When you get interested in trying something new, you can play around with the templates to change the way things work. As you become more advanced, you\u0027ll learn how to do more and more with them.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "If you\u0027ve already spent years slinging web pages, you\u0027ll quickly find you can do pretty much anything you can think of with the templates",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "footnote-shorthand",
"text": "15",
"type": "footnote-shorthand"
},
{
"kind": "plain-text",
"text": ". More importantly, the Neopolitan format lets you feed the templates with a diverse (and customizable) set of content. The files effectively become an ad hoc database of custom types.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "p",
"template_list": [
"sections/p/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Wrapping Up",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "I\u0027m currently making version 42 of Neopoligen. It\u0027s the one I\u0027m planning on making public.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "The prior forty-one were exercises in learning, experimenting with, and refining various parts of the app. There was always a single through-line though. Eliminating as much friction as possible between having an idea and getting it on a web page. Because, I fully believe if we can get more folks making more stuff of their own, we\u0027ll be less pissed at each other. I think that\u0027s something need. Now, more than ever.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "h2",
"template_list": [
"sections/h2/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "1",
"type": "plain-text"
}
],
"text": "1"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "The Neopoligen Website Builder",
"type": "plain-text"
}
],
"text": "The Neopoligen Website Builder"
}
],
"url": [
{
"spans": [
{
"kind": "plain-text",
"text": "https://www.neopoligen.com/",
"type": "plain-text"
}
],
"text": "https://www.neopoligen.com/"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "The app I\u0027ve been working on for the past few years. At the time of this writing I haven\u0027t released it yet. I\u0027m still sanding down the sharp edges. We\u0027re getting close though.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "2",
"type": "plain-text"
}
],
"text": "2"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "A forty year solution",
"type": "plain-text"
}
],
"text": "A forty year solution"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "My site is 20 years old. I\u0027ve changed the software and framework behind it a dozen times. I never want to have to do it again. So, one of the design goals of Neopoigen is that I can use it for the next 20 years and then the next 20 and then however many more years I get.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "3",
"type": "plain-text"
}
],
"text": "3"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "Bulletin Board Systems",
"type": "plain-text"
}
],
"text": "Bulletin Board Systems"
}
],
"url": [
{
"spans": [
{
"kind": "plain-text",
"text": "https://en.wikipedia.org/wiki/Bulletin_board_system",
"type": "plain-text"
}
],
"text": "https://en.wikipedia.org/wiki/Bulletin_board_system"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "A very early way to connect computer together to share info. Everything was text based. You could download images, but the didn\u0027t show up on screen while you were using the service (unless you count ",
"type": "plain-text"
},
{
"attrs": {},
"flags": [
"https://en.wikipedia.org/wiki/ASCII_art"
],
"kind": "link-shorthand",
"text": "ASCII ART",
"type": "link-shorthand"
},
{
"kind": "plain-text",
"text": "). Individuals would log into a server and post messages that other folks could read and respond to. There\u0027s nothing special about that these days, but Bulletin Boards Systems were the first way lots of early techies experience it for the first time.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "4",
"type": "plain-text"
}
],
"text": "4"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "America Online (aka AOL)",
"type": "plain-text"
}
],
"text": "America Online (aka AOL)"
}
],
"url": [
{
"spans": [
{
"kind": "plain-text",
"text": "https://en.wikipedia.org/wiki/AOL",
"type": "plain-text"
}
],
"text": "https://en.wikipedia.org/wiki/AOL"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Technically, I don\u0027t think AOL was really an internet account. It started life as its own walled-garden network. But, saying it that way helps it make sense to folks who aren\u0027t familar with it. Whatever. It was the first real place I spent time online. (I\u0027d used ",
"type": "plain-text"
},
{
"attrs": {},
"flags": [
"https://en.wikipedia.org/wiki/Prodigy_(online_service)"
],
"kind": "link-shorthand",
"text": "Prodigy",
"type": "link-shorthand"
},
{
"kind": "plain-text",
"text": " before thanks to a cousin, but AOL was the first time I had my own account)",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "5",
"type": "plain-text"
}
],
"text": "5"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "Gopher",
"type": "plain-text"
}
],
"text": "Gopher"
}
],
"url": [
{
"spans": [
{
"kind": "plain-text",
"text": "https://en.wikipedia.org/wiki/Gopher_(protocol)",
"type": "plain-text"
}
],
"text": "https://en.wikipedia.org/wiki/Gopher_(protocol)"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Another pre-runner to the web \"designed for distributing, searching, and retrieving documents\". It\u0027s a lot like looking at the file browser on a computer and drillilng down to find files you\u0027re interested in. Except the files are sitting on a server and uploaded by folks from all over the internet.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "6",
"type": "plain-text"
}
],
"text": "6"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "Computer Labs",
"type": "plain-text"
}
],
"text": "Computer Labs"
}
],
"url": [
{
"spans": [
{
"kind": "plain-text",
"text": "https://en.wikipedia.org/wiki/Computer_lab",
"type": "plain-text"
}
],
"text": "https://en.wikipedia.org/wiki/Computer_lab"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "A computer lab is bascially a bunch of computers that are sets up for a group of other folks to use. I don\u0027t think about the computers in a library as a computer lab, but that\u0027s a perfectly good way to describe them. In my case, the compter labs were provided to students by the university. I didn\u0027t have my own computer when I started college but had access to them through the student newspaper where I worked. So, I didn\u0027t spend much time in the lab but they got a lot of traffic from other students.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "7",
"type": "plain-text"
}
],
"text": "7"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "The Mosaic Web Browser",
"type": "plain-text"
}
],
"text": "The Mosaic Web Browser"
}
],
"url": [
{
"spans": [
{
"kind": "plain-text",
"text": "https://en.wikipedia.org/wiki/NCSA_Mosaic",
"type": "plain-text"
}
],
"text": "https://en.wikipedia.org/wiki/NCSA_Mosaic"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Mosaic wasn\u0027t the first web browser, but it was the first one to display images and text together. I\u0027d used AOL before and had seen online stuff with images and text together, but this was different. I could see and write the code to make my own pages for it. Absolute game changer.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "8",
"type": "plain-text"
}
],
"text": "8"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "The View Source Button, Maybe",
"type": "plain-text"
}
],
"text": "The View Source Button, Maybe"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "I don\u0027t remember if there was actually a button in Mosaic that said \"View Source\". Probalby there wasn\u0027t. It was probably a few clicks in a menu to get to it. The prose reads better calling it a button though and the effect of seeing the code was the same regardless.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "9",
"type": "plain-text"
}
],
"text": "9"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "Spoilers!",
"type": "plain-text"
}
],
"text": "Spoilers!"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Apologies if you haven\u0027t seen ",
"type": "plain-text"
},
{
"attrs": {},
"flags": [
"https://en.wikipedia.org/wiki/The_Matrix"
],
"kind": "link-shorthand",
"text": "The Matrix",
"type": "link-shorthand"
},
{
"kind": "plain-text",
"text": " yet. It\u0027s twenty-five years old now. I think that means it\u0027s past the point where I have to warn you before mentioning spoilers. Either way, if you haven\u0027t seen it, I can still recommend it. It\u0027s a fun ride even if you have some hints about the final act.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "10",
"type": "plain-text"
}
],
"text": "10"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "Contains No Actual Magic",
"type": "plain-text"
}
],
"text": "Contains No Actual Magic"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "While the experince of creating on a computer can be magical, there\u0027s no actual magic involved. This is the same with any art. Music, movies, painting, photography. Any art you can think of can be magical to both make and witness, but it\u0027s not some unknown mystical force that makes it. They\u0027re created with the understanding of materials and techniques behind them. In the case of computers, that comes down to a bunch of ",
"type": "plain-text"
},
{
"attrs": {},
"flags": [
"/en/20en8mvx/"
],
"kind": "link-shorthand",
"text": "1s and 0s",
"type": "link-shorthand"
},
{
"kind": "plain-text",
"text": ". That fact doesn\u0027t make the experience of creating any less magical though. Even if there\u0027s no actual magic involved.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "11",
"type": "plain-text"
}
],
"text": "11"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "Wordpress Exists",
"type": "plain-text"
}
],
"text": "Wordpress Exists"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "There are, of course, other ways to publish on the web besides social networks. Wordpress comes to mind. Same for the dozen of other services that show up when you search for how to make a website. I\u0027m focusing on social networks in this post to keep things a little more concise. While those other services offer different ways to build sites they all lock you into their systems to one degree or another.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
},
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "Neopoligen (and, more to the point, the Neopolitan format) will be open-source so anyone can write software to build sites from them. I\u0027m doing everything I can think of to make it as hard as possible for anyone (including myself) to set up a system that locks you in or makes it hard to move your site somewhere else.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "12",
"type": "plain-text"
}
],
"text": "12"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "And they keep your stuff too",
"type": "plain-text"
}
],
"text": "And they keep your stuff too"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "I\u0027m not getting into the part about social networks where they keep all your stuff locked behind their doors. Making your own website in general and using Neopoligen specifically are remedies against that, but that\u0027s a story for another post.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "13",
"type": "plain-text"
}
],
"text": "13"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "Server Side Not Included",
"type": "plain-text"
}
],
"text": "Server Side Not Included"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "When I talk about being able to know everything about making a website, I\u0027m spaking about what happens on the browser. Specifically, using HTML to make pages. It didn\u0027t take long until pages could interact with the server through apps (e.g. those written in ",
"type": "plain-text"
},
{
"attrs": {},
"flags": [
"https://en.wikipedia.org/wiki/Perl"
],
"kind": "link-shorthand",
"text": "Perl",
"type": "link-shorthand"
},
{
"kind": "plain-text",
"text": ") that ran on the server to make more dynamic content. Learing to do that was an ongoing process that has evolved along with the web.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "14",
"type": "plain-text"
}
],
"text": "14"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "The CoffeeScript Programming Language",
"type": "plain-text"
}
],
"text": "The CoffeeScript Programming Language"
}
],
"url": [
{
"spans": [
{
"kind": "plain-text",
"text": "https://en.wikipedia.org/wiki/CoffeeScript",
"type": "plain-text"
}
],
"text": "https://en.wikipedia.org/wiki/CoffeeScript"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "\"an effort to enhance JavaScript\u0027s brevity and readability.\" I don\u0027t know how much use this gets any more. I haven\u0027t heard about it in a while. It\u0027s goal was to make the JavaScript programming language easier to use, but doing that added it\u0027s on complexities.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "15",
"type": "plain-text"
}
],
"text": "15"
}
],
"title": [
{
"spans": [
{
"kind": "plain-text",
"text": "HTML Fallback",
"type": "plain-text"
}
],
"text": "HTML Fallback"
}
]
},
"bound": "full",
"children": [
{
"children": [],
"kind": "paragraph",
"spans": [
{
"kind": "plain-text",
"text": "You can always fallback to straight HTML. Either in the content via a ",
"type": "plain-text"
},
{
"attrs": {},
"flags": [],
"kind": "code-shorthand",
"text": "-- html",
"type": "code-shorthand"
},
{
"kind": "plain-text",
"text": " section or directly in a template. So, you can litereally do anything with HTML by using it directly.",
"type": "plain-text"
}
],
"template_list": [
"sections/paragraph/default.neoj"
],
"type": "block"
}
],
"end_section": null,
"flags": [],
"kind": "footnote",
"template_list": [
"sections/footnote/default.neoj",
"sections/basic/default.neoj"
],
"type": "basic"
},
{
"attrs": {
"created": [
{
"spans": [
{
"kind": "plain-text",
"text": "2024-11-06T08:24:54-04:00",
"type": "plain-text"
}
],
"text": "2024-11-06T08:24:54-04:00"
}
],
"id": [
{
"spans": [
{
"kind": "plain-text",
"text": "2o/th/vi/av",
"type": "plain-text"
}
],
"text": "2o/th/vi/av"
}
],
"status": [
{
"spans": [
{
"kind": "plain-text",
"text": "draft",
"type": "plain-text"
}
],
"text": "draft"
}
],
"tag": [
{
"spans": [
{
"kind": "plain-text",
"text": "neopoligen",
"type": "plain-text"
}
],
"text": "neopoligen"
},
{
"spans": [
{
"kind": "plain-text",
"text": "neopolitan",
"type": "plain-text"
}
],
"text": "neopolitan"
}
],
"template": [
{
"spans": [
{
"kind": "plain-text",
"text": "post",
"type": "plain-text"
}
],
"text": "post"
}
],
"updated": [
{
"spans": [
{
"kind": "plain-text",
"text": "2024-11-06T08:24:54-04:00",
"type": "plain-text"
}
],
"text": "2024-11-06T08:24:54-04:00"
}
]
},
"bound": "full",
"data": {},
"end_section": null,
"error": null,
"flags": [],
"kind": "page",
"template_list": [
"sections/page/default.neoj",
"sections/json5/default.neoj"
],
"type": "json5"
}
]