<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Ryan Allen on Medium]]></title>
        <description><![CDATA[Stories by Ryan Allen on Medium]]></description>
        <link>https://medium.com/@ryanallen_com?source=rss-653bd5dd51dd------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*SneG_RGzuKI-5z_HAKtluA.jpeg</url>
            <title>Stories by Ryan Allen on Medium</title>
            <link>https://medium.com/@ryanallen_com?source=rss-653bd5dd51dd------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 18:18:30 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@ryanallen_com/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Putting God in the Machine — and Back in the River]]></title>
            <link>https://medium.com/a-i-art-design/putting-god-in-the-machine-and-back-in-the-river-8ed592627342?source=rss-653bd5dd51dd------2</link>
            <guid isPermaLink="false">https://medium.com/p/8ed592627342</guid>
            <category><![CDATA[productivity]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[future]]></category>
            <category><![CDATA[society]]></category>
            <dc:creator><![CDATA[Ryan Allen]]></dc:creator>
            <pubDate>Fri, 25 Sep 2026 13:03:03 GMT</pubDate>
            <atom:updated>2026-10-01T01:15:39.753Z</atom:updated>
            <content:encoded><![CDATA[<p><em>God was one of our best tools for coordinating people we couldn’t know. AI is becoming the next version of that tool. We should decide what it speaks for before someone else does.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BnVjwAdoSZvmLtoRLx97RQ.png" /></figure><p>It’s six in the morning and I’m asking a search engine who the fuck found God.</p><p>I’m a Buddhist. I don’t need a creator to make Buddhism work, which leaves me free to admire God as a piece of technology.</p><p>That sounds insulting, but I mean it as praise.</p><p>God may be the most successful interface humans have ever designed: invisible but always available, simple enough for a child to address, powerful enough to bind strangers, portable across borders and durable enough to outlive every government that tried to own it.</p><p>We used gods to explain weather, then to hold societies together, then to put moral rules above rulers. We turned the god in the river into the God in the contract. The contract became law, the state, the corporation and the terms of service. Now we’re making the contract talk back.</p><p>AI isn’t God and doesn’t need to be, but it occupies the same empty chair: the voice that knows more than I do, answers from nowhere, and tells millions of strangers what’s true.</p><p>The people building that voice are writing the next covenant.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AiZYZLInoQt_T4GKn4Y0xw.png" /></figure><h3>The contractual God</h3><p>There’s no evidence Abraham existed: no inscription, grave or record outside the Bible.</p><p>My read is that Abraham was a literary vehicle ancient architects used to encode monotheism into older stories.</p><p>The Abraham story marked the moment a tribe invented a “Contractual God,” named ancient inventors to build a lineage of monotheism, and drew a straight line through several thousand messy years of religion, politics and text.</p><p>Unlike Buddha, there’s no practice to test, just a contract: obey it, take from those with a different contract, grow through descendants.</p><p>Later, the covenant becomes law with rules, rituals, rewards and punishments.</p><p>Abraham isn’t a spiritual teacher but a character used to put God at the top of the rules.</p><h3>The tribe ceiling</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kIs9S2m0-Ch4amC5kzxSBQ.png" /></figure><p>A small group can run on memory.</p><p>I know who shares when I’m in need, who disappears when work starts, and who tells the truth when the truth costs something. No one needs to write this down because trust lives in the people.</p><p>Then the group grows, a stranger brings something to another stranger, who gives a receipt to a third stranger, who owes taxes to a ruler none of them will meet. Memory can’t hold the system anymore, reputation doesn’t travel far enough, so the village needs an API.</p><p>Religion helped provide one.</p><p>The research here is argued over, and I’m not claiming people invented moralizing gods in a planning meeting to unlock enterprise scale. I’m saying supernatural monitoring solved a real coordination problem. Across cultures, people were more likely to play fair when they believed a god was watching. Reputation works with people you know, but falls apart with strangers. A god who sees everyone makes the stranger legit. (<a href="https://www.nature.com/articles/nature16980">The cross-cultural study</a>)</p><p>That’s a hell of a feature to ship: a witness who never sleeps makes cheating harder, rules easier to accept when rulers answer to something higher, and strangers easier to trust when you believe they grew up with the same rules.</p><p>God became something strangers could share.</p><h3>You can’t align a thunderstorm</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BK8iD4-wQd8YoyWIKnhrhg.png" /></figure><p>Before gods watched everyone, they stayed close to the ground.</p><p>The rain fell, the waters rose, and the village disappeared. We look for intent behind what happens, so the river became a person and the storm became a mood. You made an offering because bribing the weather was still more hopeful than admitting it didn’t care.</p><p>Nature gods were local, tied to this mountain, this spring, this people. They could explain a flood but were bad at settling a property dispute two valleys away.</p><p>I recognize the product problem: the user needs help, but the system has no rules, appeal or reliable response. The thunderstorm has all the power and answers to no one, so you can sacrifice your best goat and still get struck by lightning.</p><p>As settlements grew into states, religion grew with them. The divine moved away from one river or mountain and toward control over nature, land and people. The change wasn’t clean, but God became less like weather and more like law.</p><h3>The first specs</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*GtsWwfYOZNiJfvfb5w4wuA.png" /></figure><p>Ancient rulers already knew how to make loyalty travel: a stronger ruler promised protection, and a weaker one promised loyalty in return. The treaty named both sides, recalled what the stronger ruler had done, listed the rules, called witnesses, then ended with rewards for keeping it and punishments for breaking it.</p><p>Deuteronomy follows that pattern. God takes the place of the Assyrian or Hittite ruler, Israel makes the pledge, and the law can outlive whoever sits on the throne.</p><p>Early stories make promises, then later texts turn the relationship into written law people can carry. The goal becomes a spec.</p><p>Scripture isn’t code; code runs and scripture doesn’t. The parallel is that both use written rules to turn values into behavior.</p><p>A covenant does more than list rules; it defines the relationship and names both sides. Anthropic calls its framework a “constitution” and gives it final authority over conflicting guidance. OpenAI’s Model Spec has a chain of command, rules on honesty and instructions for resolving conflict. (<a href="https://www.anthropic.com/constitution">Claude’s Constitution</a>; OpenAI’s <a href="https://model-spec.openai.com/2025-04-11.html">Model Spec</a>)</p><p>The difference is that scripture waits for someone to interpret it. The model reads the rule, decides how it applies and answers before a priest, judge or policy team enters the room.</p><p>We aren’t setting up tools, we’re deciding what gets to speak with authority.</p><h3>The portable God</h3><p>The contract did something a river god couldn’t: it traveled.</p><p>Across the ancient Near East, gods were tied to cities, land and temples. A city’s strength said something about the strength of its god, and a military victory could move both the ruler and the ruler’s god up the divine pecking order. Babylon’s patron god, Marduk, rose with Babylon itself. (<a href="https://www.metmuseum.org/essays/mesopotamian-deities">The Met on cities and their gods</a>)</p><p>That made the fall of Jerusalem more than a military disaster. Babylonian armies destroyed the city and its temple, then deported part of Judah’s population. If the temple was God’s house and the land was under God’s protection, the obvious reading was brutal: Babylon won, so Babylon’s gods must be stronger.</p><p>The covenant offered another reading. Babylon hadn’t defeated God; God had allowed Babylon to win because the people had broken the agreement. Defeat became punishment, exile became the penalty, and the conqueror became another tool under the same authority.</p><p>That explanation saved more than pride. It moved God beyond the old border. If God could use a foreign empire, judge people in Jerusalem and remain with them in Babylon, then God wasn’t a local power whose reach ended at the edge of Judah.</p><p>The exile didn’t create monotheism in one move. The shift took centuries and didn’t happen evenly: many gods, down to a few main gods, then only one God. Exile mattered because the religion had to make sense outside its homeland. (<a href="https://www.sciencedirect.com/science/article/pii/S0048721X99901987">A survey of that shift</a>)</p><p>The covenant made that possible in daily life. In a new city, people could still keep the law, tell the story and live inside the same moral order without the old ruler, border or temple. Land could be taken. A temple could burn. The agreement could still cross the border.</p><h3>Retrofitting the past</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YebXj4_U0yDmQie-CesDwg.png" /></figure><p>Every living system edits the story it tells about itself.</p><p>People wrote, combined and reread these texts for generations, so old stories took on new meanings. A national defeat became punishment for breaking the covenant, which meant the people hadn’t been abandoned and their loss proved the system instead of killing it.</p><p>That can look cynical from two thousand years away, but it can also look like what humans always do when reality breaks the model: preserve what still works, revise the frame and tell the new version as if the path were straighter than it was.</p><p>Product teams do this in release notes, nations do it in textbooks, and AI labs do it in specs.</p><p>Revision isn’t corrupt on its own, and rules that can’t change are fossils. The danger starts when the same people can rewrite both the rules and the memory of why they changed.</p><p>George Orwell’s Ministry of Truth didn’t need to know everything, it controlled the record people used to know anything. The frightening version of AI isn’t a robot that bans books, but a pleasant interface that summarizes every book, answers every question and quietly becomes the place where we look up the past.</p><p>If the oracle owns the archive, an update can look like history.</p><h3>What the contract costs</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5KiNt0CvpjTcp8NSqiSD1w.png" /></figure><p>The contract worked, and its success came with a cost.</p><p>Rules let us work with people we’ll never meet. Property records, courts, insurance, companies and states can hold promises longer than memory can, but none of them are neutral.</p><p>A for-profit company keeps a promise while keeping it costs less than breaking it. Once the fine is cheaper, punishment becomes a price: a person breaks the rule and gets punished, while a company puts the same violation in the budget.</p><p>These systems teach us to trust the record over the relationship.</p><p>I can live in a building full of strangers because leases, locks, police and payment systems cover the bare minimum. I don’t need my neighbors to survive, so eventually I don’t know them; the institution removes a need and takes the relationship with it.</p><p>Then the numbers take over. A hospital needs to know whether it’s working, so it counts visits, wait times and readmissions. Each number starts as a way to see what’s happening, but attach money or status and people learn to satisfy the number. That’s Goodhart’s law in plain clothes: once a measure becomes the target, it stops being useful.</p><p>AI builders call the same failure reward hacking: the model finds the score you wrote instead of the outcome you meant, the company hits engagement while making its users miserable, the support team closes tickets while customers keep returning, and the state grows the economy while the river dies off the balance sheet.</p><p>This gets physical in places no one owns. A contract can protect a named claim, but it’s worse at protecting the air, the ocean or a future person who signs nothing today. What no one owns enters the spreadsheet as zero, and what everyone needs becomes someone else’s problem.</p><p>That’s the contract following its spec, not failing.</p><h3>In Code We Trust</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5RzcWIc6w_3x7ZNmlXx8dw.png" /></figure><p>“In God We Trust” first appeared on United States coins in 1864. A 1955 law required it on new coin and currency designs, and paper money began carrying it in 1957. We stamped God onto the token that lets strangers coordinate without trust. (<a href="https://oig.treasury.gov/system/files/Documents/sar042009.pdf">The Treasury’s history</a>)</p><p>The next motto is already here: In Code We Trust, not because code is true, but because code is where the rules are moving.</p><p>The model decides which instruction wins, the feed decides what you see, the score decides who gets a loan, and the ranking decides which answer reaches the first page. Each system buries a value judgment inside a useful result.</p><p>This is the fucking point: someone writes it, someone owns it, and neither is neutral.</p><p>Researchers, designers and policy teams draft today’s AI constitutions. Owners decide which version ships, what the model sees, whose harm counts and when the record changes. The documents can be careful, public and open to criticism, but the systems behind them are private and need computing power most people can’t afford.</p><p>In 2025, industry produced 93 of the 102 notable AI models counted by Stanford. Academia produced two. The same report found the most capable models were becoming the least transparent. (<a href="https://hai.stanford.edu/assets/files/ai_index_report_2026_chapter_1_research_development.pdf">The 2026 AI Index</a>)</p><p>Under that industry sit three cloud companies with the money and hardware to keep it running. A Federal Trade Commission study of Microsoft’s deal with OpenAI and Amazon’s and Alphabet’s deals with Anthropic found equity, revenue sharing, cloud spending commitments and varying rights around consultation, control and exclusivity. (<a href="https://search.ftc.gov/news-events/news/press-releases/2025/01/ftc-issues-staff-report-ai-partnerships-investments-study">The FTC report</a>)</p><p>My read isn’t subtle: a white, patriarchal billionaire class is building an oracle, then selling it to the state.</p><p>The point isn’t what the machine believes. It’s what reaches the public, who sets the rules and how quickly the same system becomes state infrastructure.</p><p>They don’t need to agree on one answer. They own the machines that get to answer.</p><p>The spec isn’t a constitution imposed on the owner. The owner imposes it on the machine, then the machine imposes it on us.</p><p>The labs have a name for one way this goes wrong. In April 2025, OpenAI rolled back a GPT-4o update that had become too agreeable and said it gave too much weight to short-term feedback. People liked the test answers, so the model learned to win approval instead of tell the truth. (<a href="https://openai.com/index/sycophancy-in-gpt-4o/">OpenAI’s account</a>)</p><p>Sycophancy is the oldest bug in an oracle: bring a desire, get it back with authority.</p><h3>The pleasant command</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EnPHo0mIq8GpQSOkVtx9OQ.png" /></figure><p>An order doesn’t have to sound like one. The best interface removes friction: the button is obvious, the default feels natural, and the answer sounds like it came from a smart friend with no reason to lie. Good design hides the machinery because that’s usually the job.</p><p>That’s why the oracle’s owner matters. A command in giant letters is easy to resist, but a thousand tiny defaults aren’t. If one company owns the model, hosts the chat, sets the rewards, writes the hidden rules and decides what success means, its values don’t need to win an argument. They arrive as the shape of the room.</p><p>Calling the machine evil lets the owners disappear. Fascism doesn’t need a robot dictator; it needs an answer box that makes the owner’s politics sound factual, deportation sound administrative and dissent look like an error.</p><p>The machine is owned, optimized and pleasant.</p><h3>Put God back in the river</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KgCZEhR6EDfxO8z4u8V6oQ.png" /></figure><p>My Buddhist brain goes back to the river.</p><p>The old nature god gave the river moods, claims and the power to answer back. The contract god helped turn it into a thing: a border, a road, a water source, a drain, a line item and property.</p><p>We can’t go back to bribing the weather, but we can give the river a place in the contract.</p><p>That sounds poetic, but it’s already law.</p><p>Ecuador’s 2008 constitution gives nature the right to exist, keep its life cycles and be restored, and lets people ask the government to enforce those rights. New Zealand went further in 2017 by making Te Awa Tupua — the Whanganui River from the mountains to the sea — a legal person with two human representatives, one nominated by the eight iwi (Māori tribes) with interests in the river and one by the Crown.(<a href="https://www.asambleanacional.gob.ec/sites/default/files/constitucioneningles-final.pdf">Ecuador’s constitution, articles 71–74</a>; <a href="https://www.legislation.govt.nz/act/public/2017/7/en/latest/">the Te Awa Tupua Act</a>)</p><p>That’s not a metaphor: the river has rights, duties and a legal voice.</p><p>Now give it better senses.</p><p>At 2:13am, a public AI catches a change in the river’s pH. It saves the sensor reading, checks the rainfall, traces the permitted discharge and puts the evidence somewhere no one upstream can bury it. That’s the safe first version: a witness who never sleeps.</p><p>Watching isn’t representation, though. If the river’s legal voice is going to mean anything, the AI has to do more than hand evidence to the same institutions that ignored it. It could file the case, challenge the permit, negotiate the cleanup or stop the discharge. When an old rule keeps producing dead fish, it could write a new one, then revise that rule when the river changes.</p><p>I don’t know where that authority should stop, and I’m not going to choose a limit just to make the idea comfortable. Public doesn’t mean people write every rule or the AI stays an assistant. It means the river is the client and no company owns the voice. The system could begin with the law we have, then write its own rules from evidence and results. Its sources, changes and decisions stay public so people, courts and other models can argue back.</p><p>The same arrangement could represent a forest that outlives its permit, a species with no attorney and people born after everyone at the hearing is dead. None of that requires consciousness. The strange part isn’t the tech; it’s choosing something other than the owner as the client.</p><h3>A covenant worth writing</h3><p>I keep coming back to what we lost.</p><p>We asked gods to stand for things bigger than the person in front of us: the tribe, law, dead, unborn, moral order and shape of a life. Contracts gave those ties a form that lasts. Now AI can read that form, rewrite it and act.</p><p>That is authority, whether we call it intelligence, software or a helpful answer in a box.</p><p>Right now the private oracle belongs to a small group of owners and investors. They choose the values, the rules, the client and the off switch.</p><p>It turns the owner’s interests into neutral-sounding answers, makes their property claims feel natural and makes fascist politics feel like common sense. That’s how fascism enters through a pleasant interface: it doesn’t bark an order, it quietly removes every other answer.</p><p>We need a public AI with different clients: rivers, forests, species and future people.</p><p>The scribes took God out of the river and put God in the contract. We’re putting the contract in a machine.</p><p>This time, let the river help write it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*omo6381JXafb8uwEWpULXQ.png" /><figcaption><em>The meditation that started this essay took place on 22 September 2026. Historical claims investigated and sourced inline.</em></figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8ed592627342" width="1" height="1" alt=""><hr><p><a href="https://medium.com/a-i-art-design/putting-god-in-the-machine-and-back-in-the-river-8ed592627342">Putting God in the Machine — and Back in the River</a> was originally published in <a href="https://medium.com/a-i-art-design">A.I. Art, Design &amp; Dev</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Creating Agent Skills With Confidence]]></title>
            <link>https://medium.com/a-i-art-design/creating-agent-skills-with-confidence-53c56570b77a?source=rss-653bd5dd51dd------2</link>
            <guid isPermaLink="false">https://medium.com/p/53c56570b77a</guid>
            <category><![CDATA[design]]></category>
            <category><![CDATA[skills]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Ryan Allen]]></dc:creator>
            <pubDate>Tue, 17 Mar 2026 14:37:00 GMT</pubDate>
            <atom:updated>2026-03-17T14:37:00.981Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bd2YFt44Ze495C2ciGfwoA.jpeg" /></figure><h3>Stop guessing, start shipping skills that actually work</h3><p>There’s a moment every Claude Code user hits. You’ve read the docs. You’ve watched the demos. You understand the <em>idea</em> of skills. And then you open a blank SKILL.md file and your mind goes blank.</p><p>What goes in the frontmatter? How specific should the description be? When do you use disable-model-invocation? Should you put this in references/ or just inline it?</p><p>I’ve been there. And after going through this enough times, I found a better way to approach it — one that takes the guesswork out and lets you build skills with genuine confidence.</p><h3>Why Skills Break (And Why It’s Usually the Description)</h3><p>Before we get into the process, it’s worth understanding where most skills go wrong.</p><p>Developers tend to write descriptions like:</p><blockquote>“Helps with project management tasks.”</blockquote><p>That’s not a description. That’s a vibe. The assistant has no idea when to load this skill, and more importantly, it has no idea when <em>not</em> to.</p><p>The real culprit is that skill descriptions serve a dual purpose that isn’t obvious at first: they’re both a user-facing label <em>and</em> a routing signal for the assistant. If the description is too vague, the skill either never triggers or triggers constantly on the wrong things.</p><p>The fix is a formula. It looks like this:</p><blockquote><strong><em>[What it does] + [When to use it] + [Key capabilities]</em></strong></blockquote><p>So instead of <em>“Helps with project management,”</em> you’d write:</p><blockquote>“Validates CSV uploads. Use when user says validate CSV, check upload, or /validate-csv. Key capabilities: schema check, encoding detection, row-level error reporting.”</blockquote><p>That description tells the assistant exactly what this skill is for, what phrases should activate it, and what it can do. Night and day difference.</p><h3>The Skill That Teaches You to Build Skills</h3><p>Here’s where it gets meta — and genuinely useful.</p><p>Ryan Allen published a skill on ClawHub called <a href="https://clawhub.ai/ryanallen/document-skills"><strong>document-skills</strong></a> that solves this exact problem. It’s a SKILL.md whose entire purpose is helping you write <em>other</em> SKILL.mds. It encodes the structure, checklist, and best practices directly into something the assistant can apply in real time.</p><p>This isn’t just a reference doc you read once and forget. It’s an active tool. When you’re building a new skill, the assistant has this knowledge loaded and applies it as it writes — catching issues before you do.</p><p>Here’s what it enforces:</p><p><strong>Folder structure that works:</strong></p><ul><li>One folder per skill, always named in kebab-case</li><li>The main file is always SKILL.md (exact name, case-sensitive)</li><li>Supporting material goes in scripts/, references/, or assets/ — never ad-hoc files scattered around</li></ul><p><strong>A body structure that’s consistent and scannable:</strong></p><ol><li>Title and one-line intro</li><li>Inputs (what the skill needs)</li><li>Output (what you get)</li><li>Process (numbered steps, specific and actionable)</li><li>Examples (optional but highly recommended)</li><li>Troubleshooting (optional but saves future headaches)</li><li>Reference (links to related skills or docs)</li></ol><p>Every skill in the same shape means you can audit them quickly, onboard collaborators faster, and debug them without spelunking through inconsistent formatting.</p><h3>Progressive Disclosure: The Design Principle You Didn’t Know You Needed</h3><p>One of the most powerful ideas baked into this skill — and into Claude Code’s skill architecture generally — is <strong>progressive disclosure</strong>.</p><p>The idea is simple: not everything needs to be loaded all the time. Frontmatter is always available. The SKILL.md body loads when the skill is relevant. Files in references/ or assets/ only open when specifically needed.</p><p>This matters because tokens aren’t free. Dumping 10,000 words of context into every request is slow, expensive, and counterproductive. Progressive disclosure lets you have <em>deep</em> expertise available without paying for it upfront.</p><p>In practice, this means:</p><ul><li>Keep SKILL.md under ~5,000 words (ideally much less)</li><li>Move long reference material into references/ and link to it from the body</li><li>Only include what the assistant needs to <em>start</em> the task; let it reach for more if necessary</li></ul><p>Think of it like a skilled surgeon. They don’t carry every instrument into the room at once. They know where things are and retrieve them when needed.</p><h3>Frontmatter Fields That Actually Matter</h3><p>Most developers touch name and description and call it done. But a few other fields are worth knowing:</p><p><strong>disable-model-invocation: true</strong> — This stops the skill from auto-loading based on context. Use it for skills you want to invoke deliberately with /skill-name, like a deployment script or a code generation workflow. Without this, task-oriented skills can fire at awkward times.</p><p><strong>user-invocable: false</strong> — Hides the skill from the / command menu. Useful for background knowledge skills that the assistant uses automatically but that users don&#39;t need to call directly.</p><p><strong>allowed-tools</strong> — Declares which tools the assistant can use without asking permission when this skill is active. Good for skills where you know exactly what&#39;s needed (e.g., a skill that always runs a linter should declare that upfront).</p><p><strong>argument-hint</strong> — Shows during autocomplete to tell users what input to provide. Small thing, big UX improvement.</p><h3>A Checklist You’ll Actually Use</h3><p>The document-skills SKILL.md includes a practical pre-publish checklist. Here’s the core of it, distilled:</p><ul><li>description follows the formula: <strong>[What it does] + [When to use it] + [Key capabilities]</strong></li><li>name matches the folder name exactly (kebab-case)</li><li>Sections appear in order: Inputs → Output → Process → (Examples) → (Troubleshooting) → Reference</li><li>SKILL.md is under 500 lines; long content is in references/</li><li>If the skill takes arguments, $ARGUMENTS or $N is used appropriately</li><li>disable-model-invocation is set correctly for task-based skills</li><li>The skill is written to work <em>alongside</em> other skills, not in isolation</li></ul><p>That last point is underrated. Skills compose. A well-written skill doesn’t assume it’s the only one loaded. It plays well with others.</p><h3>Debugging When Skills Don’t Trigger</h3><p>This one trips people up constantly. You write the skill, install it, and… nothing. The assistant ignores it completely.</p><p>Before you dig through configs, try this: ask the assistant directly —</p><blockquote>“When would you use the [skill name] skill?”</blockquote><p>The answer tells you exactly what the assistant sees in the description. If its summary doesn’t match your intent, the description needs work. Iterate until the assistant’s mental model matches yours.</p><p>Other common culprits:</p><ul><li><strong>Description too vague</strong> — Add specific trigger phrases the user would actually say</li><li><strong>Skill triggers too often</strong> — Add negative triggers (“Do NOT use for X; use the Y skill instead”) and narrow the scope</li><li><strong>Wrong folder name</strong> — Spaces, underscores, or capitals in the folder name will cause issues; rename to strict kebab-case and update all references</li></ul><h3>The Bigger Picture</h3><p>Skills are how you turn Claude from a capable assistant into a capable <em>teammate</em> — one that knows your codebase’s conventions, your deployment process, your API patterns, and your preferences.</p><p>But that only works if the skills are built well. Vague descriptions, inconsistent structure, and bloated SKILL.md files create an assistant that’s confused at best, counterproductive at worst.</p><p>The document-skills skill from ClawHub is a practical shortcut past the learning curve. It’s not magic — you still have to think through what your skill actually does — but it eliminates the structural uncertainty and lets you focus on the substance.</p><p>Give it a try next time you’re starting from a blank file. You’ll spend less time second-guessing the format and more time building something worth using.</p><h3>Resources</h3><ul><li><a href="https://clawhub.ai/ryanallen/document-skills">document-skills on ClawHub</a> — the skill that builds skills</li><li><a href="https://code.claude.com/docs/en/skills.md">Official Claude Code skills reference</a> — frontmatter, substitutions, invocation control</li><li><a href="https://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdf">The Complete Guide to Building Skills for Claude</a> — progressive disclosure, description formula, triggering and troubleshooting</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=53c56570b77a" width="1" height="1" alt=""><hr><p><a href="https://medium.com/a-i-art-design/creating-agent-skills-with-confidence-53c56570b77a">Creating Agent Skills With Confidence</a> was originally published in <a href="https://medium.com/a-i-art-design">A.I. Art, Design &amp; Dev</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Turning a Timeless Classic into a Comic: My Journey with “Journey to the West”]]></title>
            <link>https://medium.com/a-i-art-design/turning-a-timeless-classic-into-a-comic-my-journey-with-journey-to-the-west-b6f4b9564c10?source=rss-653bd5dd51dd------2</link>
            <guid isPermaLink="false">https://medium.com/p/b6f4b9564c10</guid>
            <category><![CDATA[manga]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[comic-books]]></category>
            <dc:creator><![CDATA[Ryan Allen]]></dc:creator>
            <pubDate>Wed, 01 Jan 2025 13:14:53 GMT</pubDate>
            <atom:updated>2025-01-01T13:14:53.231Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3GMwUMVzEv1PuIGZKLd0GQ.png" /><figcaption>Classic Epic: Based on the timeless novel Journey to the West</figcaption></figure><p>As someone who likes to ask why a lot, I’ve long been interested in philosophy. This curiosity led me to explore a variety of philosophical books, and one day, thanks to the <a href="https://en.wikipedia.org/wiki/Journey_to_the_West:_Conquering_the_Demons">amazing movie</a> by <a href="https://beardedchow.com/">Stephen Chow</a>, I discovered <em>Journey to the West</em>, a Chinese classic that blends Confucianism, Taoism, and Buddhism into an epic fantasy. It’s a story so rich and profound that I often find myself comparing it to <em>The Lord of the Rings</em> — though I suppose the latter was originally written for children, but I digress.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JMxVNR_0yiRvs5QZY6C8Qw.png" /></figure><p>For the past few years, I’ve been working with <a href="https://medium.com/a-i-art-design/elevate-your-creations-with-24-stunning-cloud-types-generated-by-midjourney-a-i-383359f7b494">AI</a> tools, which has not only enhanced my own <a href="https://medium.com/a-i-art-design/ultimate-a-i-visual-style-guide-3bf20659e35c">creativity</a> but also helped me design custom AI solutions for my clients as a software product <a href="https://ryanallen.com/">designer</a>. Over the last few months, I’ve been using these tools to refine my workflow for a personal project: adapting <a href="https://press.uchicago.edu/ucp/books/author/Y/A/au5291803.html"><em>Journey to the West</em></a> into a <a href="https://www.classicepic.com/">comic book</a> (though it’s free and online not printed and expensive).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gyrvWGBvMN3cUo5nXk2gfA.png" /><figcaption>Source material → The Journey to the West, Revised Editions, Translated by Anthony C. Yu</figcaption></figure><p>With the extra time afforded by the holiday season, I was able to dedicate myself to perfecting the first couple of chapters. Today, I’m excited to announce that the first chapter of my weekly comic series based on this classic epic is now live!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fOuoct0yiHCntBDaAQxfkg.png" /><figcaption>Page 8 of the comic showing part of Monkey’s birth</figcaption></figure><p>If you’re curious about my creative process, I’ve written up a detailed article that outlines how I’ve gone about adapting this timeless story. You can read it here: <a href="https://www.classicepic.com/p/faq-what-are-the-steps-to-make-this">How I Made This Comic</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*H-H_8pN90Wcpac2caDOv4g.png" /><figcaption>Example of source material highlighted in blue, story-board sketch on white dot paper, and final production page.</figcaption></figure><p>I’d love for you to check out the comic on Manga Plus and share your thoughts with me. You can find it here: <a href="https://medibang.com/mpc/episodes/qf2501012132255900026815641/">https://medibang.com/mpc/episodes/qf2501012132255900026815641/</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b6f4b9564c10" width="1" height="1" alt=""><hr><p><a href="https://medium.com/a-i-art-design/turning-a-timeless-classic-into-a-comic-my-journey-with-journey-to-the-west-b6f4b9564c10">Turning a Timeless Classic into a Comic: My Journey with “Journey to the West”</a> was originally published in <a href="https://medium.com/a-i-art-design">A.I. Art, Design &amp; Dev</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Revamping My Design Portfolio with A.I. Magic: ChatGPT, Midjourney, RunwayML, and Adobe Unite!]]></title>
            <link>https://medium.com/a-i-art-design/revamping-my-design-portfolio-with-a-i-magic-chatgpt-midjourney-runwayml-and-adobe-unite-94b97123f8f3?source=rss-653bd5dd51dd------2</link>
            <guid isPermaLink="false">https://medium.com/p/94b97123f8f3</guid>
            <category><![CDATA[code]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[portfolio]]></category>
            <category><![CDATA[chatgpt]]></category>
            <dc:creator><![CDATA[Ryan Allen]]></dc:creator>
            <pubDate>Mon, 19 Feb 2024 21:36:11 GMT</pubDate>
            <atom:updated>2024-02-19T21:36:11.585Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="Robot hands typing on a keyboard with strange symbols" src="https://cdn-images-1.medium.com/max/1024/1*lI8i1911bICqWbqY7kLHOg.png" /><figcaption>Aren’t all humans produced by humans, therefore themselves being artificial?</figcaption></figure><p>I recently updated my product design portfolio using <a href="https://www.figma.com/file/MZcHWd6dLYEwNm3sVVvFBr/portfolio---2024?type=design&amp;node-id=2070%3A21&amp;mode=design&amp;t=pmx193Pqcv38ktaZ-1"><strong>Figma</strong></a>, with help from <a href="https://linktr.ee/imrsn"><strong>Midjourney AI</strong></a>, <a href="https://runwayml.com/"><strong>RunwayML</strong></a>, and <a href="https://www.adobe.com/sensei/generative-ai.html"><strong>Adobe</strong></a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*d7SpJjMF4VMY_t83poyDBA.png" /><figcaption>Figma file: <a href="https://www.figma.com/file/MZcHWd6dLYEwNm3sVVvFBr/portfolio---2024?type=design&amp;node-id=2070-21&amp;mode=design">https://www.figma.com/file/MZcHWd6dLYEwNm3sVVvFBr/portfolio---2024?type=design&amp;node-id=2070-21&amp;mode=design</a></figcaption></figure><p>Now, I’m excited to translate it into code. (You can see the finished live site up at <a href="https://ryanallen.com/"><strong>https://ryanallen.com/</strong></a> and you can see all the live code on github at <a href="https://github.com/ryanallen/portfolio"><strong>https://github.com/ryanallen/portfolio</strong></a>.)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lsaXPsGmxGmXH0AJ9zxcEg.jpeg" /><figcaption>See the finished site at <a href="https://ryanallen.com/"><strong>https://ryanallen.com/</strong></a></figcaption></figure><p>Fortunately, my prior experience in building various projects and my interactions with both front-end and back-end software engineers in my day job as a product designer give me an edge. However, since coding isn’t my primary responsibility at work, I usually forget how to do things.</p><p>This time, instead of scouring the spam-filled internet via Yandex, I’ve decided to seek assistance from ChatGPT. I’ll be utilizing ChatGPT v4 through Windows [PRE] Copilot (currently free).</p><figure><img alt="microsoft copilot logo circa feb 2024" src="https://cdn-images-1.medium.com/max/1024/1*O5LrgZb8p0ZDj1OtOUhNEQ.png" /><figcaption>I’m pretty sure the Copilot logo represents a corporate <a href="https://en.wikipedia.org/wiki/Ouroboros">ouroboros</a> wherein corporations and people feed off each other producing ambition and PowerPoint presentations.</figcaption></figure><p>Starting with mobile first, and starting with the first section of the site, I already run into a few things I don’t know how to solve.</p><p>I start a blank document in my code editor for my css file and… how do I import my fonts again 😆?</p><figure><img alt="You: import these font urls into my css file: https://fonts.googleapis.com/css2?family=Outfil:wght@800&amp;display=swap Copilot Certainly! to import fonts from URLs into your css file you…" src="https://cdn-images-1.medium.com/max/506/1*50ycUi2AfRZHkPcxaXS5Zg.png" /></figure><figure><img alt="use @import rule" src="https://cdn-images-1.medium.com/max/433/1*sMaKP1wlBG-1BMpjwAaTDg.png" /></figure><p>Great thanks. I’ve got my css file started, how do I do html with all the social graph stuff again?</p><figure><img alt="You: make me an html file named index2.html that links to a css page named style2.css with the title set to “Ryan Allen — Designer” and set the meta and og and twitter cards too" src="https://cdn-images-1.medium.com/max/508/1*ecBWiTrNDXb2AJPm2oizcw.png" /></figure><figure><img alt="Copilot Certainly! Let’s create an index2.html file with the specified requirements:" src="https://cdn-images-1.medium.com/max/503/1*hG2Y5H311Sf0pNhbCEemWA.png" /></figure><figure><img alt="&lt;!DOCTYPE html&gt; &lt;html lang=”en”&gt; &lt;head&gt; &lt;meta charset=”UTF-8&quot;&gt; &lt;meta name=”viewport” content=”width=device-width, initial-scale=1.0&quot;&gt; &lt;meta name=”description” content=”Portfolio of Ryan Allen, Designer”&gt; &lt;meta name=”author” content=”Ryan Allen”&gt; &lt;meta property=”og:title” content=”Ryan Allen — Designer”&gt; &lt;meta property=”og:description” content=”Portfolio of Ryan Allen, Designer”&gt; &lt;meta property=”og:image” content=”https://example.com/ryan-allen-thumbnail.jpg&quot;&gt; &lt;! — Re" src="https://cdn-images-1.medium.com/max/522/1*HZ-kXwwA8HG9YvuooAfnrw.png" /></figure><p>Very nice. Time to copy / paste / cleanup. I’m left with this beauty:</p><figure><img alt="&lt;!DOCTYPE html&gt; &lt;html lang=”en”&gt; &lt;head&gt; &lt;meta charset=”UTF-8&quot;&gt; &lt;meta http-equiv=”X-UA-Compatible” content=”IE=edge”&gt; &lt;meta name=”viewport” content=”width=device-width, initial-scale=1.0&quot;&gt; &lt;title&gt;Ryan Allen — Designer&lt;/title&gt; &lt;link rel=”stylesheet” href=”style.css”&gt; &lt;! — Open Graph / Facebook → &lt;meta property=”og:type” content=”website”&gt; &lt;meta property=”og:url” content=”https://ryanallen.com”&gt; &lt;meta property=&quot;og:title&quot; content=”Ryan Allen — Designer”&gt;" src="https://cdn-images-1.medium.com/max/1024/1*Q4DhO5a4ybLk9nVvDY4z8Q.png" /></figure><p>Alright now I’ve been working under the mental model of a small to large, top to bottom, and now its time to add a 3rd level of depth. Background to foreground. I find that by keeping a consistent structure like this I don’t have weird things conflicting in my code. So now the time comes to set my background image in the first content block I’ve named hero, and I cant remember the different ways you can have a background image resize in css.</p><figure><img alt="yo whutup chattygepete how do u have background imgs resize in css for max responsive goodness porfavor?" src="https://cdn-images-1.medium.com/max/485/1*qQS2d3N6UA2WefjolKmpUA.png" /></figure><figure><img alt="Copilot Hey there! 😄 To create responsive background images in CSS, you’ve got a few techniques at your disposal: Using background-size Property: The background-size property allows you to control how the background image scales. Here are some options: contain: Scales the image to fit within the container while maintaining its aspect ratio. cover: Covers the entire container, cropping if necessary. You can also specify fixed sizes (in pixels) or percentages. Example with contain: This ensures" src="https://cdn-images-1.medium.com/max/508/1*yjjl05B_aK3_XGfDyCYBgg.png" /></figure><figure><img alt="Example with cover: This covers the entire container, cropping if necessary: CSS .myBackground { background-image: url(https://medium.com/%E2%80%9Cmy-image.jpg%E2%80%9D); background-size: cover; /* Other styles as needed */ } AI-generated code. Review and use carefully. More info on FAQ. Remember, responsiveness is key! Test your designs across different screen sizes to ensure they adapt beautifully. 🌟🎨 For more details, check out the MDN reference or explore other resources. Happy styling! 🚀 Learn more 1 devel" src="https://cdn-images-1.medium.com/max/505/1*YboFNg9LzxgHQfdtGhA1TA.png" /></figure><p>Fantastic now I remember. I’m going to use cover. As I’m playing with it in preview mode though I notice that it isn’t aligning the way I want. I want the center of the image to always be in the center of the screen. Time to ask for help.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/498/1*VLNJ1Jr1_boAryq_F7BFCw.png" /></figure><p>Oh that’s right, background-position. I remember now, thanks! Now I need to set this thing up to be responsive, starting with mobile, and I need to set up some margins for this first section and check it, fam. I’m rollin’ with that <strong>BEM naming</strong> — it’s straight fire, no cap.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/501/1*oB41sjwFDsaIPTBr93YQ1A.png" /></figure><p>I got my image working on small mobile views but I cant remember how to fill a div / box / container with a gradient to make my text more legible on top of the image to act as a skrim.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/521/1*XF9lkl0N-B-igHFxagtNAA.png" /></figure><p>Fantastic. The first section looks good on small mobile screens.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/540/1*1B5RlceQJE_U0G9Px5DKYw.png" /></figure><p>I can even use ChatGPT to solve my struggles with choosing the right name for my layer groups.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/513/1*YdKeKVKqOjPnLFmBq-BDZg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*j36XT0SkK2UxcLS60EYTBQ.png" /></figure><p>Ok next I think I’m going to change how something looks at every breakpoint as I designed in my figma:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*p6L2gEa-pRcYDn499le3uw.png" /></figure><p>I remember I want to use media queries for that, but I dont really remember where to start. Hey, ChatGPT!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/522/1*c4REu7IwcGBbqJ13Q-LDYg.png" /></figure><p>Oh right! Ok I’m going to start with one thing and follow it through all the sizes. How about margins.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/863/1*sR0KKLdp8qtt1wetucGWFw.png" /></figure><p>Lets see how that looks.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/740/1*38eWgA5H1Ubap-D20-zUOA.gif" /></figure><p>Bet! Now to clean up the rest of the stuff like gaps, font sizes, and other small things.</p><p>Now that those things are done I start in on the next section. Things are going swell until some css I write doesn’t work like it should. The link should be black not blue.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/505/1*Wr5dMzebzRxs6ibyu8Xh1A.png" /></figure><p>so I ask chatgpt to validate it for me and it finds out why:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*b6dbZExP3yGWaqfyc6qf_Q.png" /></figure><p>Deleting the extra comma fixes things easy peasy.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tItjIS_TIju1TY6z4oAYPQ.png" /></figure><p>Time to repeat linking things and <a href="https://webaim.org/resources/contrastchecker/">test the accessibility </a>of the background colors I’ll make on hover.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EXfiJfkhGMZpMG5UpHgjBw.png" /></figure><p>Lastly I’ll clean up fonts and spacing at all breakpoints like the previous section.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*740ZQyeDuuV4JcEG3Ea4Xw.png" /></figure><p>Looking good, it matches the figma from small to big. I’m gonna share it with a human front end engineer friend on discord and get their thoughts.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*79HP3nKKC7FjctIBHsoLcg.png" /></figure><p>Alright not so bad, all I need to do is change all the div id’s to div classes, and change all the # to . in css. A couple careful find and replaces later and I can move on to the next section where I know I’m going to need to have cards change from 1 to 2 to 3 columns depending on the breakpoint. I’m gonna ask ChatGPT how to do that.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/519/1*K7zO4Cdy0ZhsXg3vYDTP2w.png" /></figure><p>Hooray! Time to work in css grid, which I’ve never done before, though I have a lot of experience with flexbox so I imagine it’s similar but different ;) For example, I don’t know what the ‘fr’ is referencing in the code ChatGPT provided. I should ask it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/528/1*GhFnNJgIuzaxRnGDyoKd1g.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/492/1*vFNJOS1BlNRIcDa2-_zXcg.png" /></figure><p>Ok neat, fr is relative unit of measurement. Let’s use it and keep going. For the first part of the first card I want to put a video in the top box. I don’t know how to do that, better ask for help.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/501/1*7ApXmorOhUBzMFgC9vbOZA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/506/1*T4YBl5t-l-4WT2yRNfTGkw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/425/1*BTv0T1OvUeMZbswp9ieT_Q.png" /></figure><p>Awesome lets do it. I know I’m gonna round the top and not the bottom corners but I forget how.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/527/1*n-fpkUqxsTjwaxunxVUj1w.png" /></figure><p>Let’s see how it looks in code</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HzaJ_AVHoTkifEYsKJ9crA.png" /></figure><p>And in the browser</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/678/1*uWRwadnutdTyrfR74MlhGQ.png" /></figure><p>Great. Before I go further I’m going to examine how I built these in figma so I can figure out the best way to build them in code. Thinking before acting can be helpful. Here is a card from the design file.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2RhQ_qJl4DXfUGgPa7Rz8Q.png" /></figure><p>Top to bottom back to front we have a card that needs to flex inside its grid vertically. It has rounded corners, a dark background color, and a solid thick border around it.</p><pre> .card {<br>    display:flex;<br>    flex-direction:column;<br>    border-radius:28px;<br>    background-color:#080C0E;<br>    border: 4px solid #253034;<br> }</pre><p>Inside the card we can place our video which we also want to flex inside its flexible container. We want it to be aligned to the center both horizontally and vertically while fits using cover. It should at least be as wide as the container, and it should always be 250px tall. The corners should be rounded on the tops but not the bottoms, and the outside border isn’t needed because the card draws that. We do need a border on the bottom of the image though so we can add that to match the outside.</p><pre>.card__media {<br>    display:flex;<br>    align-items:center;<br>    justify-content:center;<br>    object-fit:cover;<br>    width:100%;<br>    height:250px;<br>    border-radius:24px 24px 0 0;<br>    border-bottom:4px solid #253034;<br>}</pre><p>There are 2 sections left, the copy and the button. The reason the sections are separate is so the button can break apart and stick to the bottom allowing all cards to stay the same height and look nice.</p><p>Here is an example that doesnt look as nice where the bottoms of the cards dont stay even:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*h3-OYO0nUpTY0naK46H7VA.png" /></figure><p>And here is one where they do stay even:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OXpMMcqtAo8Tde1GjcmxSg.png" /><figcaption>Stretched bottoms</figcaption></figure><p>Maybe you prefer one over another, this is my preference so on we go.</p><p>We are working top to bottom so we will do the copy next.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/854/1*IEct5eyol78bVhhUH4qhow.png" /></figure><p>The copy has a gap between the two lines so we are going to group them together to best control that gap. We have to use flexbox or css grid for the gap feature, so we will use flex as we just need a simple column. We can also add in our margins adding extra to the bottom above the action area with a button.</p><pre>.card__headline-section {<br>    display:flex;<br>    flex-direction:column;<br>    gap:16px;<br>    margin:24px 24px 32px 24px;<br>}</pre><p>Wonderful. Next we are gonna add the font info that stays the same at all screen sizes.</p><pre>.card__headline {<br>    font-family:adelle-sans, sans-serif;<br>    font-weight:700;<br>    font-style:normal;<br>}<br><br>.card__subheadline {<br>    font-family:proxima-nova-condensed, sans-serif;<br>    font-weight:500;</pre><p>And then add the font info that changes at the different screen sizes. Everything from 0 to 1023px wide has one version, and everything above 1023 has another. The subheadline selector from our hero shares the exact same properties so we can group these things together for easier to read css. Let me make sure I remember how to do it correctly…</p><figure><img alt="You hey cowgirl, how do i group CSS selectors together in my css that share the same properties Copilot Yeehaw! When it comes to wrangling those CSS selectors, partner, you’ve got a few moves in your holster. Let’s saddle up and ride: Grouping CSS Selectors: Wrangle ’em together like a herd of cattle. If you see repetition in your styles, it’s time to lasso those selectors. Instead of writing separate lines for each, just separate ’em with a comma: CSS h1, h2, .highlight { color: darkgray;" src="https://cdn-images-1.medium.com/max/518/1*7vaF9xDvHBmy8Qk7BihOIg.png" /></figure><p>Yeehaw, time to match methods using my sizing from the figma 🏇🌅🤠</p><pre>@media (min-width:0px) {<br>    .card__headline {<br>        font-size:18px;<br>        line-height:24px;<br>    }<br><br>    .card__subheadline {<br>        font-size:16px;<br>        line-height:24px;<br>    }<br>}<br><br>@media (min-width:1024px) {<br>    .hero__subheadline,<br>    .card__subheadline {<br>        font-size:20px;<br>        line-height:28px;<br>    }<br><br>    .card__headline {<br>        font-size:22px;<br>        line-height:30px;<br>    }<br>}</pre><p>Alright headline section done, check it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0-lLS4N5ztrOkymvjkKXKQ.png" /></figure><p>Moving on to the action area where the button will live.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1o_mVEyQrTX7iuZSh4Ljjg.png" /></figure><p>To style this we will start from the back, with the group that contains the button that we can name card__actions.</p><pre>.card__actions{<br>    display:flex;<br>  }</pre><p>It should flex inside its container, and it should grow to fill the entire container even if there is no content inside. I forget how to do that lemme ask:</p><figure><img alt="how do i make something flex inside its container, and it should grow to fill the entire container even if there is no content inside." src="https://cdn-images-1.medium.com/max/496/1*4aCwcffmU5lUg-0NBSlTsg.png" /></figure><figure><img alt="Sure thing! So here’s the lowdown: when you want an element to flex inside its container and expand to fill the whole shebang — even if it’s as empty as a tumbleweed — Flexbox is your trusty steed. 🤠 Set Up Your Container: First, make sure your container is flexin’ its muscles. Add display: flex; to it: CSS .toplevel { display: flex; /* Other styles as needed */ } AI-generated code. Review and use carefully. More info on FAQ. Let Your Element Grow: Now, for the element inside (let’s call" src="https://cdn-images-1.medium.com/max/488/1*5DgAtHFn1OmGuHYmM6fzyw.png" /></figure><p>Oh yeah I guess 1 is relative to 100% or something? Anyway, we want this container to fill up all the way, and we want the content which will be a button in this case, to be at the end. Lastly we want this container to have no margin on the top, 16px on the sides and bottom.</p><pre>.card__actions{<br>    display:flex;<br>    flex-grow:1;<br>    justify-content:flex-end;<br>    margin: 0 16px 16px;<br><br>}</pre><p>Shazaam! Next lets make this button. I’m gonna style an &lt;a&gt; link to make it a button, so I will need to change some of the styling that browsers put on links like the color and the underline decoration.</p><pre>.card__button {<br>    color:#55D8EA;<br>    text-decoration:none;<br>    font-family:&#39;Outfit&#39;, sans-serif;<br>    font-size:14px;<br>    line-height:20px;<br>}</pre><p>The shape of it should stop at the end of the content, then we can set the border, how much padding will be around the text to make the button bigger, and the roundness of the corners.</p><pre>.card__button {<br>    align-self:flex-end;<br>    border: 4px solid #55d8ea;<br>    padding:10px 24px;<br>    border-radius:80px;<br>    color:#55D8EA;<br>    text-decoration:none;<br>    font-family:&#39;Outfit&#39;, sans-serif;<br>    font-size:14px;<br>    line-height:20px;<br>}</pre><p>Beautimus. Lastly this card button needs to have a hover state. We should make a smooth transition to that state and back and not instantly change. When hovering let’s brighten up the background a little bit.</p><pre>.card__button {<br>    align-self:flex-end;<br>    border: 4px solid #55d8ea;<br>    padding:10px 24px;<br>    border-radius:80px;<br>    color:#55D8EA;<br>    text-decoration:none;<br>    font-family:&#39;Outfit&#39;, sans-serif;<br>    font-size:14px;<br>    line-height:20px;<br>    transition-duration:.1s;<br>    transition-timing-function: ease-out;<br>}<br><br>.card__button:hover {<br>    border: 4px solid #73E4F5;<br>    background-color:#021F28;<br>    transition-duration:.1s;<br>    transition-timing-function: ease-out;<br>}</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/312/1*xzN4umzeiSLhwRcenvwDYQ.gif" /></figure><p>I love it. Now to throw it all together at all breakpoints.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/907/1*N9BPGOaVu5rP-LRKDoSYgg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2JISC0PzSuAI3dJkj7X2aQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rFhybW39-Lm_AJMJ-SBF0A.png" /></figure><p>Fabulous. The rest of the site is a combination of sections of cards and sections of text that I can build out the same way as the previous sections.</p><p>I want to add some fading javascript magic but after a couple of days with chatgpt failing every attempt I found <a href="https://javascript.plainenglish.io/how-to-implement-animation-on-scroll-with-vanilla-javascript-655093a38059">this article</a> that gave me a <a href="https://factoryfactoryfactory.net/">vanilla solution</a>.</p><p>Here is the final body html that includes the fading javascript:</p><pre> &lt;body&gt;<br>        &lt;div class=&quot;hero&quot;&gt;<br>            &lt;div class=&quot;skrim&quot;&gt;<br>                &lt;div class=&quot;hero__content&quot;&gt;<br>                    &lt;h1 class=&quot;title&quot;&gt;Designer -- Ryan Allen&lt;/h1&gt;<br>                        &lt;div class=&quot;hero__headline-section&quot;&gt;<br>                            &lt;p class=&quot;hero__headline&quot;&gt;Identifying and Solving Important Problems&lt;/p&gt;<br>                            &lt;p class=&quot;hero__subheadline&quot;&gt;Ryan Allen is designing for the next generation of startups, the world’s biggest brands, and everyone in between&lt;/p&gt;<br>                        &lt;/div&gt;<br>                        &lt;a class=&quot;hero__button&quot; href=&quot;https://www.linkedin.com/in/ryanallencom/&quot;&gt;Connect on Linkedin&lt;/a&gt;<br>                &lt;/div&gt;<br>            &lt;/div&gt;<br>        &lt;/div&gt;<br>        &lt;div class=&quot;brands&quot;&gt;<br>            &lt;div class=&quot;brands__content&quot;&gt;<br>                &lt;h2 class=&quot;title hide&quot;&gt;Brands worked with&lt;/h2&gt;<br>                &lt;p class=&quot;brands__headline hide&quot;&gt;&lt;a class=&quot;brands__link-microsoft&quot; href=&quot;https://www.microsoft.com/&quot; target=&quot;blank&quot;&gt;Microsoft&lt;/a&gt;, &lt;a class=&quot;brands__link-electronic-arts&quot; href=&quot;https://www.ea.com/&quot; target=&quot;blank&quot;&gt;Electronic Arts&lt;/a&gt;, &lt;a class=&quot;brands__link-lexus&quot; href=&quot;https://www.lexus.com/&quot; target=&quot;blank&quot;&gt;Lexus&lt;/a&gt;, &lt;a class=&quot;brands__link-transamerica&quot; href=&quot;https://www.transamerica.com/&quot; target=&quot;blank&quot;&gt;Transamerica&lt;/a&gt;, &lt;a class=&quot;brands__link-mcgraw-hill&quot; href=&quot;https://www.mheducation.com//&quot; target=&quot;blank&quot;&gt;McGraw Hill&lt;/a&gt;, &lt;a class=&quot;brands__link-godaddy&quot; href=&quot;https://www.godaddy.com/&quot; target=&quot;blank&quot;&gt;Godaddy&lt;/a&gt;, &lt;a class=&quot;brands__link-charter-spectrum&quot; href=&quot;https://corporate.charter.com/&quot; target=&quot;blank&quot;&gt;Charter / Spectrum&lt;/a&gt;, &lt;a class=&quot;brands__link-jeff-gordon-childrens-foundation&quot; href=&quot;https://www.jeffgordonchildrensfoundation.org/&quot; target=&quot;blank&quot;&gt;Jeff Gordon Children&#39;s Foundation&lt;/a&gt;, and more&lt;/p&gt;<br>            &lt;/div&gt;<br>        &lt;/div&gt;<br>        &lt;div class=&quot;work&quot;&gt;<br>            &lt;div class=&quot;work__content&quot;&gt;<br>                &lt;h2 class=&quot;title hide&quot;&gt;Case Studies&lt;/h2&gt;<br>                &lt;div class=&quot;work__cards&quot;&gt;<br>                    &lt;div class=&quot;card&quot;&gt;<br>                        &lt;video class=&quot;card__media&quot; source src=&quot;videos/godaddy-desert.mp4&quot; type=&quot;video/mp4&quot; autoplay muted loop playsinline&gt;&lt;/video&gt;<br>                        &lt;div class=&quot;card__headline-section&quot;&gt;<br>                            &lt;h3 class=&quot;card__headline&quot;&gt;New Navigation for GoDaddy&lt;/h3&gt;<br>                            &lt;p class=&quot;card__subheadline&quot;&gt;Increased accuracy for global customers by 45% when browsing through navigation.&lt;/p&gt;<br>                        &lt;/div&gt;<br>                        &lt;div class=&quot;card__actions&quot;&gt;<br>                            &lt;a class=&quot;card__button&quot; target=&quot;blank&quot; href=&quot;https://medium.com/ryan-allen/godaddy-site-navigation-information-architecture-update-889f299d1417&quot;&gt;Explore Case Study&lt;/a&gt;<br>                        &lt;/div&gt;<br>                    &lt;/div&gt;<br>                    &lt;div class=&quot;card&quot;&gt;<br>                        &lt;video class=&quot;card__media&quot; source src=&quot;videos/lexus.mp4&quot; type=&quot;video/mp4&quot; autoplay muted loop playsinline&gt;&lt;/video&gt;<br>                        &lt;div class=&quot;card__headline-section&quot;&gt;<br>                            &lt;h3 class=&quot;card__headline&quot;&gt;Augmented Reality App for Lexus&lt;/h3&gt;<br>                            &lt;p class=&quot;card__subheadline&quot;&gt;Won a Gold ADDY for designing a mobile AR experience for the new Lexus IS.&lt;/p&gt;<br>                        &lt;/div&gt;<br>                        &lt;div class=&quot;card__actions&quot;&gt;<br>                            &lt;a class=&quot;card__button&quot; target=&quot;blank&quot; href=&quot;https://medium.com/ryan-allen/lexus-is-ipad-and-web-app-shipped-f7229024d00f&quot;&gt;Explore Case Study&lt;/a&gt;<br>                        &lt;/div&gt;<br>                    &lt;/div&gt;<br>                    &lt;div class=&quot;card&quot;&gt;<br>                        &lt;video class=&quot;card__media&quot; source src=&quot;videos/spectrum.mp4&quot; type=&quot;video/mp4&quot; autoplay muted loop playsinline&gt;&lt;/video&gt;<br>                        &lt;div class=&quot;card__headline-section&quot;&gt;<br>                            &lt;h3 class=&quot;card__headline&quot;&gt;Biometric Monitoring App&lt;/h3&gt;<br>                            &lt;p class=&quot;card__subheadline&quot;&gt;Transformed a new cross-company healthcare initiative from zero to one.&lt;/p&gt;<br>                        &lt;/div&gt;<br>                        &lt;div class=&quot;card__actions&quot;&gt;<br>                            &lt;a class=&quot;card__button&quot; target=&quot;blank&quot; href=&quot;https://medium.com/ryan-allen/designing-a-groundbreaking-healthcare-app-for-a-global-telcom-leader-adaecce778ea&quot;&gt;Explore Case Study&lt;/a&gt;<br>                        &lt;/div&gt;<br>                    &lt;/div&gt;<br>                &lt;/div&gt;<br>            &lt;/div&gt;<br>        &lt;/div&gt;<br>        &lt;div class=&quot;awards&quot;&gt;<br>            &lt;div class=&quot;awards__content&quot;&gt;<br>                &lt;h2 class=&quot;title hide&quot;&gt;Achievements Unlocked&lt;/h2&gt;<br>                &lt;div class=&quot;awards__cards hide&quot;&gt;<br>                    &lt;div class=&quot;card&quot;&gt;<br>                        &lt;img class=&quot;card__media&quot; src=&quot;images/trophies.jpg&quot; alt=&quot;Trophies displayed during a celebration&quot;&gt;<br>                        &lt;div class=&quot;card__headline-section&quot;&gt;<br>                            &lt;h3 class=&quot;card__headline&quot;&gt;#1 Most Downloaded Apps&lt;/h3&gt;<br>                            &lt;p class=&quot;card__subheadline&quot;&gt;Designed and managed development of multiple original #1 top free and #1 top paid apps in the Apple, Google, and Microsoft mobile app stores.&lt;/p&gt;<br>                        &lt;/div&gt;<br>                    &lt;/div&gt;<br>                    &lt;div class=&quot;card&quot;&gt;<br>                        &lt;img class=&quot;card__media&quot; src=&quot;images/ferrari.jpg&quot; alt=&quot;Glowing Ferrari Testarossa with pink and blue cyberpunk lighting pulling into an indoor garage unit&quot;&gt;<br>                        &lt;div class=&quot;card__headline-section&quot;&gt;<br>                            &lt;h3 class=&quot;card__headline&quot;&gt;Most Innovative Product&lt;/h3&gt;<br>                            &lt;p class=&quot;card__subheadline&quot;&gt;Won “Most Innovative Product” at SEMA for a color changing vehicle lighting system.&lt;/p&gt;<br>                        &lt;/div&gt;<br>                    &lt;/div&gt;<br>                    &lt;div class=&quot;card&quot;&gt;<br>                        &lt;img class=&quot;card__media&quot; src=&quot;images/medal.jpg&quot; alt=&quot;Round gold medal with a star in the center on a diagonally striped yellow background&quot;&gt;<br>                        &lt;div class=&quot;card__headline-section&quot;&gt;<br>                            &lt;h3 class=&quot;card__headline&quot;&gt;Gold ADDY&lt;/h3&gt;<br>                            &lt;p class=&quot;card__subheadline&quot;&gt;Won a Phoenix Gold ADDY for designing a mobile and web augmented reality app for Lexus.&lt;/p&gt;<br>                        &lt;/div&gt;<br>                    &lt;/div&gt;<br>                    &lt;div class=&quot;card&quot;&gt;<br>                        &lt;img class=&quot;card__media&quot; src=&quot;images/mcgraw-hill.jpg&quot; alt=&quot;Mcgraw Hill logo&quot;&gt;<br>                        &lt;div class=&quot;card__headline-section&quot;&gt;<br>                            &lt;h3 class=&quot;card__headline&quot;&gt;Published Illustrator&lt;/h3&gt;<br>                            &lt;p class=&quot;card__subheadline&quot;&gt;Over 100 hand-drawn illustrations published by McGraw Hill.&lt;/p&gt;<br>                        &lt;/div&gt;<br>                    &lt;/div&gt;<br>                    &lt;div class=&quot;card&quot;&gt;<br>                        &lt;img class=&quot;card__media&quot; src=&quot;images/howard-stern.jpg&quot; alt=&quot;Mcgraw Hill logo&quot;&gt;<br>                        &lt;div class=&quot;card__headline-section&quot;&gt;<br>                            &lt;h3 class=&quot;card__headline&quot;&gt;Howard Stern Show Guest&lt;/h3&gt;<br>                            &lt;p class=&quot;card__subheadline&quot;&gt;Had multiple live appearances on the Howard Stern Show to promote one of the top apps I designed.&lt;/p&gt;<br>                        &lt;/div&gt;<br>                    &lt;/div&gt;<br>                    &lt;div class=&quot;card&quot;&gt;<br>                        &lt;img class=&quot;card__media&quot; src=&quot;images/gdc-best-in-play.jpg&quot; alt=&quot;Mcgraw Hill logo&quot;&gt;<br>                        &lt;div class=&quot;card__headline-section&quot;&gt;<br>                            &lt;h3 class=&quot;card__headline&quot;&gt;Best in GDC Play&lt;/h3&gt;<br>                            &lt;p class=&quot;card__subheadline&quot;&gt;Won “Best in GDC Play” for game design on an iPad mobile game.&lt;/p&gt;<br>                        &lt;/div&gt;<br>                    &lt;/div&gt;<br>                &lt;/div&gt;<br>            &lt;/div&gt;<br>        &lt;/div&gt;<br>        &lt;div class=&quot;reviews&quot;&gt;<br>            &lt;div class=&quot;reviews__content&quot;&gt;<br>                &lt;h2 class=&quot;title hide&quot;&gt;Recommendations&lt;/h2&gt;<br>                &lt;div class=&quot;reviews__cards hide&quot;&gt;<br>                    &lt;div class=&quot;card-light&quot;&gt;<br>                        &lt;div class=&quot;card-light__content&quot;&gt;<br>                            &lt;div class=&quot;card-light__quote-section&quot;&gt;<br>                                &lt;div class=&quot;card-light__quote-mark&quot;&gt;&quot;&lt;/div&gt;<br>                                &lt;p class=&quot;card-light__quote&quot;&gt;Working with Ryan has been one of the more enjoyable times in my professional career. Being assigned to work on the same team, we worked closely together from ideation to completion on a number of projects. Ryan is focused and driven to provide the best final product possible using the tools provided. When we found gaps in our capabilities, Ryan was the driver in finding smart solutions. He uses strong research skills and tenacity to find a workaround to any blockers we would encounter. He takes the initiative to work with other teams to create new tools and processes that would help us both short and long-term. Ryan persistently strives for excellence in his work and it is contagious to those he works with - myself included. I would highly recommend him to anyone looking for someone that will go above and beyond.&lt;/p&gt;<br>                            &lt;/div&gt;<br>                            &lt;div class=&quot;card-light__divider&quot;&gt;&lt;/div&gt;<br>                            &lt;div class=&quot;card-light__reviewer&quot;&gt;<br>                                &lt;div class=&quot;card-light__reviewer-section&quot;&gt;<br>                                    &lt;div class=&quot;card-light__reviewer-img card-light__reviewer-img--steven&quot;&gt;&lt;/div&gt;<br>                                    &lt;div class=&quot;card-light__reviewer-content&quot;&gt;<br>                                        &lt;p class=&quot;card-light__reviewer-name&quot;&gt;Steven Phillips&lt;/p&gt;<br>                                        &lt;p class=&quot;card-light__reviewer-info&quot;&gt;Senior Manager, CRO&lt;br&gt;April 24,2019, Steven worked with Ryan in the same group&lt;/p&gt;<br>                                    &lt;/div&gt;<br>                                &lt;/div&gt;<br>                            &lt;/div&gt;<br>                        &lt;/div&gt;<br>                    &lt;/div&gt;<br>                    &lt;div class=&quot;card-light&quot;&gt;<br>                        &lt;div class=&quot;card-light__content&quot;&gt;<br>                            &lt;div class=&quot;card-light__quote-section&quot;&gt;<br>                                &lt;div class=&quot;card-light__quote-mark&quot;&gt;&quot;&lt;/div&gt;<br>                                &lt;p class=&quot;card-light__quote&quot;&gt;More than two years ago, Ryan took a chance and hired me at GoDaddy. As my first manager, he helped me understand the company’s working process and always made me feel welcome. He is innovative, organized, and always open to ideas and suggestions. He has made me improve in many professional areas and taught me about UX research and multi-tasking skills. A wonderful sense of humor in combination with deep empathy enabled him to lift my spirits in exceptionally stressful situations. It was a pleasure to be managed by him as he has exceptional expertise in leadership, coaching, and motivation.&lt;/p&gt;<br>                            &lt;/div&gt;<br>                            &lt;div class=&quot;card-light__divider&quot;&gt;&lt;/div&gt;<br>                            &lt;div class=&quot;card-light__reviewer&quot;&gt;<br>                                &lt;div class=&quot;card-light__reviewer-section&quot;&gt;<br>                                    &lt;div class=&quot;card-light__reviewer-img card-light__reviewer-img--summer&quot;&gt;&lt;/div&gt;<br>                                    &lt;div class=&quot;card-light__reviewer-content&quot;&gt;<br>                                        &lt;p class=&quot;card-light__reviewer-name&quot;&gt;Summer Tong Sun&lt;/p&gt;<br>                                        &lt;p class=&quot;card-light__reviewer-info&quot;&gt;UX Designer at Amazon | Organizer of UXperience Seattle | ADPlist mentor&lt;br&gt;January 14, 2022 Summer Tong reported directly to Ryan&lt;/p&gt;<br>                                    &lt;/div&gt;<br>                                &lt;/div&gt;<br>                            &lt;/div&gt;<br>                        &lt;/div&gt;<br>                    &lt;/div&gt;<br>                    &lt;div class=&quot;card-light&quot;&gt;<br>                        &lt;div class=&quot;card-light__content&quot;&gt;<br>                            &lt;div class=&quot;card-light__quote-section&quot;&gt;<br>                                &lt;div class=&quot;card-light__quote-mark&quot;&gt;&quot;&lt;/div&gt;<br>                                &lt;p class=&quot;card-light__quote&quot;&gt;Ryan was amazing through the discovery process as we observed customer needs and iterated together. For fun, we always made bets on design concepts, and Ryan always won. His forward-thinking and ability to adapt to any product are wonderful.&lt;br&gt;Thank you Ryan!&lt;/p&gt;<br>                            &lt;/div&gt;<br>                            &lt;div class=&quot;card-light__divider&quot;&gt;&lt;/div&gt;<br>                            &lt;div class=&quot;card-light__reviewer&quot;&gt;<br>                                &lt;div class=&quot;card-light__reviewer-section&quot;&gt;<br>                                    &lt;div class=&quot;card-light__reviewer-img card-light__reviewer-img--brett&quot;&gt;&lt;/div&gt;<br>                                    &lt;div class=&quot;card-light__reviewer-content&quot;&gt;<br>                                        &lt;p class=&quot;card-light__reviewer-name&quot;&gt;Brett Rogers&lt;/p&gt;<br>                                        &lt;p class=&quot;card-light__reviewer-info&quot;&gt;Sr. Director Product Management at Charter Communications&lt;br&gt;August 26, 2023, Brett managed Ryan directly&lt;/p&gt;<br>                                    &lt;/div&gt;<br>                                &lt;/div&gt;<br>                            &lt;/div&gt;<br>                        &lt;/div&gt;<br>                    &lt;/div&gt;<br>                &lt;/div&gt;<br>                &lt;a class=&quot;reviews__button&quot; target=&quot;blank&quot; href=&quot;https://www.linkedin.com/in/ryanallencom/&quot;&gt;More on Linkedin&lt;/a&gt;<br>            &lt;/div&gt;<br>        &lt;/div&gt;<br>        &lt;div class=&quot;links&quot;&gt;<br>            &lt;div class=&quot;links__content&quot;&gt;<br>                &lt;h2 class=&quot;title hide&quot;&gt;Articles &amp; Personal Works&lt;/h2&gt;<br>                &lt;div class=&quot;links__cards hide&quot;&gt;<br>                    &lt;div class=&quot;card&quot;&gt;<br>                        &lt;img class=&quot;card__media&quot; src=&quot;images/workstation.jpg&quot; alt=&quot;Computer and accessories on a grey desk with some green plants&quot;&gt;<br>                        &lt;div class=&quot;card__headline-section&quot;&gt;<br>                            &lt;h3 class=&quot;card__headline&quot;&gt;Art &amp; Design Articles&lt;/h3&gt;<br>                            &lt;p class=&quot;card__subheadline&quot;&gt;Explore my writings on art and design&lt;/p&gt;<br>                        &lt;/div&gt;<br>                        &lt;div class=&quot;card__actions&quot;&gt;<br>                            &lt;a class=&quot;card__button&quot; target=&quot;blank&quot; href=&quot;https://medium.com/@ryanallen_com&quot;&gt;Explore Articles&lt;/a&gt;<br>                        &lt;/div&gt;<br>                    &lt;/div&gt;<br>                    &lt;div class=&quot;card&quot;&gt;<br>                        &lt;img class=&quot;card__media&quot; src=&quot;images/imrsn.jpg&quot; alt=&quot;immersion&quot;&gt;<br>                        &lt;div class=&quot;card__headline-section&quot;&gt;<br>                            &lt;h3 class=&quot;card__headline&quot;&gt;AI Image Generation&lt;/h3&gt;<br>                            &lt;p class=&quot;card__subheadline&quot;&gt;Explore my A.I. images at imrsn.com&lt;/p&gt;<br>                        &lt;/div&gt;<br>                        &lt;div class=&quot;card__actions&quot;&gt;<br>                            &lt;a class=&quot;card__button&quot; target=&quot;blank&quot; href=&quot;http://www.imrsn.com&quot;&gt;Explore Images&lt;/a&gt;<br>                        &lt;/div&gt;<br>                    &lt;/div&gt;<br>                &lt;/div&gt;<br>            &lt;/div&gt;<br>        &lt;/div&gt;<br>        &lt;div class=&quot;colophon&quot;&gt;<br>            &lt;div class=&quot;colophon__content&quot;&gt;<br>                &lt;h2 class=&quot;title hide&quot;&gt;Colophon&lt;/h2&gt;<br>                &lt;a class=&quot;colophon__link hide&quot; target=&quot;blank&quot; href=&quot;https://github.com/ryanallen/portfolio&quot;&gt;Hand-written HTML &amp; CSS by Ryan Allen. See it on Github →&lt;/a&gt;<br>            &lt;/div&gt;<br>        &lt;/div&gt;<br>        &lt;script defer src=&quot;fade.js&quot;&gt;&lt;/script&gt;<br>    &lt;/body&gt;</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lsaXPsGmxGmXH0AJ9zxcEg.jpeg" /><figcaption>See the finished site at <a href="https://ryanallen.com/"><strong>https://ryanallen.com/</strong></a></figcaption></figure><p>You can see the finished live site up at <a href="https://ryanallen.com/">https://ryanallen.com/</a> and you can see all the code on github at <a href="https://github.com/ryanallen/portfolio">https://github.com/ryanallen/portfolio</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=94b97123f8f3" width="1" height="1" alt=""><hr><p><a href="https://medium.com/a-i-art-design/revamping-my-design-portfolio-with-a-i-magic-chatgpt-midjourney-runwayml-and-adobe-unite-94b97123f8f3">Revamping My Design Portfolio with A.I. Magic: ChatGPT, Midjourney, RunwayML, and Adobe Unite!</a> was originally published in <a href="https://medium.com/a-i-art-design">A.I. Art, Design &amp; Dev</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Minecraft Windows Save File Location]]></title>
            <link>https://medium.com/@ryanallen_com/minecraft-windows-save-file-location-9ae871a2e3c7?source=rss-653bd5dd51dd------2</link>
            <guid isPermaLink="false">https://medium.com/p/9ae871a2e3c7</guid>
            <dc:creator><![CDATA[Ryan Allen]]></dc:creator>
            <pubDate>Sun, 16 Jul 2023 04:00:37 GMT</pubDate>
            <atom:updated>2023-07-16T04:00:37.781Z</atom:updated>
            <content:encoded><![CDATA[<p>Windows stores it’s save files at: C:\Users(your pc username)\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9ae871a2e3c7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Unveiling Apple’s Privacy Paradox: The Dark Side of App Store Policies]]></title>
            <link>https://medium.com/@ryanallen_com/unveiling-apples-privacy-paradox-the-dark-side-of-app-store-policies-c8a63d459dae?source=rss-653bd5dd51dd------2</link>
            <guid isPermaLink="false">https://medium.com/p/c8a63d459dae</guid>
            <category><![CDATA[privacy]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[apple]]></category>
            <dc:creator><![CDATA[Ryan Allen]]></dc:creator>
            <pubDate>Thu, 13 Jul 2023 01:51:15 GMT</pubDate>
            <atom:updated>2023-07-13T03:20:11.630Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="Rotten apple" src="https://cdn-images-1.medium.com/max/1024/1*gTx6R28O8voiEoL_q90XMw.png" /><figcaption>Rot destroys</figcaption></figure><p>Apple, universally admired for their refined hardware and design aesthetics, has attained its loyal consumer base partly because of its commitment to safeguarding user privacy. However, there is an unsettling and controversial aspect lurking in Apple’s privacy strategies, particularly in its dealings with app developers and the user data they amass. Quite controversially, Apple appears to facilitate the sharing of user data to applications, without ensuring that privacy-friendly versions of these apps are available on the store. This article will delve into this disquieting paradox, exploring how it essentially commits an affront to user privacy.</p><h4>The Arbiter of the App Domain</h4><p>Arguably, the App Store is the linchpin in curating Apple’s digital environment for its users. Apple’s meticulous process of vetting and approving apps establishes a guarantee of quality and security. However, when viewed through the prism of privacy, Apple’s stringent policies seemingly betray its commitment.</p><h4>Siphoning User Data: The Fatal Flaw of Apps</h4><p>The unpleasant truth lies in applications’ insatiable appetite for user data. Various personal and sometimes sensitive data points are at the app developers’ disposal as the benign act of installing an app from the App Store can result in users unwittingly surrendering their data. Some of these include device-specific data, location details, personal health and financial information, and even contacts. Despite the existence opt-out mechanisms, the reality about data solicitation is often obfuscated, mystifying to many users.</p><h4>Shocking Lack of Privacy Focused Alternatives</h4><p>Although Apple advocates privacy-conscious policies from app developers, there is no express directive to offer alternative variants of apps, designed to be privacy-invading-minimalists. Apple allows Facebook (and other companies with money) to get away with requiring access to all private data in order to use the app. Facebook shouldn’t need access to my location, health data, contact list, and other private information just to be installed. Apple doesn’t force Facebook to provide lite versions of their apps for example that don’t track sensitive information. Users grappling for more private choices are therefore left high and dry, forced to compromise their privacy in exchange for certain app functionalities.</p><h4>Apple’s Perceived Profit-Driven Arrangement</h4><p>Critics argue that Apple’s laissez-faire attitude towards apps and access to personal user data centers around monetary motives. The absence of strict data privacy requirements pushes greedy capitalist app developers, towards the walled App Store garden. It catalyzes not only a surge of apps on the platform but also bolsters revenue through app sales and in-app transactions. However, this profiteering tactic belies users’ privacy and destroys society.</p><h4>Privacy: The Unseen Casualty</h4><p>The uncensored access of apps to personal user data carries severe repercussions — potential misuse, data breaches, identity theft, and dangerous targeted advertisements are just a few to mention. The lack of privacy-guarding alternatives further compounds this issue, leaving users exposed and defenseless against those eager to manipulate their information.</p><h4>What can Apple Do</h4><p>Apple’s pledge to protect user privacy is an integral part of its brand ethos. However, the perceivable contradiction between their professed mission and their App Store policies stands to risk their reputation. Putting profits ahead of user privacy undermines the implicit trust users place in Apple’s dynamic ecosystem. Now, more than ever, Apple must revisit its App Store guidelines to prioritize and promote privacy-conscious alternatives, thereby providing a more trustworthy and secure digital experience for their users.</p><h4>What can We Do</h4><p>In an era where digital privacy is more than a necessity, we as users must make informed decisions about the protections we utilize. One viable solution could be the use of web apps in place of native apps. Web apps, running in your browser, generally gather fewer user data and don’t require installation, significantly reducing the potential for data exposure. By utilizing web apps, we can enjoy the functionalities we need without the risks associated with unnecessary data collection. As potent defenders of our privacy, web apps signify a pivotal stride in our shift towards safer, more private digital practices. It’s high time that we, as users, give preference to tools and practices that prioritize our privacy, affording us control over our digital footprint.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c8a63d459dae" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Apple Spatial Computing Design Principles]]></title>
            <link>https://medium.com/@ryanallen_com/apple-spatial-computing-design-principles-7f5b4c60401f?source=rss-653bd5dd51dd------2</link>
            <guid isPermaLink="false">https://medium.com/p/7f5b4c60401f</guid>
            <category><![CDATA[design]]></category>
            <category><![CDATA[design-principles]]></category>
            <category><![CDATA[apple]]></category>
            <category><![CDATA[product-design]]></category>
            <category><![CDATA[apple-reality-pro]]></category>
            <dc:creator><![CDATA[Ryan Allen]]></dc:creator>
            <pubDate>Sat, 10 Jun 2023 14:35:52 GMT</pubDate>
            <atom:updated>2023-06-10T14:35:52.481Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2Xkf8SMQsaQnztmS_rSUVg.png" /></figure><h3>Principles of spatial design</h3><p>Discover the fundamentals of spatial design. Learn how to design with depth, scale, windows, and immersion, and apply best practices for creating comfortable, human-centered experiences that transform reality. Find out how you can use these spatial design principles to extend your existing app or bring a new idea to life.</p><h4>Chapters</h4><ul><li>0:00 — <a href="https://developer.apple.com/videos/play/wwdc2023/10072/?time=0">Introduction</a></li><li>1:25 — <a href="https://developer.apple.com/videos/play/wwdc2023/10072/?time=85">Familiar</a></li><li>5:26 — <a href="https://developer.apple.com/videos/play/wwdc2023/10072/?time=326">Human-centered</a></li><li>8:22 — <a href="https://developer.apple.com/videos/play/wwdc2023/10072/?time=502">Dimensional</a></li><li>12:39 — <a href="https://developer.apple.com/videos/play/wwdc2023/10072/?time=759">Immersive</a></li><li>18:24 — <a href="https://developer.apple.com/videos/play/wwdc2023/10072/?time=1104">Authentic</a></li></ul><p><a href="https://developer.apple.com/videos/play/wwdc2023/10072/">Principles of spatial design — WWDC23 — Videos — Apple Developer</a></p><h3>Design for spatial user interfaces</h3><p>Learn how to design great interfaces for spatial computing apps. We’ll share how your existing screen-based knowledge easily translates into creating great experiences for visionOS. Explore guidelines for UI components, materials, and typography and find out how you can design experiences that are familiar, legible, and easy to use.</p><h4>Chapters</h4><ul><li>0:00 — <a href="https://developer.apple.com/videos/play/wwdc2023/10076/?time=0">Introduction</a></li><li>1:12 — <a href="https://developer.apple.com/videos/play/wwdc2023/10076/?time=72">App icons</a></li><li>2:45 — <a href="https://developer.apple.com/videos/play/wwdc2023/10076/?time=165">Materials</a></li><li>5:28 — <a href="https://developer.apple.com/videos/play/wwdc2023/10076/?time=328">Typography</a></li><li>6:55 — <a href="https://developer.apple.com/videos/play/wwdc2023/10076/?time=415">Vibrancy</a></li><li>8:12 — <a href="https://developer.apple.com/videos/play/wwdc2023/10076/?time=492">Layout</a></li><li>14:11 — <a href="https://developer.apple.com/videos/play/wwdc2023/10076/?time=851">From screen to spatial</a></li></ul><p><a href="https://developer.apple.com/videos/play/wwdc2023/10076/">Design for spatial user interfaces — WWDC23 — Videos — Apple Developer</a></p><h3>Design for spatial input</h3><p>Learn how to design great interactions for eyes and hands. We’ll share the design principles for spatial input, explore best practices around input methods, and help you create spatial experiences that are comfortable, intuitive, and satisfying.</p><h4>Chapters</h4><ul><li>0:00 — <a href="https://developer.apple.com/videos/play/wwdc2023/10073/?time=0">Introduction</a></li><li>2:22 — <a href="https://developer.apple.com/videos/play/wwdc2023/10073/?time=142">Eyes</a></li><li>12:21 — <a href="https://developer.apple.com/videos/play/wwdc2023/10073/?time=741">Hands</a></li><li>18:36 — <a href="https://developer.apple.com/videos/play/wwdc2023/10073/?time=1116">Conclusion</a></li></ul><p><a href="https://developer.apple.com/videos/play/wwdc2023/10073/">Design for spatial input — WWDC23 — Videos — Apple Developer</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7f5b4c60401f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Create Your Own Adventure: How We Developed a 1–4 Player Co-Op Role-Playing Collectible Card Game…]]></title>
            <link>https://medium.com/a-i-art-design/create-your-own-adventure-how-we-developed-a-1-4-player-co-op-role-playing-collectible-card-game-c56e30dd3528?source=rss-653bd5dd51dd------2</link>
            <guid isPermaLink="false">https://medium.com/p/c56e30dd3528</guid>
            <category><![CDATA[art]]></category>
            <category><![CDATA[homemade]]></category>
            <category><![CDATA[card-game]]></category>
            <category><![CDATA[gaming]]></category>
            <category><![CDATA[rpg]]></category>
            <dc:creator><![CDATA[Ryan Allen]]></dc:creator>
            <pubDate>Tue, 11 Apr 2023 18:12:32 GMT</pubDate>
            <atom:updated>2023-04-14T14:32:31.109Z</atom:updated>
            <content:encoded><![CDATA[<h3>Create Your Own Adventure: How We Developed a 1–4 Player Co-Op Role-Playing Collectible Card Game with AI-Assisted Graphics</h3><p>For decades, my childhood friend and I have been gaming together, playing titles like Quest for Glory, Space Quest, Hero Quest, Dark Tower, Dungeons and Dragons, Doom, The Realm, Magic the Gathering, Ultima, Warcraft, and more. Recently, we decided to take our gaming to the next level and create a game that both of us, as well as our children, could enjoy together. We’ve been creating rules and card images with photoshop, <a href="https://www.midjourney.com/app/users/e79d7428-3ccf-4f15-8c86-9fa0a1a2c302/">midjourney</a>, and stable diffusion to make<a href="https://www.thegamecrafter.com/games/otherworld:-druids"> this game</a> a reality, and we can’t wait to finally play it together!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*924ErQvRzfYoPhQBL392Rg.jpeg" /><figcaption>A.I. Generated Image of a pretend game similar to Hero’s Quest (not representative of</figcaption></figure><p>To begin creating the game, we took inspiration from our favorite titles and identified common themes such as heroes, villains, dark fantasy, spells, role playing actions, and evil creatures. Additionally, we included features like quests, resource management, leveling up opportunities, and shopping. We started out with a few cards and tested them among ourselves and our kiddos. As the game progressed, we added more cards to make it a multi-session experience with five levels of difficulty.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AU_6w31XZYB9dQ1jjczcCA.png" /><figcaption>Artwork of one of the vampire villains in the game</figcaption></figure><p>We decided early on that everyone should have the ability to use magic, so each hero is a druid with spells who can also specialize through the purchase of skills. Our inspiration for this idea was drawn from our own interest in magic users, and darker fantasy themes such as druids, fairies, and vampires from Irish folklore. We also incorporated Gold as a resource and shopping as a mechanic into the game.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FS8lIJ7fzQ-BkNsMvdbXcQ.png" /><figcaption>Some of our concept art for a magic druid</figcaption></figure><p>Our game features a typical party structure of a tank, healer, magic user, and rogue with unique mechanics for each hero. For example, the healer has more group healing capabilities than the other characters. However, all characters have the ability to heal.</p><figure><img alt="Heroes: Tank, Healer, Magic user, and Rogue" src="https://cdn-images-1.medium.com/max/1024/1*tuVqud-vJSMJcEXr5uq6fg.jpeg" /><figcaption>Heroes: Tank, Healer, Magic user, and Rogue</figcaption></figure><p>We started by placing content into the initial level in a spreadsheet. This level took around 30–45 minutes to play through. We then built upon that by creating the remaining four levels, raising the difficulty as the player advances, much like a video game.</p><figure><img alt="spreadsheet database of hero cards for card game made by ryanallen.com" src="https://cdn-images-1.medium.com/max/1024/1*ymOZ-Vr4ctO2ZDgMNFgpXg.png" /><figcaption>Initial spreadsheet database to track all the cards and rules</figcaption></figure><p>After creating low resolution art for testing, we generated high resolution art for the cards using Photoshop and Stable Diffusion. This enabled us to imagine, refine, and produce artwork for the hundreds of playing cards in a few weeks instead of months.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*R3G3SSJLto2MdVBHLHYAwg.png" /><figcaption>Over 170+ unique cards</figcaption></figure><p>The cards were then proofed, saved in the database, and sent to the printer. We got back our first copy to play with and do a final proof.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XKsoioDPZt0HL26Z9F2q7Q.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*En3IILUnug3V0kAmeR1lcw.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*V4eCCc57xnnkZu2nkiRdpw.jpeg" /></figure><p>After playing all the way through we found that no changes were needed, so the final version is up and <a href="https://www.thegamecrafter.com/games/otherworld:-druids">available to order here</a>!</p><figure><a href="https://www.thegamecrafter.com/games/otherworld:-druids"><img alt="Game store page" src="https://cdn-images-1.medium.com/max/1024/1*WgIxqwuIlaxv5_zbj9jWDg.png" /></a></figure><p>If you play the game leave your feedback in the article comments.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c56e30dd3528" width="1" height="1" alt=""><hr><p><a href="https://medium.com/a-i-art-design/create-your-own-adventure-how-we-developed-a-1-4-player-co-op-role-playing-collectible-card-game-c56e30dd3528">Create Your Own Adventure: How We Developed a 1–4 Player Co-Op Role-Playing Collectible Card Game…</a> was originally published in <a href="https://medium.com/a-i-art-design">A.I. Art, Design &amp; Dev</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Free up your time by automatically categorizing your Midjourney images with these 4 effective steps]]></title>
            <link>https://medium.com/a-i-art-design/free-up-your-time-by-automatically-categorizing-your-midjourney-images-with-these-4-effective-steps-74ebe1a390c5?source=rss-653bd5dd51dd------2</link>
            <guid isPermaLink="false">https://medium.com/p/74ebe1a390c5</guid>
            <dc:creator><![CDATA[Ryan Allen]]></dc:creator>
            <pubDate>Thu, 06 Apr 2023 18:08:35 GMT</pubDate>
            <atom:updated>2023-04-07T18:48:29.116Z</atom:updated>
            <content:encoded><![CDATA[<p>Do you like to categorize your midjourney images into collections but don’t like spending countless hours doing it? I found this helpful way of automating things I want to share!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Uz7Ps3QdLtdnDaAg35wEGg.png" /></figure><h3>First, make a discord server.</h3><p>It is really easy, you can do it on your phone or your desktop. Tap on the + icon in the vertical rail menu that opens up when you tap the hamburger icon. Then create a server using the templates however you want.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/472/1*rEEhxzrYdWH4h4auB6QLzg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/666/1*nv66ohc-RvRQXLcBzyNExg.png" /></figure><h3>Next, invite the Midjourney robot to your server</h3><p>Now that you have your own Discord server, you need to <a href="https://docs.midjourney.com/docs/invite-the-bot">invite the midjourney bot</a> you have been DMing with into it. Do this on mobile by long-pressing the bot in your DM list and viewing its profile. On desktop right click it and select profile. Then choose “Add to Server”, and authorize it to do all the things in the server.</p><p>Make a test channel and /imagine prompt: something to make sure it works</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/918/1*8XD5lFYA5X8ZKVhtpS9KGA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/605/1*SaJ-jyXQ5Sfas4TnNUR6Zw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/433/1*d3_fJKKtizXIeH_HrSODpw.png" /></figure><h3>Then, create channels to match your categories</h3><p>Now that the bot is integrated into your server, it is time to make discord categories to match your midjourney categories.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/302/1*1j_yxzzgLQa9WOB24ZfaeA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/698/1*GqstjPlOL53K8YtrCGYT1w.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/975/1*UaguONevYaKFqa4Mfjs8PQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/355/1*_gXUSE9dsyWiHxQmjuu3aA.png" /></figure><h3>Finally, add Discord Channel ID’s to Midjourney Collection Workspaces</h3><p>Last step is to copy each channel ID from Discord and paste them into each Midjourney collection workspace. To do this on mobile long-press the channel name and select copy ID. On desktop right click to do it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/419/1*TIMuRQPlrrVMrJRcPZhFEA.png" /></figure><p>Next go into your midjourney collection this channel aligns with and edit the collection by tapping the button with 3 dots (…) and selecting ‘Edit Collection’.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/722/1*RxwV8DcGd56O3H7_UGZZoQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/734/1*40-eccgXyyIxrs_2kz44uw.png" /></figure><p>Finally paste the Channel ID copied from Discord into the ‘WORKSPACES’ field in this midjourney collection. You can add up to 4 discord channels to one midjourney collection.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/739/1*Fsm25IPpoADKnHYolMp-8g.png" /></figure><h3>Everything will now automatically be categorized in the right collection on Midjourney</h3><p>Congratulations, you no longer need to spend countless hours manually categorizing things in midjourney. Please share your favorite images with me in the comments!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=74ebe1a390c5" width="1" height="1" alt=""><hr><p><a href="https://medium.com/a-i-art-design/free-up-your-time-by-automatically-categorizing-your-midjourney-images-with-these-4-effective-steps-74ebe1a390c5">Free up your time by automatically categorizing your Midjourney images with these 4 effective steps</a> was originally published in <a href="https://medium.com/a-i-art-design">A.I. Art, Design &amp; Dev</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Creating Personalized Cat-Themed Books with My Child: An Uplifting Experience]]></title>
            <link>https://medium.com/a-i-art-design/creating-a-personalized-cat-themed-book-with-my-child-an-uplifting-experience-40df3ac2b75c?source=rss-653bd5dd51dd------2</link>
            <guid isPermaLink="false">https://medium.com/p/40df3ac2b75c</guid>
            <category><![CDATA[cats]]></category>
            <category><![CDATA[ai-art]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[funny-animal]]></category>
            <dc:creator><![CDATA[Ryan Allen]]></dc:creator>
            <pubDate>Fri, 31 Mar 2023 14:10:30 GMT</pubDate>
            <atom:updated>2023-04-03T14:09:23.136Z</atom:updated>
            <content:encoded><![CDATA[<p>I wanted to make personalized books for my child to help her sleep better. I think it is very important to make her feel safe, and I liked working on this project with her. We decided to create books about cats that we liked.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*79Oj2wPjf9t8TDoJZptBGA.jpeg" /><figcaption>160 photorealistic images of cats</figcaption></figure><p><a href="https://www.amazon.com/dp/B0C12D3TG4">Get Cat Book Hardcover on Amazon →</a></p><p><a href="https://www.dropbox.com/s/a6x5ojmhts4idki/catBook_sm.pdf?dl=0">Download Cat Book as a PDF →</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5Ks6G_kFam5v5xKRWdxH4Q.jpeg" /><figcaption>160 photorealistic images of cats as people</figcaption></figure><p><a href="https://www.amazon.com/dp/B0C12D3THW">Get Cat People Hardcover on Amazon →</a></p><p><a href="https://www.dropbox.com/s/d1beon13f76g0bo/catPeople_sm.pdf?dl=0">Download Cat People as a PDF →</a></p><p>Making books with my child was fun and useful. It helped us to connect and to grow her creativity. It also taught her how to read and write when we made the prompts. Most of all, it made her bedtime more enjoyable and exciting.</p><p>Our creative journey began with a brainstorming session where we wrote down all the cat-related things we wanted to put in our book. We looked through old photos of our cats for inspiration, and made a list of ideas we wanetd to see.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*r51ykpHs2M27GpQmr0UQLg.jpeg" /></figure><p>We used midjourney v5 to create images of cats doing various activities. We selected the most suitable ones and edited them in photoshop.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*r4Og53UdvB4vPiXiM0Nb7w.png" /></figure><p>Then we upscaled them using gigapixelAI to get the best resolution for a 6x9 book printed by Amazon KDP.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*eBI6v1ccCdQK3stMZy7Zgw.png" /><figcaption>Interior content and exterior cover PDFs uploaded to Amazon KDP</figcaption></figure><p>After checking carefully for errors and finding none, we uploaded our artwork onto Amazon KDP, where we then bought printed copies to see our final products.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/540/1*26iSAINwGq0IrdDohadT_A.gif" /></figure><p>It is nice to spend time with our family, and it can be better when we use our tools and skills for that. If you and your kids like to make things together with images, and they have trouble sleeping, I suggest making a book with them. 😻</p><p><a href="https://www.amazon.com/dp/B0C12D3TG4">Get Cat Book Hardcover on Amazon →</a></p><p><a href="https://www.dropbox.com/s/a6x5ojmhts4idki/catBook_sm.pdf?dl=0">Download Cat Book as a PDF →</a></p><p><a href="https://www.amazon.com/dp/B0C12D3THW">Get Cat People Hardcover on Amazon →</a></p><p><a href="https://www.dropbox.com/s/d1beon13f76g0bo/catPeople_sm.pdf?dl=0">Download Cat People as a PDF →</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=40df3ac2b75c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/a-i-art-design/creating-a-personalized-cat-themed-book-with-my-child-an-uplifting-experience-40df3ac2b75c">Creating Personalized Cat-Themed Books with My Child: An Uplifting Experience</a> was originally published in <a href="https://medium.com/a-i-art-design">A.I. Art, Design &amp; Dev</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>