+//}
+export default Accounts;
diff --git a/mcc/src/components/Accounts/Accounts.module.css b/mcc/src/components/Accounts/Accounts.module.css
new file mode 100644
index 0000000..fc86d72
--- /dev/null
+++ b/mcc/src/components/Accounts/Accounts.module.css
@@ -0,0 +1,3 @@
+.Accounts {
+ border: 1px;
+}
diff --git a/mcc/src/components/algolia_search.js b/mcc/src/components/AlgoliaSearch.js
similarity index 93%
rename from mcc/src/components/algolia_search.js
rename to mcc/src/components/AlgoliaSearch.js
index 5a427de..4399fb4 100644
--- a/mcc/src/components/algolia_search.js
+++ b/mcc/src/components/AlgoliaSearch.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentAngoliaSearch() {
return (
diff --git a/mcc/src/components/author_skills.js b/mcc/src/components/AuthorSkills.js
similarity index 62%
rename from mcc/src/components/author_skills.js
rename to mcc/src/components/AuthorSkills.js
index 70d5cee..b8962d8 100644
--- a/mcc/src/components/author_skills.js
+++ b/mcc/src/components/AuthorSkills.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentAuthorSkills() {
return (
@@ -10,4 +10,4 @@ function ComponentAuthorSkills() {
const styles = StyleSheet.create({
});
-export default ComponentAuthorSkills;
\ No newline at end of file
+export default ComponentAuthorSkills;
diff --git a/mcc/src/components/component_header.js b/mcc/src/components/ComponentHeader.js
similarity index 86%
rename from mcc/src/components/component_header.js
rename to mcc/src/components/ComponentHeader.js
index 3965022..9b560ce 100644
--- a/mcc/src/components/component_header.js
+++ b/mcc/src/components/ComponentHeader.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentHeader() {
return (
diff --git a/mcc/src/components/contact_form.js b/mcc/src/components/ContactForm.js
similarity index 91%
rename from mcc/src/components/contact_form.js
rename to mcc/src/components/ContactForm.js
index 0bc050f..abac521 100644
--- a/mcc/src/components/contact_form.js
+++ b/mcc/src/components/ContactForm.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentContactForm() {
return (
diff --git a/mcc/src/components/ErrorBoundry.js b/mcc/src/components/ErrorBoundry.js
new file mode 100644
index 0000000..ad4d660
--- /dev/null
+++ b/mcc/src/components/ErrorBoundry.js
@@ -0,0 +1,22 @@
+import React, { Component } from 'react';
+
+class ErrorBoundary extends Component {
+ state = {
+ HasError: false,
+ ErrorMessage: '',
+ };
+
+ componentDidCatch = (error, info) => {
+ this.setState({HasError: true, ErrorMessage: error});
+ }
+
+ render() {
+ if (this.state.HasError) {
+ return
Something went wrong! :-(
+ } else {
+ return this.props.children;
+ }
+ }
+}
+
+export default ErrorBoundary;
diff --git a/mcc/src/components/estuary_categories.js b/mcc/src/components/EstuaryCategories.js
similarity index 85%
rename from mcc/src/components/estuary_categories.js
rename to mcc/src/components/EstuaryCategories.js
index fa0e210..d374773 100644
--- a/mcc/src/components/estuary_categories.js
+++ b/mcc/src/components/EstuaryCategories.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentEstuaryCategories() {
return (
diff --git a/mcc/src/components/estuary_post_article.js b/mcc/src/components/EstuaryPostArticle.js
similarity index 94%
rename from mcc/src/components/estuary_post_article.js
rename to mcc/src/components/EstuaryPostArticle.js
index 4c3bc43..f46dd71 100644
--- a/mcc/src/components/estuary_post_article.js
+++ b/mcc/src/components/EstuaryPostArticle.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentEstuaryPostArticle() {
return (
diff --git a/mcc/src/components/estuary_post_breadcrumb.js b/mcc/src/components/EstuaryPostBreadcrumb.js
similarity index 86%
rename from mcc/src/components/estuary_post_breadcrumb.js
rename to mcc/src/components/EstuaryPostBreadcrumb.js
index 863a09f..c21706c 100644
--- a/mcc/src/components/estuary_post_breadcrumb.js
+++ b/mcc/src/components/EstuaryPostBreadcrumb.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentEstuaryPostBreadcrumb() {
return (
diff --git a/mcc/src/components/estuary_post_comments.js b/mcc/src/components/EstuaryPostComments.js
similarity index 91%
rename from mcc/src/components/estuary_post_comments.js
rename to mcc/src/components/EstuaryPostComments.js
index 2520315..f1488ae 100644
--- a/mcc/src/components/estuary_post_comments.js
+++ b/mcc/src/components/EstuaryPostComments.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentEstuaryPostComments() {
return (
diff --git a/mcc/src/components/estuary_sidebar.js b/mcc/src/components/EstuarySidebar.js
similarity index 87%
rename from mcc/src/components/estuary_sidebar.js
rename to mcc/src/components/EstuarySidebar.js
index 3bc470e..3387036 100644
--- a/mcc/src/components/estuary_sidebar.js
+++ b/mcc/src/components/EstuarySidebar.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentEstuarySidebar() {
return (
diff --git a/mcc/src/components/estuary_tags.js b/mcc/src/components/EstuaryTags.js
similarity index 84%
rename from mcc/src/components/estuary_tags.js
rename to mcc/src/components/EstuaryTags.js
index 8f1dd4c..faedaa9 100644
--- a/mcc/src/components/estuary_tags.js
+++ b/mcc/src/components/EstuaryTags.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentEstuaryTag() {
return (
diff --git a/mcc/src/components/github_follow_button.js b/mcc/src/components/GithubFollowButton.js
similarity index 85%
rename from mcc/src/components/github_follow_button.js
rename to mcc/src/components/GithubFollowButton.js
index ba7b67f..c64c55b 100644
--- a/mcc/src/components/github_follow_button.js
+++ b/mcc/src/components/GithubFollowButton.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentGitHubFollowButton() {
return (
diff --git a/mcc/src/components/github_star_button.js b/mcc/src/components/GithubStarButton.js
similarity index 85%
rename from mcc/src/components/github_star_button.js
rename to mcc/src/components/GithubStarButton.js
index 48a3cc5..21b4aca 100644
--- a/mcc/src/components/github_star_button.js
+++ b/mcc/src/components/GithubStarButton.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentGitHubStarButton() {
return (
diff --git a/mcc/src/components/Hud/Hud.js b/mcc/src/components/Hud/Hud.js
new file mode 100644
index 0000000..e7f7c4b
--- /dev/null
+++ b/mcc/src/components/Hud/Hud.js
@@ -0,0 +1,28 @@
+import React from 'react';
+import Classes from './Hud.module.css'
+
+const Hud = (Props) => {
+ const AssignedClasses = [];
+ let ButtonClass = '';
+ if (Props.Accounts.length <= 1) {
+ AssignedClasses.push(Classes.Red);
+ }
+ if (Props.Accounts.length <= 2) {
+ AssignedClasses.push(Classes.Bold);
+ }
+ if (Props.ShowAccounts) {
+ ButtonClass = Classes.Red;
+ }
+
+ return (
+
+
{Props.AppTitle}
+
+
+ );
+};
+
+export default Hud;
diff --git a/mcc/src/components/Hud/Hud.module.css b/mcc/src/components/Hud/Hud.module.css
new file mode 100644
index 0000000..d77a44d
--- /dev/null
+++ b/mcc/src/components/Hud/Hud.module.css
@@ -0,0 +1,43 @@
+.Hud {
+ text-align: center;
+}
+
+.Red {
+ color: red;
+}
+
+.Bold {
+ font-weight: bold;
+}
+
+.Italics {
+ font-weight: italics;
+}
+
+.Hud button {
+ background-color: green;
+ color: white;
+ font: inherit;
+ border: 1px solid blue;
+ padding: 8px;
+ cursor: pointer;
+}
+
+.Hud button:hover {
+ background-color: lightgreen;
+ color: black;
+}
+
+.Hud button.Red {
+ background-color: red;
+ color: white;
+ font: inherit;
+ border: 1px solid blue;
+ padding: 8px;
+ cursor: pointer;
+}
+
+.Hud button.Red:hover {
+ background-color: salmon;
+ color: black;
+}
diff --git a/mcc/src/components/qr-login.js b/mcc/src/components/LoginQR.js
similarity index 90%
rename from mcc/src/components/qr-login.js
rename to mcc/src/components/LoginQR.js
index 1fab4c0..7332367 100644
--- a/mcc/src/components/qr-login.js
+++ b/mcc/src/components/LoginQR.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentQrLogin() {
return (
diff --git a/mcc/src/components/product_definition.js b/mcc/src/components/ProductDefinition.js
similarity index 88%
rename from mcc/src/components/product_definition.js
rename to mcc/src/components/ProductDefinition.js
index e56d0ae..397d39f 100644
--- a/mcc/src/components/product_definition.js
+++ b/mcc/src/components/ProductDefinition.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentProductDefinition() {
return (
diff --git a/mcc/src/components/project-widget.js b/mcc/src/components/ProjectWidget.js
similarity index 67%
rename from mcc/src/components/project-widget.js
rename to mcc/src/components/ProjectWidget.js
index 02a88ab..efbc9c9 100644
--- a/mcc/src/components/project-widget.js
+++ b/mcc/src/components/ProjectWidget.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentProjectWidget() {
return (
diff --git a/mcc/src/serviceWorker.js b/mcc/src/components/ServiceWorker.js
similarity index 50%
rename from mcc/src/serviceWorker.js
rename to mcc/src/components/ServiceWorker.js
index b04b771..4a3ccf0 100644
--- a/mcc/src/serviceWorker.js
+++ b/mcc/src/components/ServiceWorker.js
@@ -1,93 +1,67 @@
-// This optional code is used to register a service worker.
-// register() is not called by default.
+// In production, we register a service worker to serve assets from local cache.
// This lets the app load faster on subsequent visits in production, and gives
// it offline capabilities. However, it also means that developers (and users)
-// will only see deployed updates on subsequent visits to a page, after all the
-// existing tabs open on the page have been closed, since previously cached
-// resources are updated in the background.
+// will only see deployed updates on the "N+1" visit to a page, since previously
+// cached resources are updated in the background.
-// To learn more about the benefits of this model and instructions on how to
-// opt-in, read https://bit.ly/CRA-PWA
+// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.
+// This link also includes instructions on opting out of this behavior.
const isLocalhost = Boolean(
window.location.hostname === 'localhost' ||
// [::1] is the IPv6 localhost address.
window.location.hostname === '[::1]' ||
- // 127.0.0.0/8 are considered localhost for IPv4.
+ // 127.0.0.1/8 is considered localhost for IPv4.
window.location.hostname.match(
/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
)
);
-export function register(config) {
+export default function register() {
if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
// The URL constructor is available in all browsers that support SW.
- const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);
+ const publicUrl = new URL(process.env.PUBLIC_URL, window.location);
if (publicUrl.origin !== window.location.origin) {
// Our service worker won't work if PUBLIC_URL is on a different origin
// from what our page is served on. This might happen if a CDN is used to
- // serve assets; see https://github.com/facebook/create-react-app/issues/2374
+ // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374
return;
}
window.addEventListener('load', () => {
const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
- if (isLocalhost) {
- // This is running on localhost. Let's check if a service worker still exists or not.
- checkValidServiceWorker(swUrl, config);
-
- // Add some additional logging to localhost, pointing developers to the
- // service worker/PWA documentation.
- navigator.serviceWorker.ready.then(() => {
- console.log(
- 'This web app is being served cache-first by a service ' +
- 'worker. To learn more, visit https://bit.ly/CRA-PWA'
- );
- });
+ if (!isLocalhost) {
+ // Is not local host. Just register service worker
+ registerValidSW(swUrl);
} else {
- // Is not localhost. Just register service worker
- registerValidSW(swUrl, config);
+ // This is running on localhost. Lets check if a service worker still exists or not.
+ checkValidServiceWorker(swUrl);
}
});
}
}
-function registerValidSW(swUrl, config) {
+function registerValidSW(swUrl) {
navigator.serviceWorker
.register(swUrl)
.then(registration => {
registration.onupdatefound = () => {
const installingWorker = registration.installing;
- if (installingWorker == null) {
- return;
- }
installingWorker.onstatechange = () => {
if (installingWorker.state === 'installed') {
if (navigator.serviceWorker.controller) {
- // At this point, the updated precached content has been fetched,
- // but the previous service worker will still serve the older
- // content until all client tabs are closed.
- console.log(
- 'New content is available and will be used when all ' +
- 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'
- );
-
- // Execute callback
- if (config && config.onUpdate) {
- config.onUpdate(registration);
- }
+ // At this point, the old content will have been purged and
+ // the fresh content will have been added to the cache.
+ // It's the perfect time to display a "New content is
+ // available; please refresh." message in your web app.
+ console.log('New content is available; please refresh.');
} else {
// At this point, everything has been precached.
// It's the perfect time to display a
// "Content is cached for offline use." message.
console.log('Content is cached for offline use.');
-
- // Execute callback
- if (config && config.onSuccess) {
- config.onSuccess(registration);
- }
}
}
};
@@ -98,17 +72,14 @@ function registerValidSW(swUrl, config) {
});
}
-function checkValidServiceWorker(swUrl, config) {
+function checkValidServiceWorker(swUrl) {
// Check if the service worker can be found. If it can't reload the page.
- fetch(swUrl, {
- headers: { 'Service-Worker': 'script' },
- })
+ fetch(swUrl)
.then(response => {
// Ensure service worker exists, and that we really are getting a JS file.
- const contentType = response.headers.get('content-type');
if (
response.status === 404 ||
- (contentType != null && contentType.indexOf('javascript') === -1)
+ response.headers.get('content-type').indexOf('javascript') === -1
) {
// No service worker found. Probably a different app. Reload the page.
navigator.serviceWorker.ready.then(registration => {
@@ -118,7 +89,7 @@ function checkValidServiceWorker(swUrl, config) {
});
} else {
// Service worker found. Proceed as normal.
- registerValidSW(swUrl, config);
+ registerValidSW(swUrl);
}
})
.catch(() => {
@@ -130,12 +101,8 @@ function checkValidServiceWorker(swUrl, config) {
export function unregister() {
if ('serviceWorker' in navigator) {
- navigator.serviceWorker.ready
- .then(registration => {
- registration.unregister();
- })
- .catch(error => {
- console.error(error.message);
- });
+ navigator.serviceWorker.ready.then(registration => {
+ registration.unregister();
+ });
}
}
diff --git a/mcc/src/components/twitter_follow_button.js b/mcc/src/components/TwitterFollowButton.js
similarity index 85%
rename from mcc/src/components/twitter_follow_button.js
rename to mcc/src/components/TwitterFollowButton.js
index 57520d9..a4a8497 100644
--- a/mcc/src/components/twitter_follow_button.js
+++ b/mcc/src/components/TwitterFollowButton.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function TwitterFollowButton() {
return (
diff --git a/mcc/src/UserInput.js b/mcc/src/components/UserInput.js
similarity index 100%
rename from mcc/src/UserInput.js
rename to mcc/src/components/UserInput.js
diff --git a/mcc/src/UserOutput/UserOutput.css b/mcc/src/components/UserOutput/UserOutput.css
similarity index 100%
rename from mcc/src/UserOutput/UserOutput.css
rename to mcc/src/components/UserOutput/UserOutput.css
diff --git a/mcc/src/UserOutput/UserOutput.js b/mcc/src/components/UserOutput/UserOutput.js
similarity index 52%
rename from mcc/src/UserOutput/UserOutput.js
rename to mcc/src/components/UserOutput/UserOutput.js
index 7321593..4a58d94 100644
--- a/mcc/src/UserOutput/UserOutput.js
+++ b/mcc/src/components/UserOutput/UserOutput.js
@@ -4,8 +4,10 @@ import './UserOutput.css';
const UserOutput = (props) => {
return (
-
Username: {props.username}
-
Foo
+
Username: {props.Username}
+
UID: {props.UID}
+
Name: {props.Name}
+
Password: {props.Password}
);
}
diff --git a/mcc/src/components/ads.js b/mcc/src/components/ads.js
index acf4016..2e3c542 100644
--- a/mcc/src/components/ads.js
+++ b/mcc/src/components/ads.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentAds() {
return (
diff --git a/mcc/src/components/footer.js b/mcc/src/components/footer.js
index c043483..11847cb 100644
--- a/mcc/src/components/footer.js
+++ b/mcc/src/components/footer.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentFooter() {
return (
diff --git a/mcc/src/components/header.js b/mcc/src/components/header.js
index 34e532b..1b59673 100644
--- a/mcc/src/components/header.js
+++ b/mcc/src/components/header.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentHeader() {
return (
diff --git a/mcc/src/components/repo.js b/mcc/src/components/repo.js
index 76911fc..d486423 100644
--- a/mcc/src/components/repo.js
+++ b/mcc/src/components/repo.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentRepo() {
return (
diff --git a/mcc/src/components/sidebar.js b/mcc/src/components/sidebar.js
index c5f90bc..c2fc3a5 100644
--- a/mcc/src/components/sidebar.js
+++ b/mcc/src/components/sidebar.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentSidebar() {
return (
diff --git a/mcc/src/components/stream.js b/mcc/src/components/stream.js
index 64f074e..5b706f1 100644
--- a/mcc/src/components/stream.js
+++ b/mcc/src/components/stream.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
function ComponentStream() {
return (
diff --git a/mcc/src/index.js b/mcc/src/index.js
index f5185c1..7fa03f2 100644
--- a/mcc/src/index.js
+++ b/mcc/src/index.js
@@ -1,8 +1,8 @@
-import React from 'react';
+/*import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
-import * as serviceWorker from './serviceWorker';
+import * as serviceWorker from './Components/serviceWorker';
ReactDOM.render(
@@ -15,3 +15,12 @@ ReactDOM.render(
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();
+*/
+import React from 'react';
+import ReactDOM from 'react-dom';
+import './index.css';
+import App from './App';
+import ServiceWorker from './Components/ServiceWorker';
+
+ReactDOM.render(, document.getElementById('root'));
+ServiceWorker();
diff --git a/mcc/src/screens/careers.js b/mcc/src/screens/careers.js
index 9c78978..9a13a0e 100644
--- a/mcc/src/screens/careers.js
+++ b/mcc/src/screens/careers.js
@@ -1,4 +1,4 @@
-import React, {StyleSheet} from 'react';
+import React, {StyleSheet} from './node_modules/react';
import ContactForm from "../components/contact_form";
function ScreenCareers() {
diff --git a/mcc/src/screens/posts/2019-10-05-hello-world.md b/mcc/src/screens/posts/2019-10-05-hello-world.md
deleted file mode 100644
index 316c9aa..0000000
--- a/mcc/src/screens/posts/2019-10-05-hello-world.md
+++ /dev/null
@@ -1,15 +0,0 @@
-import React, {StyleSheet} from 'react';
-
-function ComponentSidebar() {
- return (
----
-layout: post
-title: Hello World
-author: Cale McCollough
-date: '2019-10-04 1:00:00 +0800'
-category: guides
-summary: Getting started with the Astartup and IMUL.
-thumbnail: post.hello_world.thumbnail.png
----
-
-This says foo. Astartup is cool. Hu ha ha ha... I like nachos.
diff --git a/mcc/src/screens/products/astartup-cookbook.md b/mcc/src/screens/products/astartup-cookbook.md
deleted file mode 100644
index c6ac23b..0000000
--- a/mcc/src/screens/products/astartup-cookbook.md
+++ /dev/null
@@ -1,16 +0,0 @@
-import React, {StyleSheet} from 'react';
-
-function ProductAstartupCookbook() {
- return (
----
-identifier: astartup-cookbook
-name: Astartup Cookbook
-price: 50
-image: /media/astartup.cookbook.thumbnail.jpg
----
-
-The [Astartup Cookbook™](github.com/a-startup/astartup.cookbook) is an open-source book on how to invent, launch, and run a modern startup with I am You Language (IMUL). The Astartup, or A* Startup, is a productivity technique developed by Cale McCollough that integrates your pen-and-paper development logs with your computer and A* Startup Network.
-
-The cookbook skelton is pretty well outlined and there is about 100 pages so far but there is a lot of work left to do. The demo projects in this book walk you through inventing a product through end of life using I am You Language (IMUL) using the [Oregon-Cooler](oregoncooler.org) as an example.
-
-If you would like to fund my work, you can do so by [subscribing as a Patreon](patreon.com/astartup).
diff --git a/mcc/src/screens/products/greentech-cookbook.md b/mcc/src/screens/products/greentech-cookbook.md
deleted file mode 100644
index e5485af..0000000
--- a/mcc/src/screens/products/greentech-cookbook.md
+++ /dev/null
@@ -1,15 +0,0 @@
-import React, {StyleSheet} from 'react';
-
-function ProductGreentechCookbook() {
- return (---
-identifier: greentech-cookbook
-name: Greentech Cookbook
-price: 50
-image: /theme/products/astartup.cookbook.jpg
----
-
-The [Greentech Cookbook™](https://github.com/oregon-cooler/greentech.cookbook) is an open-source book that teaches how to make Oregon-Coolers to combat global warming. The [Oregon-Cooler](oregoncooler.org) is an open-source green water heater, solar power station, HVAC, and smart-home system.
-
-This is a very new cookbook and it doesn't have much work or even a skeleton, but it's a FREAKING AWESOME IDEA!!! The demo projects in this cookbook are an extension of the [KabukiPress Cookbook](kabukipress-cookbook), an open-source book on how to make intelligent connected services, apps, websites, and books with Modern Embedded-C++, Script2, and I am You Language (IMUL). These technologies serve as the foundation of the Oregon-Cooler smart-home system. The Cookbook adds the [Kabuki Tek Toolkit](github.com/kabuki-starship/kabuki.toolkit.tek) to create firmware using [mbed](mbed.com) and Script2.
-
-If you would like to fund my work, [you can do so on Patreon](patreon.com/astartup).
diff --git a/mcc/src/screens/products/kabuki.press.cookbook.md b/mcc/src/screens/products/kabuki.press.cookbook.md
deleted file mode 100644
index e1cff05..0000000
--- a/mcc/src/screens/products/kabuki.press.cookbook.md
+++ /dev/null
@@ -1,16 +0,0 @@
-import React, {StyleSheet} from 'react';
-
-function ProductKabukiPressCookbook() {
- return (
- ---
-identifier: kabukipress-cookbook
-name: KabukiPress Cookbook
-price: 50
-image: /theme/products/kabuki.press.cookbook.jpg
----
-
-The [KabukiPress Cookbook](github.com/kabuki-starship/kabuki.press.cookbook)™ is an open-source book on how to make intelligent connected services, apps, websites, and books with Modern Embedded-C++, Script2™, and I am You Language™ (IMUL™). This cookbook covers the entire process of creating a KabukiPress book, website, book app, and web service using [Script2](github.com/kabuki-starship/script2), [Kabuki Toolkit](github.com/kabuki-starship/kabuki.toolkit)™, and [KabukiPress](github.com/kabuki-starship/kabuki.press)™.
-
-The demo projects for the cookbook are the Oregon-Cooler service, client app, Greentech Cookbook, and website, and it serves as the foundation of the [Greentech Cookbook](greentech-cookbook)™. You're looking at a VERY early version of this website, the products are very new, we don't have a lot of work done yet, and currently we're using Jekyll; but we have our own Script2, IMUL, and Embedded-C++ version of Jekyll to replace it that can import Jekyll sites.
-
-If you would like to fund my work, [you can do so on Patreon](patreon.com/astartup).
diff --git a/mcc/src/website/index.html b/mcc/src/website/index.html
deleted file mode 100644
index 9ad7807..0000000
--- a/mcc/src/website/index.html
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
- React Local
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mcc/src/website/p/astartup.toolkit/astartup.toolkit.js b/mcc/src/website/p/astartup.toolkit/astartup.toolkit.js
deleted file mode 100644
index e69de29..0000000
diff --git a/readme.md b/readme.md
index 3c9929e..f642ab4 100644
--- a/readme.md
+++ b/readme.md
@@ -4,7 +4,7 @@ This repository contains the Astartup React.JS Framework, [Mission Control Cente
## Quick Links
-* [Astartup Cookbook](https://github.com/AStarStartup/AstartupCookbook) - An open-source book that teaches you to invent, launch, and run a modern startup with IDD and IMUL.
+* [Astartup Cookbook](https://github.com/AStarStartup/AstartupCookbook) - An open-source book that teaches you to invent, launch, and run a modern startup with Issue-driven Development (IDD) and I am You Language (IMUL).
* [astartup.net](https://astartup.net) - The A* Startup Network website is an online version of the Astartup Mission Control Center.
## Mission and Vision