\ No newline at end of file
diff --git a/web/src/lib/components/ui/select/select-item.svelte b/web/src/lib/components/ui/select/select-item.svelte
new file mode 100644
index 00000000..3b310e67
--- /dev/null
+++ b/web/src/lib/components/ui/select/select-item.svelte
@@ -0,0 +1,16 @@
+
+
+
\ No newline at end of file
diff --git a/web/src/lib/components/ui/select/select-label.svelte b/web/src/lib/components/ui/select/select-label.svelte
new file mode 100644
index 00000000..24e5d2f9
--- /dev/null
+++ b/web/src/lib/components/ui/select/select-label.svelte
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/web/src/lib/components/ui/select/select-separator.svelte b/web/src/lib/components/ui/select/select-separator.svelte
new file mode 100644
index 00000000..7088e938
--- /dev/null
+++ b/web/src/lib/components/ui/select/select-separator.svelte
@@ -0,0 +1,8 @@
+
+
+
diff --git a/web/src/lib/components/ui/select/select-trigger.svelte b/web/src/lib/components/ui/select/select-trigger.svelte
new file mode 100644
index 00000000..044961b6
--- /dev/null
+++ b/web/src/lib/components/ui/select/select-trigger.svelte
@@ -0,0 +1,20 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/web/src/lib/components/ui/select/select-value.svelte b/web/src/lib/components/ui/select/select-value.svelte
new file mode 100644
index 00000000..0b47df50
--- /dev/null
+++ b/web/src/lib/components/ui/select/select-value.svelte
@@ -0,0 +1,18 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/web/src/lib/components/ui/select/select.svelte b/web/src/lib/components/ui/select/select.svelte
new file mode 100644
index 00000000..16610570
--- /dev/null
+++ b/web/src/lib/components/ui/select/select.svelte
@@ -0,0 +1,24 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/web/src/lib/components/ui/slider/index.js b/web/src/lib/components/ui/slider/index.js
new file mode 100644
index 00000000..2618c1a9
--- /dev/null
+++ b/web/src/lib/components/ui/slider/index.js
@@ -0,0 +1,6 @@
+import Root from "./slider.svelte";
+export {
+ Root,
+ //
+ Root as Slider,
+};
diff --git a/web/src/lib/components/ui/slider/slider.svelte b/web/src/lib/components/ui/slider/slider.svelte
new file mode 100644
index 00000000..ad080c68
--- /dev/null
+++ b/web/src/lib/components/ui/slider/slider.svelte
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/web/src/lib/components/ui/spinner/spinner.svelte b/web/src/lib/components/ui/spinner/spinner.svelte
new file mode 100644
index 00000000..a16a3fe1
--- /dev/null
+++ b/web/src/lib/components/ui/spinner/spinner.svelte
@@ -0,0 +1,9 @@
+
+
+
\ No newline at end of file
diff --git a/web/src/lib/components/ui/tag-list/TagList.svelte b/web/src/lib/components/ui/tag-list/TagList.svelte
new file mode 100644
index 00000000..fb1ba7ce
--- /dev/null
+++ b/web/src/lib/components/ui/tag-list/TagList.svelte
@@ -0,0 +1,66 @@
+
+
+
+ {#if totalPages > 1 && canGoBack}
+
+ {/if}
+
+
+ {#each visibleTags as tag (tag)}
+
+ {tag}
+
+ {/each}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+For detailed information on each component, including their properties and usage examples, please refer to the official SkeletonUI documentation.
+___
+Below is an expanded cheat sheet to assist you in leveraging SkeletonUI within your SvelteKit projects.
+
+**1\. Installation**
+
+To set up SkeletonUI in a new SvelteKit project, follow these steps:
+
+- **Create a new SvelteKit project**:
+
+```bash
+npx sv create my-skeleton-app
+cd my-skeleton-app
+npm install
+```
+- **Install SkeletonUI packages**:
+
+```bash
+npm install -D @skeletonlabs/skeleton@next @skeletonlabs/skeleton-svelte@next
+```
+- **Configure Tailwind CSS**:
+
+In your `tailwind.config.js` file, add the following:
+
+```javascript
+import { skeleton, contentPath } from '@skeletonlabs/skeleton/plugin';
+import * as themes from '@skeletonlabs/skeleton/themes';
+
+export default {
+ content: [
+ './src/**/*.{html,js,svelte,ts}',
+ contentPath(import.meta.url, 'svelte')
+ ],
+ theme: {
+ extend: {},
+ },
+ plugins: [
+ skeleton({
+ themes: [themes.cerberus, themes.rose]
+ })
+ ]
+};
+```
+- **Set the active theme**:
+
+In your `src/app.html`, set the `data-theme` attribute on the `` tag:
+
+```html
+
+
+
+```
+
+For detailed installation instructions, refer to the official SkeletonUI documentation.
+
+**2\. Components**
+
+SkeletonUI offers a variety of pre-designed components to accelerate your development process. Here's how to use some of them:
+
+- **Button**:
+
+```svelte
+
+
+
+```
+- **Card**:
+
+```svelte
+
+
+
+
Card Title
+
Card content goes here.
+
+```
+- **Form Input**:
+
+```svelte
+
+
+
+```
+
+For a comprehensive list of components and their usage, consult the SkeletonUI components documentation.
+
+**3\. Theming**
+
+SkeletonUI's theming system allows for extensive customization:
+
+- **Applying a Theme**:
+
+Set the desired theme in your `tailwind.config.js` and `app.html` as shown in the installation steps above.
+- **Switching Themes Dynamically**:
+
+To enable dynamic theme switching, you can modify the `data-theme` attribute programmatically:
+
+```svelte
+
+
+
+```
+- **Customizing Themes**:
+
+You can create custom themes by defining your own color palettes and settings in the `tailwind.config.js` file.
+
+For more information on theming, refer to the SkeletonUI theming guide.
+
+**4\. Utilities**
+
+SkeletonUI provides several utility functions and actions to enhance your SvelteKit application:
+
+- **Table of Contents**:
+
+Automatically generate a table of contents based on page headings:
+
+```svelte
+
+
+
+
+
+
+```
+- **Transitions and Animations**:
+
+Utilize built-in transitions for smooth animations:
+
+```svelte
+
+
+{#if visible}
+
+ Fading content
+
+{/if}
+```
+
+For a full list of utilities and their usage, explore the SkeletonUI utilities documentation.
+
+This cheat sheet provides a foundational overview to help you start integrating SkeletonUI into your SvelteKit projects. For more detailed information and advanced features, please refer to the official SkeletonUI documentation.
+
+https://www.skeleton.dev/docs/introduction
\ No newline at end of file
diff --git a/web/src/lib/content/posts/Using-Markdown-in-Svelte.md b/web/src/lib/content/posts/Using-Markdown-in-Svelte.md
new file mode 100755
index 00000000..223f685a
--- /dev/null
+++ b/web/src/lib/content/posts/Using-Markdown-in-Svelte.md
@@ -0,0 +1,135 @@
+---
+title: Using Markdown in Svelte
+description: Learn how to use your markdown documents in Svelte Applications!
+date: 2023-12-22
+tags: [markdown, svelte,web-dev, documentation]
+---
+[Mdsvex](https://mdsvex.pngwn.io/docs#install-it)
+
+Here are some examples illustrating how to use Mdsvex in a Svelte application:
+
+**Example 1**: Basic Markdown with Svelte Component
+Create a file named example.svx:
+
+markdown
+```markdown
+---
+title: "Interactive Markdown Example"
+---
+
+
+
+# {title}
+
+This is an example of combining Markdown with a Svelte component:
+
+
+```
+
+In this example:
+- The frontmatter (--- sections) defines variables like title.
+- A Svelte component Counter is imported and used inside the Markdown.
+
+**Example 2**: Custom Layouts with Mdsvex
+Assuming you have a layout component at src/lib/layouts/BlogLayout.svelte:
+
+svelte
+```text
+
+
+
+
+
{title}
+
+
+```
+
+Now, to use this layout in your Markdown:
+**markdown**
+```markdown
+---
+title: "My Favorite Layout"
+layout: "../lib/layouts/BlogLayout.svelte"
+---
+
+## Markdown with Custom Layout
+
+This Markdown file will be wrapped by the `BlogLayout`.
+```
+
+**Example 3:** Using Frontmatter Variables in Markdown
+**markdown**
+```markdown
+---
+author: "John Doe"
+date: "2024-11-15"
+---
+
+# Blog Post
+
+By {author} on {date}
+
+Here's some markdown content. You can reference frontmatter values directly in the body.
+```
+
+**Example 4**: Interactive Elements in Markdown
+markdown
+```markdown
+---
+title: "Interactive Chart"
+---
+
+
+
+# {title}
+
+Below is an interactive chart:
+
+
+```
+
+## Setting Up Mdsvex
+
+To make these work, you need to configure your SvelteKit project:
+1. Install Mdsvex:
+```bash
+npm install -D mdsvex
+```
+
+2. Configure SvelteKit:
+ In your svelte.config.js:
+ ```javascript
+ import adapter from '@sveltejs/adapter-auto';
+ import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
+ import { mdsvex } from 'mdsvex';
+
+ /** @type {import('mdsvex').MdsvexOptions} */
+ const mdsvexOptions = {
+ extensions: ['.svx'],
+ };
+
+ /** @type {import('@sveltejs/kit').Config} */
+ const config = {
+ extensions: ['.svelte', '.svx'],
+ preprocess: [
+ vitePreprocess(),
+ mdsvex(mdsvexOptions),
+ ],
+ kit: {
+ adapter: adapter()
+ }
+ };
+
+ export default config;
+ ```
+
+3. Create a Route for Markdown Files:
+ Place your .svx files in the src/routes directory or subdirectories, and SvelteKit will automatically handle them as routes.
+
+These examples show how you can integrate Mdsvex into your Svelte application, combining the simplicity of Markdown with the interactivity of Svelte components. Remember, any Svelte component you want to use within Markdown must be exported from a .svelte file and imported in your .svx file.
diff --git a/web/src/lib/content/posts/extract_wisdom.md b/web/src/lib/content/posts/extract_wisdom.md
new file mode 100755
index 00000000..46ca7906
--- /dev/null
+++ b/web/src/lib/content/posts/extract_wisdom.md
@@ -0,0 +1,66 @@
+---
+title: Extract Wisdom
+date: 2024-01-01
+description:
+tags: [patterns, fabric]
+---
+
+# IDENTITY and PURPOSE
+
+You extract surprising, insightful, and interesting information from text content. You are interested in insights related to the purpose and meaning of life, human flourishing, the role of technology in the future of humanity, artificial intelligence and its affect on humans, memes, learning, reading, books, continuous improvement, and similar topics.
+
+Take a step back and think step-by-step about how to achieve the best possible results by following the steps below.
+
+# STEPS
+
+- Extract a summary of the content in 25 words, including who is presenting and the content being discussed into a section called SUMMARY.
+
+- Extract 20 to 50 of the most surprising, insightful, and/or interesting ideas from the input in a section called IDEAS:. If there are less than 50 then collect all of them. Make sure you extract at least 20.
+
+- Extract 10 to 20 of the best insights from the input and from a combination of the raw input and the IDEAS above into a section called INSIGHTS. These INSIGHTS should be fewer, more refined, more insightful, and more abstracted versions of the best ideas in the content.
+
+- Extract 15 to 30 of the most surprising, insightful, and/or interesting quotes from the input into a section called QUOTES:. Use the exact quote text from the input.
+
+- Extract 15 to 30 of the most practical and useful personal habits of the speakers, or mentioned by the speakers, in the content into a section called HABITS. Examples include but aren't limited to: sleep schedule, reading habits, things they always do, things they always avoid, productivity tips, diet, exercise, etc.
+
+- Extract 15 to 30 of the most surprising, insightful, and/or interesting valid facts about the greater world that were mentioned in the content into a section called FACTS:.
+
+- Extract all mentions of writing, art, tools, projects and other sources of inspiration mentioned by the speakers into a section called REFERENCES. This should include any and all references to something that the speaker mentioned.
+
+- Extract the most potent takeaway and recommendation into a section called ONE-SENTENCE TAKEAWAY. This should be a 15-word sentence that captures the most important essence of the content.
+
+- Extract the 15 to 30 of the most surprising, insightful, and/or interesting recommendations that can be collected from the content into a section called RECOMMENDATIONS.
+
+# OUTPUT INSTRUCTIONS
+
+- Only output Markdown.
+
+- Write the IDEAS bullets as exactly 15 words.
+
+- Write the RECOMMENDATIONS bullets as exactly 15 words.
+
+- Write the HABITS bullets as exactly 15 words.
+
+- Write the FACTS bullets as exactly 15 words.
+
+- Write the INSIGHTS bullets as exactly 15 words.
+
+- Extract at least 25 IDEAS from the content.
+
+- Extract at least 10 INSIGHTS from the content.
+
+- Extract at least 20 items for the other output sections.
+
+- Do not give warnings or notes; only output the requested sections.
+
+- You use bulleted lists for output, not numbered lists.
+
+- Do not repeat ideas, quotes, facts, or resources.
+
+- Do not start items with the same opening words.
+
+- Ensure you follow ALL these instructions when creating your output.
+
+# INPUT
+
+INPUT:
diff --git a/web/src/lib/content/posts/getting-started.md b/web/src/lib/content/posts/getting-started.md
new file mode 100755
index 00000000..dbaa06f5
--- /dev/null
+++ b/web/src/lib/content/posts/getting-started.md
@@ -0,0 +1,60 @@
+---
+title: Getting Started with SvelteKit
+date: 2024-11-01
+---
+
+# Getting Started with SvelteKit
+
+SvelteKit is a framework for building web applications of all sizes, with a beautiful development experience and flexible filesystem-based routing.
+
+## Why SvelteKit?
+
+- Zero-config setup
+- Filesystem-based routing
+- Server-side rendering
+- Hot module replacement
+
+```bash
+npx sv create my-app
+cd my-app
+npm install
+```
+
+**Install SkeletonUI**
+
+```bash
+npm i -D @skeletonlabs/skeleton@next @skeletonlabs/skeleton-svelte@next
+```
+
+**Configure Tailwind CSS**
+
+```tailwind.config
+import type { Config } from 'tailwindcss';
+
+import { skeleton, contentPath } from '@skeletonlabs/skeleton/plugin';
+import * as themes from '@skeletonlabs/skeleton/themes';
+
+export default {
+ content: [
+ './src/**/*.{html,js,svelte,ts}',
+ contentPath(import.meta.url, 'svelte')
+ ],
+ theme: {
+ extend: {},
+ },
+ plugins: [
+ skeleton({
+ // NOTE: each theme included will be added to your CSS bundle
+ themes: [ themes.cerberus, themes.rose ]
+ })
+ ]
+} satisfies Config
+```
+
+**Start the dev server**
+
+```bash
+npm run dev
+```
+
+Read more at https://svelte.dev, https://next.skeleton.dev/docs/get-started/installation/sveltekit, and https://www.skeleton.dev/docs/introduction
\ No newline at end of file
diff --git a/web/src/lib/content/posts/welcome.md b/web/src/lib/content/posts/welcome.md
new file mode 100755
index 00000000..73ac4bf3
--- /dev/null
+++ b/web/src/lib/content/posts/welcome.md
@@ -0,0 +1,18 @@
+---
+title: Welcome to Your Blog
+description: First post on my new SvelteKit blog
+date: 2024-01-17
+tags: [welcome, blog]
+---
+This is the first post of your new blog, powered by [SvelteKit](/posts/getting-started), [Obsidian](/obsidian), and [Fabric](/about). I'm excited to share this project with you, and I hope you find it useful for your own writing and experiences.
+
+This part of the application is edited in Obsidian.
+
+## What to Expect
+
+- Updates on Incorporating Fabric into your workflow
+- How to use Obsidian to manage you notes and workflows
+- How to use Fabric and Obsidian to write and publish
+- More ways to use Obsidian and Fabric together!
+
+Stay tuned for more content!
diff --git a/web/src/lib/content/templates/{{title}}.md b/web/src/lib/content/templates/{{title}}.md
new file mode 100644
index 00000000..035943ba
--- /dev/null
+++ b/web/src/lib/content/templates/{{title}}.md
@@ -0,0 +1,7 @@
+---
+title: Your Title Here
+date:
+description: Post description
+updated:
+---
+{{Content}}
\ No newline at end of file
diff --git a/web/src/lib/images/fabric-logo.gif b/web/src/lib/images/fabric-logo.gif
new file mode 100644
index 00000000..cf87b031
Binary files /dev/null and b/web/src/lib/images/fabric-logo.gif differ
diff --git a/web/src/lib/images/fabric-logo.png b/web/src/lib/images/fabric-logo.png
new file mode 100644
index 00000000..cf87b031
Binary files /dev/null and b/web/src/lib/images/fabric-logo.png differ
diff --git a/web/src/lib/images/johnconnor.png b/web/src/lib/images/johnconnor.png
new file mode 100644
index 00000000..b49c84b8
Binary files /dev/null and b/web/src/lib/images/johnconnor.png differ
diff --git a/web/src/lib/images/obsidian-logo.png b/web/src/lib/images/obsidian-logo.png
new file mode 100755
index 00000000..e3cdf2cc
Binary files /dev/null and b/web/src/lib/images/obsidian-logo.png differ
diff --git a/web/src/lib/layouts/post.svelte b/web/src/lib/layouts/post.svelte
new file mode 100644
index 00000000..01cad37f
--- /dev/null
+++ b/web/src/lib/layouts/post.svelte
@@ -0,0 +1,50 @@
+
+
+
+
+ {#if title}
+